> ## Documentation Index
> Fetch the complete documentation index at: https://docs.freshtalent.ai/llms.txt
> Use this file to discover all available pages before exploring further.

# List targets

> List the authenticated organization's people-search and company-network Targets.

Returns every Target visible to the API key's organization. This is a metadata and job-progress list; it does not return member rows. Reading it also reconciles auto-admission: Targets with `auto_admit: true` can have existing proposed members promoted and generated lists synchronized. A Target member is in Monitoring only when its status is `watching`. `proposed` and `excluded` members remain part of the Target but are not monitored.

## Request

No path, query, or body parameters.

<Note>
  Every Target route requires `Authorization: Bearer <api key>`. A platform key must also send `X-FreshTalent-Org-Id` with a UUID. The organization must have active access.
</Note>

## Response

`200 OK` returns `{ "data": Target[], "meta": { "count": integer } }`. There is no server pagination or `next` URL for this endpoint; `meta.count` is the number of returned Targets.

Each Target has this shape:

| Field                                                                                                                 | Type                    | Nullability and meaning                                                                                                                              |
| --------------------------------------------------------------------------------------------------------------------- | ----------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------- |
| `id`                                                                                                                  | string                  | Target UUID; non-null.                                                                                                                               |
| `kind`                                                                                                                | `"company" \| "people"` | Non-null discriminator.                                                                                                                              |
| `name`                                                                                                                | string                  | Non-null display name.                                                                                                                               |
| `linkedin_url`                                                                                                        | string                  | Nullable; resolved company LinkedIn URL, or `null` for people Targets and unresolved companies.                                                      |
| `auto_admit`                                                                                                          | boolean                 | Non-null; defaults to `false` at creation.                                                                                                           |
| `watching_count`, `proposed_count`, `excluded_count`, `current_count`, `alum_count`, `enriched_count`, `member_count` | integer                 | Non-null counts. `current_count` and `alum_count` count only `watching` members.                                                                     |
| `allocation_used`, `in_graph_count`                                                                                   | integer                 | Included by this route. `allocation_used` counts watching members outside the index; `in_graph_count` is `max(0, watching_count - allocation_used)`. |
| `result_limit`                                                                                                        | integer                 | Nullable. Stored discovery cap when the create request set one; `null` means the deployment default.                                                 |
| `created_at`                                                                                                          | string                  | Non-null ISO timestamp.                                                                                                                              |
| `query`                                                                                                               | object                  | Non-null stored query/config object; may be `{}` for a company Target.                                                                               |
| `job`                                                                                                                 | object                  | Non-null latest job summary.                                                                                                                         |
| `job.id`                                                                                                              | string                  | Nullable until a job is associated.                                                                                                                  |
| `job.status`                                                                                                          | string                  | Non-null current job status, such as `pending`, `running`, `done`, or `failed`.                                                                      |
| `job.phase`                                                                                                           | string                  | Nullable progress phase.                                                                                                                             |
| `job.total`, `job.completed`, `job.failed`                                                                            | integer                 | Non-null progress counts.                                                                                                                            |
| `job.error`                                                                                                           | string                  | Nullable; latest job error.                                                                                                                          |

The service orders Targets by `created_at` descending.

<ResponseExample>
  ```json 200 theme={"theme":{"light":"github-light","dark":"github-dark"}}
  {
    "data": [
      {
        "id": "550e8400-e29b-41d4-a716-446655440000",
        "kind": "people",
        "name": "Palantir FDE leavers",
        "linkedin_url": null,
        "auto_admit": false,
        "watching_count": 0,
        "proposed_count": 12,
        "excluded_count": 0,
        "current_count": 0,
        "alum_count": 0,
        "enriched_count": 0,
        "member_count": 12,
              "allocation_used": 0,
              "in_graph_count": 0,
              "result_limit": 80,
              "created_at": "2026-09-16T11:43:00.000Z",
              "query": { "input": "Palantir FDE leavers", "filters": { "recently_changed_jobs": true }, "result_limit": 80 },
        "job": {
          "id": "7b1d9b3c-0b8f-4d4d-a8b4-72ef8fbb4c81",
          "status": "pending",
          "phase": "queued",
          "total": 0,
          "completed": 0,
          "failed": 0,
          "error": null
        }
      }
    ],
    "meta": { "count": 1 }
  }
  ```
</ResponseExample>

## Examples

<RequestExample>
  ```bash cURL theme={"theme":{"light":"github-light","dark":"github-dark"}}
  curl --fail-with-body --max-time 30 "https://api.freshtalent.ai/v1/targets" \
    -H "Authorization: Bearer $FRESHTALENT_API_KEY"
  ```

  ```js JavaScript fetch theme={"theme":{"light":"github-light","dark":"github-dark"}}
  const response = await fetch("https://api.freshtalent.ai/v1/targets", {
    signal: AbortSignal.timeout(30_000), headers: { Authorization: `Bearer ${process.env.FRESHTALENT_API_KEY}` },
  });
  const body = await response.json();
  if (!response.ok) throw new Error(`${response.status}: ${JSON.stringify(body)}`);
  console.log(body.data, body.meta.count);
  ```

  ```python Python stdlib theme={"theme":{"light":"github-light","dark":"github-dark"}}
  import json
  import os
  import urllib.request

  request = urllib.request.Request(
      "https://api.freshtalent.ai/v1/targets",
      headers={"Authorization": f"Bearer {os.environ['FRESHTALENT_API_KEY']}"},
  )
  with urllib.request.urlopen(request, timeout=30) as response:
      body = json.load(response)
  print(body["data"], body["meta"]["count"])
  ```
</RequestExample>

## Errors and recovery

* `401 unauthorized`: missing, invalid, or revoked API key. Fix authentication.
* `400 invalid_request`: a platform key is missing `X-FreshTalent-Org-Id` or the header is not a UUID. Fix the header.
* `402 payment_required`: the organization is locked after its trial. Subscribe before retrying.
* `429` or `5xx`: use bounded backoff and honor `Retry-After` for `429`. Reads are safe to retry; do not assume a failed response means the collection was empty.

## Next

* [Get a target](/api-reference/targets/get) for one Target and its latest job summary.
* [List target members](/api-reference/targets/members) for filtered, paginated member rows.
* [Create a target](/api-reference/targets/create) to add a standing search or company network.
