---
title: "Poll exhaustive contact details reveal result"
method: POST
path: "/v1/contact-details/exhaustive/poll"
tags: ["Contact details"]
---

# Poll exhaustive contact details reveal result

`POST /v1/contact-details/exhaustive/poll`

Polls the status of an exhaustive contact reveal task. Pass the task ID returned by /contact-details/exhaustive/start. This is intentionally slow (completion typically takes approximately 4–8 minutes), as we run multiple enrichment sources in parallel to maximize yield. Do NOT use this in time-sensitive applications -- try any of our other contact detail grabbing endpoints instead. Returns the current status and, once complete, the full set of discovered emails and phone numbers. Includes both high-quality emails and low-quality emails (risky/undeliverable). Low-quality emails failed our internal validation checks and should be filtered out before use, but are included for transparency.

<span>⚡ <strong>Rate limit:</strong> 240 requests per 1 minute</span>

## Request body

- object
  - `apiKey` string, required — Your Fiber API key
  - `taskId` string, required — Task ID from the "start exhaustive contact enrichment" endpoint

## Response `200`

Default Response

- object
  - `output` object, required
    - `profile` object, required
      - `emails` object[], required
        - `email` string, required
        - `type` 'work' | 'personal' | 'other' | 'unknown' | 'generic', required
        - `status` 'valid' | 'risky' | 'unknown' | 'invalid'
      - `phoneNumbers` object[], required
        - `number` string, required
        - `type` 'mobile' | 'other' | 'unknown', required
      - `status` 'started' | 'live-enriching' | 'grabbing-contact-info' | 'completed' | 'failed', required
      - `error` string
      - `exhaustive` boolean, nullable
      - `lowQualityEmails` object[], nullable — Emails that failed internal validation checks (risky or undeliverable). These are included for transparency but should be filtered out before use.
        - `email` string, required
        - `type` 'work' | 'personal' | 'other' | 'unknown' | 'generic', required
        - `status` 'valid' | 'risky' | 'unknown' | 'invalid'
    - `done` boolean, required — Whether the enrichment is completed or not.
  - `chargeInfo` union, required
    - object — Credits were charged immediately for this operation
      - `method` 'charged-now', required
      - `creditsCharged` number, required
      - `lowCreditAlert` object, nullable — Contains a link to get more credits, a warning message, and the remaining credit count.
        - `getMoreCreditsUrl` string, uri, required — URL to top up credits or restart billing cycle to get fresh credits.
        - `message` string, required — Human-readable credits warning.
        - `availableCredits` number, required — Number of credits remaining in the current billing period.
    - object — Credits will be charged after the operation completes
      - `method` 'charging-later', required
      - `message` string, required
      - `lowCreditAlert` object, nullable — Contains a link to get more credits, a warning message, and the remaining credit count.
        - `getMoreCreditsUrl` string, uri, required — URL to top up credits or restart billing cycle to get fresh credits.
        - `message` string, required — Human-readable credits warning.
        - `availableCredits` number, required — Number of credits remaining in the current billing period.
    - object — Credits that were charged for an asynchronous operation
      - `method` 'charged-for-async-process', required
      - `creditsCharged` number, required
      - `message` string, required
      - `lowCreditAlert` object, nullable — Contains a link to get more credits, a warning message, and the remaining credit count.
        - `getMoreCreditsUrl` string, uri, required — URL to top up credits or restart billing cycle to get fresh credits.
        - `message` string, required — Human-readable credits warning.
        - `availableCredits` number, required — Number of credits remaining in the current billing period.
    - object — No credits were charged for this operation
      - `method` 'free', required
      - `message` string, required
      - `lowCreditAlert` object, nullable — Contains a link to get more credits, a warning message, and the remaining credit count.
        - `getMoreCreditsUrl` string, uri, required — URL to top up credits or restart billing cycle to get fresh credits.
        - `message` string, required — Human-readable credits warning.
        - `availableCredits` number, required — Number of credits remaining in the current billing period.
    - object — Credits were refunded for this operation
      - `method` 'credits-refunded', required
      - `creditsRefunded` number, required
      - `message` string, required
      - `lowCreditAlert` object, nullable — Contains a link to get more credits, a warning message, and the remaining credit count.
        - `getMoreCreditsUrl` string, uri, required — URL to top up credits or restart billing cycle to get fresh credits.
        - `message` string, required — Human-readable credits warning.
        - `availableCredits` number, required — Number of credits remaining in the current billing period.
  - `warnings` object[], nullable — Warnings about extraneous fields in request
    - `field` string, required — Full path to extraneous field (e.g., 'searchParams.ExtraField')
    - `message` string, required — Warning message
  - `advice` string[], nullable — Tips, recommendations, and suggestions for using this API effectively.

## Other responses

- `400` — Default Response
- `401` — Default Response
- `402` — Default Response
- `403` — Default Response
- `404` — Default Response
- `422` — Default Response
- `429` — Default Response
- `500` — Default Response
- `503` — Default Response

---

[API](https://skmtc.net/fiber/apis/fiber-ai-api.md) · [All operations](https://skmtc.net/fiber/apis/fiber-ai-api/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/fiber/fiber-ai-api/revisions/720c63a313eb/schema)
