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

# Add companies to tracker list

`PUT /v1/tracker/company-lists/{listId}/companies`

## Request

- Base URL: `https://api.fiber.ai`
- URL: `https://api.fiber.ai/v1/tracker/company-lists/{listId}/companies`
- Auth: none declared

Add companies to a company tracker list. Identify companies by LinkedIn URL, organization ID, slug, or website domain. At least one identifier is required per company.

<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
  - `companies` object[], required: Companies to add. At least one identifier required per company.
    - `linkedinUrl` string, nullable: Full LinkedIn company URL.
    - `linkedinOrgId` string, nullable: A company's stable numeric identifier. This is NOT derived from their company page URL — retrieve it from a live enrichment lookup. Digits only.
    - `linkedinSlug` string, nullable: The handle in a company page URL — e.g. `microsoft` in https://www.linkedin.com/company/microsoft/.
    - `domain` string, nullable: Company website domain (e.g. 'fiber.ai'). Will be resolved to the company profile identifier.
  - `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 companies successfully added.
    - `skipped` integer, required: Number skipped (duplicates or invalid).
    - `invalidCompanies` object[], required: Details on any companies that could not be added.
      - `index` integer, required: Index in the input array.
      - `reason` string, required: Why this company was skipped.
    - `initialSignals` union, required: Status of the initial signals request.
      - object
        - `triggered` true, required
        - `companiesQueued` integer, required: Number of companies 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

## Changes

- **2026-07-31** `4002aa81d4fb`: 2 breaking, 1 info
  - the response property `advice` became nullable for the status `200`
  - the response property `advice` became optional for the status `200`
  - the `advice` response's property default value `` was removed for the status `200`
- **2026-07-26** `fda5277ff34f`: 2 info
  - added the new optional request property `initialSignals`
  - added the required property `output/initialSignals` to the response with the `200` status
- **2026-07-13** `f14ac2efab0c`: 1 breaking, 3 info
  - added the pattern `^\d+$` to the request property `companies/items/linkedinOrgId`
  - added the new optional request property `companies/items/domain`
  - added the non-success response with the status `422`
  - added the required property `advice` to the response with the `200` status

[Operation history](https://skmtc.dev/fiber/apis/fiber-ai-api/changes/v1/tracker/company-lists/:listId/companies/put.md)

---

[API](https://skmtc.dev/fiber/apis/fiber-ai-api.md) - [All operations](https://skmtc.dev/fiber/apis/fiber-ai-api/llms.txt) - [OpenAPI document](https://skmtc.dev/fiber/apis/fiber-ai-api/revisions/d8237cb5c35e?raw)
