> **For AI agents:** this page is a focused, LLM-optimized view of a
> single Fiber AI operation. Before calling it, fetch the routing
> instructions at [`https://api.fiber.ai/llms.txt`](https://api.fiber.ai/llms.txt) and the full operation
> index at [`https://api.fiber.ai/ai-docs/index.md`](https://api.fiber.ai/ai-docs/index.md).

# pollBatchContactDetails

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

**Tags:** `Contact details`

Poll batch contact details

**Endpoint:** `https://api.fiber.ai/v1/contact-details/batch/poll`

## Description

Polls a batch contact details task. Returns partial results as they complete. Call this endpoint repeatedly until the 'done' field is true. Use the task ID returned from the 'Start batch contact details' endpoint.

⚡ Rate limit: 240 requests per 1 minute

## Request body (JSON Schema)

```json
{
  "type": "object",
  "properties": {
    "apiKey": {
      "type": "string",
      "description": "Your Fiber API key"
    },
    "taskId": {
      "type": "string",
      "minLength": 1,
      "description": "The task ID from the start endpoint response."
    },
    "cursor": {
      "type": [
        "string",
        "null"
      ],
      "description": "The pagination cursor from the previous poll response. Omit for the first request."
    },
    "take": {
      "type": "integer",
      "exclusiveMinimum": 0,
      "maximum": 100,
      "default": 100,
      "description": "The number of people to return per page. Defaults to 100."
    }
  },
  "required": [
    "apiKey",
    "taskId"
  ]
}
```

## Response — success (JSON Schema)

```json
{
  "type": "object",
  "properties": {
    "output": {
      "type": "object",
      "properties": {
        "overallStats": {
          "type": "object",
          "properties": {
            "totalPeopleToFetch": {
              "type": "integer",
              "minimum": 0,
              "description": "The total number of people in this batch task."
            },
            "numCompleted": {
              "type": "integer",
              "minimum": 0,
              "description": "The number of people for which contact reveal has completed successfully."
            },
            "numFailed": {
              "type": "integer",
              "minimum": 0,
              "description": "The number of people for which enrichment failed (no data found or error occurred)."
            },
            "numRemaining": {
              "type": "integer",
              "minimum": 0,
              "description": "The number of people currently being processed (in progress)."
            },
            "numRejected": {
              "type": "integer",
              "minimum": 0,
              "description": "The number of people rejected before queueing because healing failed (for example, an invalid or unresolvable LinkedIn URL)."
            },
            "numDuplicates": {
              "type": "integer",
              "minimum": 0,
              "description": "The number of duplicates found in the input."
            }
          },
          "required": [
            "totalPeopleToFetch",
            "numCompleted",
            "numFailed",
            "numRemaining",
            "numRejected",
            "numDuplicates"
          ],
          "description": "The overall statistics for the batch enrichment task."
        },
        "done": {
          "type": "boolean",
          "description": "Whether the batch task has finished. When true, check the 'failed' field to determine if it completed successfully or failed."
        },
        "failed": {
          "type": "boolean",
          "description": "Whether the batch task failed. If true, the task encountered an error and won't be retried. If false and done=true, the task completed successfully or was cancelled (check the 'canceled' field). If done=false, this field indicates current processing state."
        },
        "canceled": {
          "type": "boolean",
          "description": "Whether the batch task was cancelled. When true, unclaimed profiles were not processed and credits were refunded."
        },
        "pageResults": {
          "type": "array",
          "items": {
            "type": "object",
            "properties": {
              "inputs": {
                "type": "object",
                "properties": {
                  "linkedinUrl": {
                    "type": "object",
                    "properties": {
                      "value": {
                        "type": "string",
                        "pattern": "^(?:https?:\\/\\/)?(?:[a-z]+\\.)?linkedin\\.[a-z]{2,}\\/(?:in|sales\\/lead|talent\\/profile)\\/(?<slug>[^/\\\\?,#]+)\\/?(?:[\\?,#].*)?",
                        "description": "A LinkedIn URL, like 'https://www.linkedin.com/in/jake'"
                      }
                    },
                    "required": [
                      "value"
                    ]
                  }
                },
                "required": [
                  "linkedinUrl"
                ],
                "description": "The input details provided for this person."
              },
              "outputs": {
                "type": [
                  "object",
                  "null"
                ],
                "properties": {
                  "emails": {
                    "type": "array",
                    "items": {
                      "type": "object",
                      "properties": {
                        "email": {
                          "type": "string"
                        },
                        "type": {
                          "type": "string",
                          "enum": [
                            "work",
                            "personal",
                            "other",
                            "unknown",
                            "generic"
                          ]
                        },
                        "status": {
                          "type": "string",
                          "enum": [
                            "valid",
                            "risky",
                            "unknown",
                            "invalid"
                          ]
                        }
                      },
                      "required": [
                        "email",
                        "type"
                      ]
                    }
                  },
                  "phoneNumbers": {
                    "type": "array",
                    "items": {
                      "type": "object",
                      "properties": {
                        "number": {
                          "type": "string"
                        },
                        "type": {
                          "type": "string",
                          "enum": [
                            "mobile",
                            "other",
                            "unknown"
                          ]
                        }
                      },
                      "required": [
                        "number",
                        "type"
                      ]
                    }
                  },
                  "exhaustive": {
                    "type": [
                      "boolean",
                      "null"
                    ]
                  }
                },
                "required": [
                  "emails",
                  "phoneNumbers"
                ],
                "description": "The reveal result for this person."
              }
            },
            "required": [
              "inputs"
            ]
          },
          "description": "The array of results for each person in the current page."
        },
        "nextCursor": {
          "type": [
            "string",
            "null"
          ],
          "description": "The pagination cursor for the next page of results."
        }
      },
      "required": [
        "overallStats",
        "done",
        "failed",
        "canceled",
        "pageResults"
      ]
    },
    "chargeInfo": {
      "oneOf": [
        {
          "type": "object",
          "properties": {
            "method": {
              "type": "string",
              "enum": [
                "charged-now"
              ]
            },
            "creditsCharged": {
              "type": "number"
            },
            "lowCreditAlert": {
              "type": [
                "object",
                "null"
              ],
              "properties": {
                "getMoreCreditsUrl": {
                  "type": "string",
                  "format": "uri",
                  "description": "URL to top up credits or restart billing cycle to get fresh credits."
                },
                "message": {
                  "type": "string",
                  "description": "Human-readable credits warning."
                },
                "availableCredits": {
                  "type": "number",
                  "description": "Number of credits remaining in the current billing period."
                }
              },
              "required": [
                "getMoreCreditsUrl",
                "message",
                "availableCredits"
              ],
              "description": "Contains a link to get more credits, a warning message, and the remaining credit count."
            }
          },
          "required": [
            "method",
            "creditsCharged"
          ],
          "description": "Credits were charged immediately for this operation"
        },
        {
          "type": "object",
          "properties": {
            "method": {
              "type": "string",
              "enum": [
                "charging-later"
              ]
            },
            "message": {
              "type": "string"
            },
            "lowCreditAlert": {
              "type": [
                "object",
                "null"
              ],
              "properties": {
                "getMoreCreditsUrl": {
                  "type": "string",
                  "format": "uri",
                  "description": "URL to top up credits or restart billing cycle to get fresh credits."
                },
                "message": {
                  "type": "string",
                  "description": "Human-readable credits warning."
                },
                "availableCredits": {
                  "type": "number",
                  "description": "Number of credits remaining in the current billing period."
                }
              },
              "required": [
                "getMoreCreditsUrl",
                "message",
                "availableCredits"
              ],
              "description": "Contains a link to get more credits, a warning message, and the remaining credit count."
            }
          },
          "required": [
            "method",
            "message"
          ],
          "description": "Credits will be charged after the operation completes"
        },
        {
          "type": "object",
          "properties": {
            "method": {
              "type": "string",
              "enum": [
                "charged-for-async-process"
              ]
            },
            "creditsCharged": {
              "type": "number"
            },
            "message": {
              "type": "string"
            },
            "lowCreditAlert": {
              "type": [
                "object",
                "null"
              ],
              "properties": {
                "getMoreCreditsUrl": {
                  "type": "string",
                  "format": "uri",
                  "description": "URL to top up credits or restart billing cycle to get fresh credits."
                },
                "message": {
                  "type": "string",
                  "description": "Human-readable credits warning."
                },
                "availableCredits": {
                  "type": "number",
                  "description": "Number of credits remaining in the current billing period."
                }
              },
              "required": [
                "getMoreCreditsUrl",
                "message",
                "availableCredits"
              ],
              "description": "Contains a link to get more credits, a warning message, and the remaining credit count."
            }
          },
          "required": [
            "method",
            "creditsCharged",
            "message"
          ],
          "description": "Credits that were charged for an asynchronous operation"
        },
        {
          "type": "object",
          "properties": {
            "method": {
              "type": "string",
              "enum": [
                "free"
              ]
            },
            "message": {
              "type": "string"
            },
            "lowCreditAlert": {
              "type": [
                "object",
                "null"
              ],
              "properties": {
                "getMoreCreditsUrl": {
                  "type": "string",
                  "format": "uri",
                  "description": "URL to top up credits or restart billing cycle to get fresh credits."
                },
                "message": {
                  "type": "string",
                  "description": "Human-readable credits warning."
                },
                "availableCredits": {
                  "type": "number",
                  "description": "Number of credits remaining in the current billing period."
                }
              },
              "required": [
                "getMoreCreditsUrl",
                "message",
                "availableCredits"
              ],
              "description": "Contains a link to get more credits, a warning message, and the remaining credit count."
            }
          },
          "required": [
            "method",
            "message"
          ],
          "description": "No credits were charged for this operation"
        },
        {
          "type": "object",
          "properties": {
            "method": {
              "type": "string",
              "enum": [
                "credits-refunded"
              ]
            },
            "creditsRefunded": {
              "type": "number"
            },
            "message": {
              "type": "string"
            },
            "lowCreditAlert": {
              "type": [
                "object",
                "null"
              ],
              "properties": {
                "getMoreCreditsUrl": {
                  "type": "string",
                  "format": "uri",
                  "description": "URL to top up credits or restart billing cycle to get fresh credits."
                },
                "message": {
                  "type": "string",
                  "description": "Human-readable credits warning."
                },
                "availableCredits": {
                  "type": "number",
                  "description": "Number of credits remaining in the current billing period."
                }
              },
              "required": [
                "getMoreCreditsUrl",
                "message",
                "availableCredits"
              ],
              "description": "Contains a link to get more credits, a warning message, and the remaining credit count."
            }
          },
          "required": [
            "method",
            "creditsRefunded",
            "message"
          ],
          "description": "Credits were refunded for this operation"
        }
      ]
    },
    "warnings": {
      "type": [
        "array",
        "null"
      ],
      "items": {
        "type": "object",
        "properties": {
          "field": {
            "type": "string",
            "description": "Full path to extraneous field (e.g., 'searchParams.ExtraField')"
          },
          "message": {
            "type": "string",
            "description": "Warning message"
          }
        },
        "required": [
          "field",
          "message"
        ]
      },
      "description": "Warnings about extraneous fields in request"
    },
    "advice": {
      "type": "array",
      "items": {
        "type": "string"
      },
      "default": [],
      "description": "Tips, recommendations, and suggestions for using this API effectively."
    }
  },
  "required": [
    "output",
    "chargeInfo",
    "advice"
  ],
  "additionalProperties": false
}
```

---

Canonical JSON: [`https://api.fiber.ai/openapi.json`](https://api.fiber.ai/openapi.json)
Operation index: [`https://api.fiber.ai/ai-docs/index.md`](https://api.fiber.ai/ai-docs/index.md)
