B2BB2B LLM

Partner API punktów końcowych

Wypełnij Partner API przykładów żądań i odpowiedzi dla kluczy, grup, żądań i transakcji.

Partner API punktów końcowych

Bazowy adres URL:

https://p-api.model-gate.com

Wszystkie żądania wymagają:

Authorization: Bearer mg_partner_...
Accept: application/json

Wszystkie wartości pieniężne i limity są ciągami dziesiętnymi JSON. Nie analizuj ich jako binarnych liczb zmiennoprzecinkowych.

Wspólne zasady integracji Banku

Wszystkie zewnętrzne znaczniki czasu mają format UTC RFC3339. Używane punkty końcowe kolekcji limit (1–100) plus nieprzezroczysty cursor; nigdy nie analizuj ani nie twórz zawartości kursora. POST, PATCH, I DELETE wymagają żądania Idempotency-Key; spróbuj ponownie wykonać tę samą operację z tym samym kluczem po upływie limitu czasu. Zapisy dotyczące idempotencji są przechowywane przez 7 dni. Odpowiedzi obejmują X-Request-ID, Czy Cache-Control: no-store, a wszystkie błędy są w formacie JSON. Odpowiedzi z limitem szybkości to HTTP 429 z Retry-After I X-RateLimit-* nagłówki. Nieznane pola treści/zapytania zostały odrzucone.

Czytelna maszynowo umowa OpenAPI 3.1 jest dystrybuowana jako resources/contracts/partner-api.openapi.yaml.

Utwórz klucz API

Wniosek

curl -X POST https://p-api.model-gate.com/api/v1/partner/keys \
  -H "Authorization: Bearer mg_partner_..." \
  -H "Idempotency-Key: operation-unique-001" \
  -H "Content-Type: application/json" \
  -d '{
    "name": "Telegram user 123",
    "group_id": "GROUP_PUBLIC_ID",
    "rpm_limit": 30,
    "concurrency_limit": 2,
    "spend_limit": "20.0000000000",
    "usage_price_basis": "official_price",
    "usage_price_multiplier": "0.900000"
  }'

Odpowiedź — 201

{
  "data": {
    "public_id": "KEY_PUBLIC_ID",
    "group_id": "GROUP_PUBLIC_ID",
    "name": "Telegram user 123",
    "key_prefix": "mg_live_ab12",
    "key": "mg_live_ab12...",
    "status": "active",
    "rpm_limit": 30,
    "concurrency_limit": 2,
    "spend_limit": "20.0000000000",
    "usage": "0.0000000000",
    "total_spent": "0.0000000000",
    "usage_price_basis": "official_price",
    "usage_price_multiplier": "0.900000",
    "effective_usage_price_basis": "official_price",
    "effective_usage_price_multiplier": "0.900000"
  }
}

Kompletny key wartość jest zwracana dopiero po utworzeniu lub obróceniu.

Lista kluczy API

Wniosek

curl https://p-api.model-gate.com/api/v1/partner/keys \
  -H "Authorization: Bearer mg_partner_..."

Odpowiedź — 200

{
  "data": [
    {
      "public_id": "KEY_PUBLIC_ID",
      "group_id": "GROUP_PUBLIC_ID",
      "name": "Telegram user 123",
      "status": "active",
      "spend_limit": "20.0000000000",
      "usage": "3.2500000000",
      "total_spent": "1.1400000000"
    }
  ]
}

Lista jest sortowana od najnowszych i wykorzystuje nieprzezroczystą paginację kursora. Przechodzić limit=1..100; Kiedy meta.has_more to prawda, wyślij meta.next_cursor jako następny cursor.

Zdobądź jeden klucz API

Wniosek

curl https://p-api.model-gate.com/api/v1/partner/keys/KEY_PUBLIC_ID \
  -H "Authorization: Bearer mg_partner_..."

Odpowiedź — 200

{
  "data": {
    "public_id": "KEY_PUBLIC_ID",
    "group_id": "GROUP_PUBLIC_ID",
    "name": "Telegram user 123",
    "status": "active",
    "rpm_limit": 30,
    "concurrency_limit": 2,
    "spend_limit": "20.0000000000",
    "usage": "3.2500000000",
    "total_spent": "1.1400000000",
    "effective_usage_price_basis": "official_price",
    "effective_usage_price_multiplier": "0.900000"
  }
}

Zaktualizuj klucz API

PATCH zastępuje tylko obsługiwane wartości modyfikowalne. Aby usunąć klucz z grupy, wyślij pusty group_id. Aby odziedziczyć ustawienia wyceny, wyślij null dla podstawy poziomu kluczowego i mnożnika.

Wniosek

curl -X PATCH https://p-api.model-gate.com/api/v1/partner/keys/KEY_PUBLIC_ID \
  -H "Authorization: Bearer mg_partner_..." \
  -H "Idempotency-Key: operation-unique-001" \
  -H "Content-Type: application/json" \
  -d '{
    "name": "Updated user name",
    "group_id": "GROUP_PUBLIC_ID",
    "rpm_limit": 60,
    "concurrency_limit": 4,
    "spend_limit": "40.0000000000",
    "usage_price_basis": null,
    "usage_price_multiplier": null
  }'

Odpowiedź — 200

{
  "data": {
    "public_id": "KEY_PUBLIC_ID",
    "spend_limit": "40.0000000000",
    "usage": "3.2500000000",
    "effective_usage_price_basis": "user_price",
    "effective_usage_price_multiplier": "1.000000"
  }
}

Usuń klucz API

Wniosek

curl -X DELETE https://p-api.model-gate.com/api/v1/partner/keys/KEY_PUBLIC_ID \
  -H "Authorization: Bearer mg_partner_..." \
  -H "Idempotency-Key: operation-unique-001" \

Odpowiedź — 200

{"data":{"deleted":true}}

Blokowanie i odmrażanie klucza

Zablokuj żądanie

curl -X POST https://p-api.model-gate.com/api/v1/partner/keys/KEY_PUBLIC_ID/freeze \
  -H "Authorization: Bearer mg_partner_..." \
  -H "Idempotency-Key: operation-unique-001" \

Zablokuj reakcję

{"data":{"public_id":"KEY_PUBLIC_ID","status":"frozen"}}

Odblokuj żądanie

curl -X POST https://p-api.model-gate.com/api/v1/partner/keys/KEY_PUBLIC_ID/unfreeze \
  -H "Authorization: Bearer mg_partner_..." \
  -H "Idempotency-Key: operation-unique-001" \

Odblokuj odpowiedź

{"data":{"public_id":"KEY_PUBLIC_ID","status":"active"}}

Odmrożenie wymaga zweryfikowanego adresu e-mail właściciela.

Obróć klucz

Wniosek

curl -X POST https://p-api.model-gate.com/api/v1/partner/keys/KEY_PUBLIC_ID/rotate \
  -H "Authorization: Bearer mg_partner_..." \
  -H "Idempotency-Key: operation-unique-001" \

Odpowiedź — 200

{
  "data": {
    "public_id": "KEY_PUBLIC_ID",
    "status": "active",
    "key_prefix": "mg_live_cd34",
    "key": "mg_live_cd34..."
  }
}

Zresetuj użycie klucza

Wniosek

curl -X POST https://p-api.model-gate.com/api/v1/partner/keys/KEY_PUBLIC_ID/reset-usage \
  -H "Authorization: Bearer mg_partner_..." \
  -H "Idempotency-Key: operation-unique-001" \

Odpowiedź — 200

{
  "data": {
    "public_id": "KEY_PUBLIC_ID",
    "usage": "0.0000000000",
    "total_spent": "1.1400000000"
  }
}

Zresetowanie użycia nie powoduje zmiany wydatków w całym okresie ani salda konta.

Uzyskaj użycie klucza

Wniosek

curl https://p-api.model-gate.com/api/v1/partner/keys/KEY_PUBLIC_ID/usage \
  -H "Authorization: Bearer mg_partner_..."

Odpowiedź — 200

{
  "data": {
    "key_id": "KEY_PUBLIC_ID",
    "usage": "3.2500000000",
    "total_spent": "1.1400000000"
  }
}

Uzyskaj limit wydatków i pozostałe wykorzystanie

Wniosek

curl https://p-api.model-gate.com/api/v1/partner/keys/KEY_PUBLIC_ID/spent-limit \
  -H "Authorization: Bearer mg_partner_..."

Odpowiedź — 200

{
  "data": {
    "key_id": "KEY_PUBLIC_ID",
    "spend_limit": "20.0000000000",
    "usage": "3.2500000000",
    "remaining": "16.7500000000"
  }
}

Gdy spend_limit wynosi zero, jest nieograniczone i remaining Jest null.

Otrzymuj najnowsze prośby o klucz

Szczegółowa historia żądań to zbiór danych przechowywany na gorąco, kontrolowany przez API_REQUESTS_HOT_RETENTION_DAYS (domyślnie 7 dni). Metadane odpowiedzi zgłaszają aktywne okno przechowywania. Korzystaj z transakcji bilansowych w celu długoterminowego uzgodnienia finansowego.

limit jest opcjonalny, domyślnie wynosi 10 i musi być liczbą całkowitą od 1 do 100. Sfinalizowane żądania są porządkowane przez finished_at najpierw najnowsze. Gdy meta.has_more Jest true, przechodzić meta.next_cursor jako nieprzezroczyste before parametr zapytania, aby pobrać następną starszą stronę. Nie analizuj ani nie konstruuj kursorów samodzielnie.

Odpowiedź zawiera niezmienne stawki użytkownika i oficjalne stawki za milion tokenów dla żądań zrealizowanych po migracji 059_request_pricing_audit_snapshot.sql. To także kalkuluje pricing_snapshot.usage_price z zapisanej stawki podstawowej, mnożnika i kursów historycznych bez zapisywania innego zestawu stawek. Dzięki temu niezależna wycena limitu użytkowania będzie możliwa do sprawdzenia po zmianie cen katalogowych. Historyczne żądania utworzone przed powrotem migracji 059 pricing_snapshot.available: false zamiast zastępować obecne ceny. Żądania wykonywane za pośrednictwem wsadowych interfejsów API zgodnych z Claude/OpenAI są wyraźnie oznaczone request_mode: "batch" i dołącz ich protokół, identyfikator zadania wsadowego, custom_idoraz migawkowy mnożnik ceny partii Model Gate.

Opóźnienie wykorzystuje stabilne nazwy firm/partnerów: gateway_overhead_ms, upstream_first_token_ms, I e2e_first_token_ms. Wartość pierwszego tokena E2E jest mierzona od początku żądania Model Gate do pierwszego tokena rzeczywistej treści i nie obejmuje czasu sieci/TLS po stronie klienta. Partner API ujawnia tylko to, co jawne e2e_first_token_ms nazwa; kolumna pamięci wewnętrznej pozostaje api_requests.first_token_ms.

Wniosek

curl "https://p-api.model-gate.com/api/v1/partner/keys/KEY_PUBLIC_ID/requests?limit=10" \
  -H "Authorization: Bearer mg_partner_..."

Odpowiedź — 200

{
  "data": [
    {
      "request_id": "01KZ...",
      "key_id": "KEY_PUBLIC_ID",
      "group_id": "GROUP_PUBLIC_ID",
      "model": "claude-opus-4.7",
      "endpoint": "messages",
      "method": "POST",
      "status": "succeeded",
      "status_code": 200,
      "is_stream": false,
      "request_mode": "batch",
      "batch": {
        "protocol": "claude",
        "job_id": "msgbatch_01K...",
        "custom_id": "request-1",
        "price_multiplier": "0.5"
      },
      "tokens": {
        "input": 120,
        "output": 45,
        "cached": 0,
        "cache_write": 0,
        "reasoning": 0,
        "total": 165
      },
      "cost": "0.0000345",
      "usage_cost": "0.00345",
      "official_base_cost": "0.000345",
      "currency": "USD",
      "usage_pricing": {
        "basis": "official_price",
        "base_field": "official_base_cost",
        "base_amount": "0.000345",
        "multiplier": "10",
        "usage_cost": "0.00345",
        "formula": "round(base_amount * multiplier, 10)"
      },
      "pricing_snapshot": {
        "available": true,
        "unit": "per_1m_tokens",
        "user_price": {
          "input": "0.2",
          "output": "1",
          "cache_read": "0.02",
          "cache_write": "0.25",
          "reasoning": "1"
        },
        "official_price": {
          "input": "1",
          "output": "5",
          "cache_read": "0.1",
          "cache_write": "1.25",
          "reasoning": "5"
        },
        "usage_price": {
          "input": "10",
          "output": "50",
          "cache_read": "1",
          "cache_write": "12.5",
          "reasoning": "50"
        }
      },
      "duration_ms": 842,
      "gateway_overhead_ms": 34,
      "upstream_first_token_ms": 156,
      "e2e_first_token_ms": 190,
      "settlement_status": "settled",
      "started_at": "2026-08-05T10:00:00Z",
      "finished_at": "2026-08-05T10:00:00.842Z"
    }
  ],
  "meta": {
    "key_id": "KEY_PUBLIC_ID",
    "limit": 10,
    "returned": 1,
    "order": "finished_at_desc",
    "next_cursor": "eyJ0IjoiMjAyNi0wOC0wNSAxMDowMDowMCIsInAiOiIwMUt...",
    "has_more": true
  }
}

Aby kontynuować na następnej starszej stronie:

curl "https://p-api.model-gate.com/api/v1/partner/keys/KEY_PUBLIC_ID/requests?limit=10&before=NEXT_CURSOR" \
  -H "Authorization: Bearer mg_partner_..."

Inwalida before kursor zwraca HTTP 422. Kursor zawiera tylko godzinę zakończenia i publiczny identyfikator żądania zewnętrznego; wewnętrzne numeryczne identyfikatory żądań nigdy nie są ujawniane.

W przypadku żądań synchronicznych i natywnych asynchronicznych request_mode Jest sync Lub async i batch obiekt jest pominięty. Zapisana migawka stawki tokenu umożliwia odtworzenie historycznych obliczeń bazowych jako sum(tokens × snapshotted_rate / 1,000,000). Rozliczenie zaokrągla wybraną kwotę bazową do 10 miejsc po przecinku i następnie nalicza round(base_amount × multiplier, 10). Przechowywane cost, official_base_cost, I usage_cost pola pozostają miarodajne.

Ten punkt końcowy nigdy nie zwraca surowych treści żądań i odpowiedzi.

Lista transakcji salda

Wniosek

curl https://p-api.model-gate.com/api/v1/partner/transactions \
  -H "Authorization: Bearer mg_partner_..."

Odpowiedź — 200

{
  "data": [
    {
      "transaction_id": "TRANSACTION_PUBLIC_ID",
      "type": "debit",
      "source": "api_usage_minute",
      "billing_minute_num": 29769120,
      "amount": "-0.0232000000",
      "request_count": 100,
      "balance_before": null,
      "balance_after": null,
      "api_key_id": null,
      "created_at": "2026-08-05T10:00:00Z"
    }
  ]
}

Wnioskowanie dotyczące fakturowania jest reprezentowane jako jeden wiersz księgi portfela na właściciela faktury i minutę zakończenia. transaction_id jest trwałym identyfikatorem księgi publicznej. request_count to liczba żądań objętych tym obciążeniem minutowym; billing_minute_num Jest floor(unix(finished_at)/60). Surowa księga wewnętrzna id / source_id wartości nie są zwracane. Zagregowane wiersze dotyczące użycia interfejsu API zwracane są celowo null Do balance_before, balance_after, I api_key_id; dokładne szczegóły klucza/grupy/żądania są dostępne w historii żądań i w szczegółach panelu minutowego.

Uzyskaj aktualne saldo

curl https://p-api.model-gate.com/api/v1/partner/balance \
  -H "Authorization: Bearer mg_partner_..."
{"data":{"balance":"1234.5678900000","currency":"USD","as_of":"2026-08-28T07:00:00Z"}}

Użyj tego punktu końcowego po account.balance_low wywołania zwrotne w celu uzgodnienia bieżącego portfela konta bez konieczności podawania danych logowania Model API.

Wyświetl listę zdarzeń audytu partnera

curl "https://p-api.model-gate.com/api/v1/partner/audit-events?limit=100" \
  -H "Authorization: Bearer mg_partner_..."

Zdarzenia audytu rejestrują pomyślne mutacje w zarządzaniu partnerami z identyfikatorem żądania, działaniem, celem, źródłowym adresem IP, statusem, bezpiecznymi metadanymi i znacznikiem czasu UTC. Sekrety, tokeny nośnika, zwykły tekst klucza API, klucze idempotencji, odciski palców żądań i treści powtórek nie są przechowywane w metadanych inspekcji. Używać cursor dla kolejnych stron i opcjonalne action filtracja.

Utwórz grupę

Wniosek

curl -X POST https://p-api.model-gate.com/api/v1/partner/groups \
  -H "Authorization: Bearer mg_partner_..." \
  -H "Idempotency-Key: operation-unique-001" \
  -H "Content-Type: application/json" \
  -d '{
    "name": "Telegram bot A",
    "description": "Keys created by bot A",
    "rpm_limit": 100,
    "concurrency_limit": 20,
    "spend_limit": "1000.0000000000",
    "usage_price_basis": "official_price",
    "usage_price_multiplier": "0.900000"
  }'

Odpowiedź — 201

{
  "data": {
    "public_id": "GROUP_PUBLIC_ID",
    "name": "Telegram bot A",
    "status": "active",
    "spend_limit": "1000.0000000000",
    "usage": "0.0000000000",
    "total_spent": "0.0000000000",
    "usage_price_basis": "official_price",
    "usage_price_multiplier": "0.900000"
  }
}

Lista grup

Wniosek

curl https://p-api.model-gate.com/api/v1/partner/groups \
  -H "Authorization: Bearer mg_partner_..."

Odpowiedź

{"data":[{"public_id":"GROUP_PUBLIC_ID","name":"Telegram bot A","status":"active","usage":"0.0000000000"}]}

Pobierz lub zaktualizuj grupę

Pobierz prośbę

curl https://p-api.model-gate.com/api/v1/partner/groups/GROUP_PUBLIC_ID \
  -H "Authorization: Bearer mg_partner_..."

Uzyskaj odpowiedź

{"data":{"public_id":"GROUP_PUBLIC_ID","name":"Telegram bot A","spend_limit":"1000.0000000000","usage":"12.0000000000"}}

Zaktualizuj żądanie

curl -X PATCH https://p-api.model-gate.com/api/v1/partner/groups/GROUP_PUBLIC_ID \
  -H "Authorization: Bearer mg_partner_..." \
  -H "Idempotency-Key: operation-unique-001" \
  -H "Content-Type: application/json" \
  -d '{"name":"Telegram bot A production","status":"active","spend_limit":"2000.0000000000","usage_price_basis":"user_price","usage_price_multiplier":"1.200000"}'

Zaktualizuj odpowiedź

{"data":{"public_id":"GROUP_PUBLIC_ID","name":"Telegram bot A production","spend_limit":"2000.0000000000","usage_price_basis":"user_price","usage_price_multiplier":"1.200000"}}

Usuń grupę

Niepusta grupa nie jest usuwana. Najpierw przenieś lub usuń wszystkie klucze API członków; w przeciwnym razie API zwraca HTTP 409 z group_not_empty.

Wniosek

curl -X DELETE https://p-api.model-gate.com/api/v1/partner/groups/GROUP_PUBLIC_ID \
  -H "Authorization: Bearer mg_partner_..." \
  -H "Idempotency-Key: operation-unique-001" \

Odpowiedź

{"data":{"deleted":true}}

Klucze są odłączane zgodnie z zachowaniem klucza obcego bazy danych. Zweryfikuj członkostwo przed usunięciem.

Zresetuj użycie grupy

Wniosek

curl -X POST https://p-api.model-gate.com/api/v1/partner/groups/GROUP_PUBLIC_ID/reset-usage \
  -H "Authorization: Bearer mg_partner_..." \
  -H "Idempotency-Key: operation-unique-001" \

Odpowiedź

{"data":{"public_id":"GROUP_PUBLIC_ID","usage":"0.0000000000","total_spent":"8.5000000000"}}

Lista członków grupy

Wniosek

curl https://p-api.model-gate.com/api/v1/partner/groups/GROUP_PUBLIC_ID/members \
  -H "Authorization: Bearer mg_partner_..."

Odpowiedź

{"data":[{"public_id":"KEY_PUBLIC_ID","name":"Telegram user 123","status":"active","usage":"3.2500000000","total_spent":"1.1400000000"}]}

Dodaj klucz do grupy

Wniosek

curl -X POST https://p-api.model-gate.com/api/v1/partner/groups/GROUP_PUBLIC_ID/members \
  -H "Authorization: Bearer mg_partner_..." \
  -H "Idempotency-Key: operation-unique-001" \
  -H "Content-Type: application/json" \
  -d '{"key_id":"KEY_PUBLIC_ID"}'

Odpowiedź

Odpowiedzią jest zaktualizowana lista członków grupy:

{"data":[{"public_id":"KEY_PUBLIC_ID","name":"Telegram user 123","status":"active"}]}

Usuń klucz z grupy

Wniosek

curl -X DELETE https://p-api.model-gate.com/api/v1/partner/groups/GROUP_PUBLIC_ID/members/KEY_PUBLIC_ID \
  -H "Authorization: Bearer mg_partner_..." \
  -H "Idempotency-Key: operation-unique-001" \

Odpowiedź

{"data":{"removed":true}}

Uzyskaj wykorzystanie grupowe

Wniosek

curl https://p-api.model-gate.com/api/v1/partner/groups/GROUP_PUBLIC_ID/usage \
  -H "Authorization: Bearer mg_partner_..."

Odpowiedź

{"data":{"group_id":"GROUP_PUBLIC_ID","usage":"12.0000000000","total_spent":"8.5000000000","usage_reset_at":"2026-08-01T00:00:00Z"}}

Uzyskaj statystyki grupy

from I to akceptuj tylko znaczniki czasu UTC RFC3339 kończące się na Z (dozwolone są ułamki sekund do 6 cyfr). Statystyki są obliczane wyłącznie na podstawie agregatów zrealizowanych żądań, których kluczem jest klucz finished_at; aktualnie otwarta minuta jest celowo wykluczona, więc wyniki mogą być opóźnione aż do częstotliwości agregacji minut.

average_duration_ms to średni czas trwania pełnego żądania Model Gate (duration_ms) dla zrealizowanych żądań w wybranym okresie. Nie jest to opóźnienie pierwszego tokena E2E, opóźnienie pierwszego tokenu w górę ani obciążenie bramy. Partner API ujawnia tylko tę wyraźną nazwę metryki.

Wniosek

curl "https://p-api.model-gate.com/api/v1/partner/groups/GROUP_PUBLIC_ID/stats?from=2026-08-01T00:00:00Z&to=2026-08-05T23:59:59Z" \
  -H "Authorization: Bearer mg_partner_..."

Odpowiedź

{
  "data": {
    "group_id": "GROUP_PUBLIC_ID",
    "requests": 120,
    "errors": 3,
    "input_tokens": 50000,
    "output_tokens": 12000,
    "cached_tokens": 8000,
    "cache_write_tokens": 1200,
    "reasoning_tokens": 2000,
    "cost": "8.5000000000",
    "average_duration_ms": "842.50",
    "from": "2026-08-01T00:00:00Z",
    "to": "2026-08-05T23:59:59Z"
  }
}

Uzyskaj wynik asynchroniczny

Wniosek

curl https://p-api.model-gate.com/api/v1/requests/01KZ... \
  -H "Authorization: Bearer mg_partner_..."

Przetwarzanie odpowiedzi

{
  "data": {
    "request_id": "01KZ...",
    "status": "processing",
    "created_at": "2026-08-05T10:00:00Z",
    "started_at": "2026-08-05T10:00:00Z",
    "completed_at": null,
    "expires_at": "2026-08-06T10:00:00Z"
  }
}

Ukończona odpowiedź

{
  "data": {
    "request_id": "01KZ...",
    "status": "completed",
    "response_status": 200,
    "response_headers": {"Content-Type":"application/json"},
    "response": {"id":"resp_example","status":"completed"},
    "completed_at": "2026-08-05T10:00:05Z",
    "expires_at": "2026-08-06T10:00:00Z"
  }
}

Typowe błędy

Nieprawidłowy klucz Partner API — 401

{"error":{"type":"invalid_token","message":"Invalid Partner API key"}}

Nie znaleziono zasobu — 404

{"error":{"type":"not_found","message":"API key not found"}}

Nieprawidłowe żądanie — 422

{"error":{"type":"invalid_request","message":"limit must be an integer from 1 to 100"}}

Mutowanie treści JSON Partner API jest ograniczone do 1 MiB.

Konflikt idempotencji — 409

Ten sam Idempotency-Key został ponownie wykorzystany do innego żądania. Wygeneruj nowy klucz dla nowej operacji logicznej.

Limit stawki — 429

Odpowiedź zawiera error.code = partner_rate_limit_exceeded I Retry-After. Ponów próbę dopiero po upływie wskazanego opóźnienia.

Metoda niedozwolona — 405

Host partnera zwraca błąd JSON i protokół HTTP Allow chodnikowiec; nigdy nie powoduje powrotu do strony błędu HTML.

Główne zasady dotyczące poświadczeń biznesowych

W przypadku tokena firmy Partner API akceptowany jest tylko zweryfikowany właściciel organizacji. Klucze utworzone za pomocą Partner API używają tego właściciela zarówno jako właściciela płatności, jak i podmiotu uwierzytelniającego. Przypisanie pracownika do szefa odbywa się w panelu WWW. group_id, jeśli jest podany, musi identyfikować aktywną grupę należącą do konta firmowego; nieprawidłowe wartości zwracają HTTP 422 i nigdy nie wracaj do niezgrupowanego klucza. Odpowiedzi dotyczące historii żądań mogą obejmować principal_user_id w celu identyfikacji podmiotu uwierzytelniającego niezależnie od własności rozliczeń.