---
title: "Dodaj wiele leadów (do 500)"
method: POST
path: "/leads/bulk"
tags: ["Leady"]
---

# Dodaj wiele leadów (do 500)

`POST /leads/bulk`

## Request

- Base URL: `https://outreachpilot.pl/api/v1`
- URL: `https://outreachpilot.pl/api/v1/leads/bulk`
- Auth: HTTP bearer

Importuje do 500 leadów w jednym żądaniu. Każdy element jest walidowany osobno: błędny trafia do `rejected`, duplikat do `duplicates`, reszta jest zapisywana do wyczerpania limitu (nadmiar w `omitted_by_limit`). Odpowiedź 200 nawet przy częściowym sukcesie; wynik per indeks.

**Wymagany zakres klucza:** `leads:write`.

## Request body

- object
  - `leads` object[], required: Lista leadów (1-500). Błędny element trafia do `rejected`, nie psuje reszty.
    - `company_name` string: Nazwa firmy.
    - `first_name` string: Imię.
    - `last_name` string: Nazwisko.
    - `email` string: Adres e-mail (unikalny w Twojej bazie).
    - `phone` string: Telefon.
    - `job_title` string: Stanowisko.
    - `company_city` string: Miasto.
    - `company_industry` string: Branża.
    - `company_website` string: Strona WWW firmy.
    - `company_address` string: Adres.
    - `company_nip` string: NIP.
    - `company_regon` string: REGON.
    - `company_voivodeship` string: Województwo.
    - `company_pkd` string: Kod PKD.
    - `notes` string: Notatki.
    - `tags` string[]: Tagi (maks. 20).
  - `tag` string: Tag dodawany do wszystkich zapisanych leadów.

## Response `200`

Sukces.

- object
  - `data` LeadBulkResult, required
    - `created` object[], required: Zapisane leady (indeks z wejściowej tablicy).
      - `index` integer, required
      - `id` string, required
    - `duplicates` object[], required: Pominięte: już masz takiego leada.
      - `index` integer, required
      - `reason` string, required
    - `rejected` object[], required: Odrzucone przez walidację.
      - `index` integer, required
      - `errors` object[], required
        - `path` string, required
        - `message` string, required
    - `omitted_by_limit` integer[], required: Indeksy poprawnych leadów, których nie zapisano z powodu limitu planu.
    - `limited_by` 'monthly' | 'daily', nullable, required
    - `remaining_quota` integer, required: Ile leadów możesz jeszcze dodać w tym cyklu.

## Other responses

- `400`: Nieprawidłowe żądanie. Kody: `invalid_request`.
- `401`: Brak, zły, odwołany lub wygasły klucz (`missing_api_key`, `invalid_api_key`, `api_key_revoked`, `api_key_expired`, `account_inactive`).
- `402`: Wyczerpany limit leadów. Kody: `lead_limit_reached`.
- `403`: Plan nie obejmuje API (`plan_upgrade_required`, odpowiedź zawiera informacje o planie; nie dotyczy tras wtyczki z kluczem `extension:*`) albo klucz nie ma wymaganego zakresu (`insufficient_scope`).
- `422`: Błąd walidacji. Kody: `validation_error`.
- `429`: Przekroczono limit żądań (`rate_limit_exceeded`). Zobacz nagłówek `Retry-After`.

---

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