---
title: "Get a Company Followers signal's extraction"
method: GET
path: "/api/v1/signals/{signal_id}/extraction"
tags: ["Signals"]
---

# Get a Company Followers signal's extraction

`GET /api/v1/signals/{signal_id}/extraction`

## Request

- Base URL: `https://api.rodz.io` (the document declares no server; this is the origin it was published from)
- URL: `https://api.rodz.io/api/v1/signals/{signal_id}/extraction`
- Auth: HTTP bearer

Know where a Company Followers signal stands: whether its followers have been priced, what the quote costs, whether the extraction is running and how many leads it has delivered. Poll it after requesting a quote or accepting one.

**Why it matters:** a Company Followers signal in `icp` mode (the default — every follower matching your filters) produces **no leads until a quote is requested and accepted**, even while the signal is `active`. Its single-signal responses carry a `QUOTE_REQUIRED` warning until then.

**Input:** the signal ID in the path.

**Output:** `extraction` — the signal's latest extraction, or `null` when none was ever requested: `id`, `mode` (`icp` / `count`), `status` (`awaiting_quote` → `quoted` → `accepted` → `processing` → `results_ready` / `imported` → `settled`; or `declined`, `failed`), `estimatedFollowers` (followers matching your filters), `creditsQuoted` (the price), `creditsHeld`, `creditsCharged`, `creditsReleased`, `deliveredCount`, `error` (why a `failed` extraction stopped, e.g. `expired`, or `company_page_unavailable` when a company page does not exist), `createdAt`, `updatedAt`, and `expiresAt` (when an unaccepted quote lapses).

**Errors:** `NOT_FOUND` (404, no such signal on your account), `UNSUPPORTED` (400, not a Company Followers signal).

## Path parameters

- `signal_id` string, required

## Response `200`

Successful Response

- object: The extraction of a Company Followers signal, or `null` when it has none.
  - `extraction` object, nullable: One follower extraction of a Company Followers signal: its quote, its credits, its delivery.
    - `id` string, required: Extraction id.
    - `mode` 'icp' | 'count', required: `icp`: every follower matching the signal's filters, priced by a quote you accept. `count`: a fixed number of followers, unfiltered, started at once.
    - `status` string, required: `awaiting_quote` (the quote is being computed — read this endpoint again in a minute), `quoted` (priced, waiting for your accept or decline), `accepted` (credits held, extraction starting), `processing` (extraction running), `results_ready` / `imported` (leads being delivered), `settled` (done: delivered leads charged, the rest of the hold returned), `declined` (you declined the quote), `failed` (see `error`).
    - `requestedCount` integer, nullable: `count` mode: the number of followers ordered. `null` in `icp` mode.
    - `estimatedFollowers` integer, nullable: `icp` mode: followers of these pages matching your filters, as counted for the quote. `null` until the quote is ready.
    - `creditsQuoted` number, nullable: The price of the extraction: in `icp` mode 0.5 credit per matching follower, with a minimum of 75 credits; in `count` mode 1 credit per follower requested. `null` until the quote is ready.
    - `creditsHeld` number: Credits reserved on your balance for this extraction (from accept until it settles). Quoting holds nothing.
    - `creditsCharged` number: Credits actually charged — for the leads delivered, never above the hold.
    - `creditsReleased` number: Credits of the hold returned to your balance (undelivered, declined, expired).
    - `deliveredCount` integer, nullable: Leads delivered so far by this extraction.
    - `error` string, nullable: Why a `failed` extraction stopped: `expired` (the quote was not accepted within 30 days — request a new one), `insufficient_credits`, `cancelled` (the signal was paused before the extraction started), `companies_unavailable` (the company pages could not be read — try again later), `company_page_unavailable` (a page in `linkedinCompanyUrls` does not exist on LinkedIn — nothing was charged; replace it, then start a new extraction), `extraction_failed`. `null` otherwise.
    - `createdAt` string, nullable: ISO-8601, UTC.
    - `updatedAt` string, nullable: ISO-8601, UTC.
    - `expiresAt` string, nullable: `quoted` only: when the quote lapses if neither accepted nor declined (30 days after it was issued). It then turns `failed` with `error: expired` and nothing is charged.

## Other responses

- `400`: Not a Company Followers signal
- `404`: No signal with this id on your account
- `422`: Validation Error
- `429`: Rate limit exceeded. Retry after the number of seconds in the `Retry-After` response header.

---

[API](https://skmtc.dev/rodz/apis/rodz-api.md) · [All operations](https://skmtc.dev/rodz/apis/rodz-api/llms.txt) · [OpenAPI document](https://skmtc.dev/rodz/apis/rodz-api/revisions/3003505ff896?raw)
