---
title: "Add people to tracker list"
method: PUT
path: "/v1/tracker/person-lists/{listId}/people"
tags: ["Tracker"]
---

# Add people to tracker list

`PUT /v1/tracker/person-lists/{listId}/people`

Add people to a person tracker list. Identify people by LinkedIn URL, user ID, or slug. At least one identifier is required per person.

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

<span>💰 <strong>Cost:</strong> FREE! No credits are charged for this API.&nbsp;<span title="Pricing shown is default pricing. Actual pricing may vary.">ⓘ</span></span>

## Path parameters

- `listId` string, required

## Request body

- object
  - `apiKey` string, required — Your Fiber API key
  - `people` object[], required — People to add. At least one identifier required per person.
    - `linkedinUrl` string, nullable — Full LinkedIn profile URL
    - `linkedinUserId` string, nullable — A person's stable numeric identifier. This is NOT derived from their profile URL — retrieve it from a live enrichment lookup. Digits only.
    - `linkedinSlug` string, nullable — The handle in a profile URL — e.g. `williamhgates` in https://www.linkedin.com/in/williamhgates/.
  - `initialSignals` object, nullable — When provided, generates signals immediately for recent events (funding rounds, news, job postings, social posts) without waiting for the first tracking cycle. Only certain rule types support initial signals.
    - `lookbackPeriodDays` integer, nullable — How many days back from today to search for recent events. Useful for bootstrapping a new list without waiting for the first scheduled refresh. Defaults to the list's refresh interval if not provided.

## Response `200`

Default Response

- object
  - `output` object, required
    - `added` integer, required — Number of people fully resolved and added to the list.
    - `pending` integer, required — Number of people accepted and added to the list but whose profile is still being resolved in the background. They become fully tracked once resolution finishes (usually within minutes); a profile that turns out not to exist is dropped automatically.
    - `skipped` integer, required — Number of people not added because they were already in the list or appeared more than once in this request. People that could not be resolved are reported in invalidPeople, not here.
    - `invalidPeople` object[], required — Details on any people that could not be added.
      - `index` integer, required — Index in the input array.
      - `reason` string, required — Why this person was skipped.
    - `initialSignals` union, required — Status of the initial signals request.
      - object
        - `triggered` true, required
        - `peopleQueued` integer, required — Number of people queued for initial signal processing.
      - object
        - `triggered` false, required
  - `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)
