Partner API koncových bodov
Vyplňte Partner API príklady žiadostí a odpovedí pre kľúče, skupiny, požiadavky a transakcie.
Partner API koncových bodov
Základná adresa URL:
https://p-api.model-gate.com
Všetky žiadosti vyžadujú:
Authorization: Bearer mg_partner_...
Accept: application/json
Všetky peňažné a limitné hodnoty sú desiatkové reťazce JSON. Neanalyzujte ich ako binárne čísla s pohyblivou rádovou čiarkou.
Spoločné pravidlá integrácie bánk
Všetky externé časové pečiatky sú UTC RFC3339. Použitie koncových bodov zberu limit (1–100) plus nepriehľadné cursor; nikdy neanalyzujte ani nevytvárajte obsah kurzora. POST, PATCHa DELETE žiadosti vyžadujú Idempotency-Key; zopakujte rovnakú operáciu s rovnakým kľúčom po uplynutí časových limitov. Záznamy o idempotencii sa uchovávajú 7 dní. Odpovede zahŕňajú X-Request-ID, sú Cache-Control: no-storea všetky chyby sú JSON. Odpovede s limitom rýchlosti sú HTTP 429 s Retry-After a X-RateLimit-* hlavičky. Neznáme polia tela/dopytu sú odmietnuté.
Strojovo čitateľná zmluva OpenAPI 3.1 je distribuovaná ako resources/contracts/partner-api.openapi.yaml.
Vytvorte kľúč API
Žiadosť
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"
}'
Odpoveď - 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"
}
}
Kompletné key hodnota sa vráti až po vytvorení alebo otočení.
Zoznam kľúčov API
Žiadosť
curl https://p-api.model-gate.com/api/v1/partner/keys \
-H "Authorization: Bearer mg_partner_..."
Odpoveď - 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"
}
]
}
Zoznam je zoradený od najnovšieho ako prvý a používa nepriehľadné kurzorové stránkovanie. Pass limit=1..100; kedy meta.has_more je pravda, pošlite meta.next_cursor ako ďalší cursor.
Získajte jeden kľúč API
Žiadosť
curl https://p-api.model-gate.com/api/v1/partner/keys/KEY_PUBLIC_ID \
-H "Authorization: Bearer mg_partner_..."
Odpoveď - 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"
}
}
Aktualizujte kľúč API
PATCH nahrádza iba podporované meniteľné hodnoty. Ak chcete odstrániť kľúč zo skupiny, odošlite prázdny group_id. Ak chcete zdediť nastavenia oceňovania, odošlite null pre základ na úrovni kľúča a multiplikátor.
Žiadosť
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
}'
Odpoveď - 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"
}
}
Odstráňte kľúč API
Žiadosť
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" \
Odpoveď - 200
{"data":{"deleted":true}}
Zmrazte a rozmrazte kľúč
Žiadosť o zmrazenie
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" \
Zmraziť odozvu
{"data":{"public_id":"KEY_PUBLIC_ID","status":"frozen"}}
Zrušiť zmrazenie žiadosti
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" \
Zrušiť zmrazenie odpovede
{"data":{"public_id":"KEY_PUBLIC_ID","status":"active"}}
Rozmrazenie vyžaduje overený e-mail vlastníka.
Otočte kľúčom
Žiadosť
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" \
Odpoveď - 200
{
"data": {
"public_id": "KEY_PUBLIC_ID",
"status": "active",
"key_prefix": "mg_live_cd34",
"key": "mg_live_cd34..."
}
}
Resetovať používanie kľúča
Žiadosť
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" \
Odpoveď - 200
{
"data": {
"public_id": "KEY_PUBLIC_ID",
"usage": "0.0000000000",
"total_spent": "1.1400000000"
}
}
Resetovanie používania nezmení celoživotné výdavky ani zostatok na účte.
Získajte využitie kľúča
Žiadosť
curl https://p-api.model-gate.com/api/v1/partner/keys/KEY_PUBLIC_ID/usage \
-H "Authorization: Bearer mg_partner_..."
Odpoveď - 200
{
"data": {
"key_id": "KEY_PUBLIC_ID",
"usage": "3.2500000000",
"total_spent": "1.1400000000"
}
}
Získajte limit výdavkov a zostávajúce využitie
Žiadosť
curl https://p-api.model-gate.com/api/v1/partner/keys/KEY_PUBLIC_ID/spent-limit \
-H "Authorization: Bearer mg_partner_..."
Odpoveď - 200
{
"data": {
"key_id": "KEY_PUBLIC_ID",
"spend_limit": "20.0000000000",
"usage": "3.2500000000",
"remaining": "16.7500000000"
}
}
Kedy spend_limit je nula, je neobmedzená a remaining je null.
Získajte najnovšie žiadosti o kľúč
Podrobná história požiadaviek je množina údajov uchovávaných počas prevádzky, ktorú riadi API_REQUESTS_HOT_RETENTION_DAYS (predvolene 7 dní). Metadáta odpovede hlásia aktívne okno uchovávania. Na dlhodobejšie finančné zosúladenie použite bilančné transakcie.
limit je voliteľné, predvolene je 10 a musí to byť celé číslo od 1 do 100. Finalizované požiadavky sú zoradené podľa finished_at najnovšie ako prvé. Kedy meta.has_more je true, prejsť meta.next_cursor ako nepriehľadné before parameter dotazu na získanie ďalšej staršej stránky. Neanalyzujte ani nekonštruujte kurzory sami.
Odpoveď obsahuje nemenné používateľské a oficiálne sadzby za milión tokenov pre požiadavky dokončené po migrácii 059_request_pricing_audit_snapshot.sql. Tiež počíta pricing_snapshot.usage_price z uloženého základu, multiplikátora a historických sadzieb bez uloženia ďalšej sady sadzieb. Vďaka tomu je možné nezávislé oceňovanie limitov použitia po zmene katalógových cien kontrolovať. Historické požiadavky vytvorené pred migráciou 059 sa vrátia pricing_snapshot.available: false namiesto nahrádzania súčasných cien. Požiadavky vykonávané prostredníctvom dávkových API kompatibilných s Claude/OpenAI sú výslovne označené request_mode: "batch" a zahrnúť ich protokol, ID dávkovej úlohy, custom_ida násobiteľom ceny šarže Model Gate.
Latencia používa stabilné názvy firiem/partnerov: gateway_overhead_ms, upstream_first_token_msa e2e_first_token_ms. Hodnota prvého tokenu E2E sa meria od začiatku požiadavky Model Gate po prvý token skutočného obsahu a nezahŕňa čas siete/TLS na strane klienta. Partner API odhaľuje iba explicitné e2e_first_token_ms meno; stĺpec vnútorného úložiska zostáva api_requests.first_token_ms.
Žiadosť
curl "https://p-api.model-gate.com/api/v1/partner/keys/KEY_PUBLIC_ID/requests?limit=10" \
-H "Authorization: Bearer mg_partner_..."
Odpoveď - 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
}
}
Ak chcete pokračovať na ďalšej staršej stránke:
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_..."
Neplatič before kurzor vráti HTTP 422. Kurzor obsahuje iba koncovú pozíciu a verejné ID externej požiadavky; interné číselné ID požiadaviek nie sú nikdy odhalené.
Pre synchrónne a natívne asynchrónne požiadavky, request_mode je sync alebo async a batch objekt je vynechaný. Uložená snímka tokenovej rýchlosti umožňuje reprodukovať historický základný výpočet ako sum(tokens × snapshotted_rate / 1,000,000). Vyúčtovanie zaokrúhli vybranú základnú čiastku na 10 desatinných miest a potom vypočíta round(base_amount × multiplier, 10). Uložené cost, official_base_costa usage_cost polia zostávajú smerodajné.
Tento koncový bod nikdy nevracia nespracované telá žiadostí a odpovedí.
Zoznam transakcií zostatku
Žiadosť
curl https://p-api.model-gate.com/api/v1/partner/transactions \
-H "Authorization: Bearer mg_partner_..."
Odpoveď - 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"
}
]
}
Fakturovateľný odvod je reprezentovaný ako jeden riadok peňaženky na vlastníka fakturácie a minútu dokončenia. transaction_id je trvalý identifikátor verejnej knihy. request_count je počet žiadostí zahrnutých do tohto minútového debetu; billing_minute_num je floor(unix(finished_at)/60). Surová vnútorná účtovná kniha id / source_id hodnoty sa nevracajú. Súhrnné riadky používania API sa zámerne vracajú null pre balance_before, balance_aftera api_key_id; presný kľúč/skupina/podrobnosť požiadavky zostáva k dispozícii z histórie požiadaviek a minútového rozboru panela.
Získajte aktuálny zostatok
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"}}
Tento koncový bod použite po account.balance_low spätné volania na zosúladenie aktuálnej peňaženky účtu bez vyžadovania poverenia Model API.
Zoznam udalostí auditu partnera
curl "https://p-api.model-gate.com/api/v1/partner/audit-events?limit=100" \
-H "Authorization: Bearer mg_partner_..."
Udalosti auditu zaznamenávajú úspešné mutácie správy partnerov s ID požiadavky, akciou, cieľom, zdrojovou IP, stavom, bezpečnými metadátami a časovou pečiatkou UTC. Tajomstvá, tokeny nosičov, otvorený text kľúčov API, kľúče idempotencie, odtlačky žiadostí a telá prehratia nie sú uložené v metaúdajoch auditu. Použite cursor pre nasledujúce strany a voliteľné action filtrovanie.
Vytvorte skupinu
Žiadosť
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"
}'
Odpoveď - 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"
}
}
Zoznam skupín
Žiadosť
curl https://p-api.model-gate.com/api/v1/partner/groups \
-H "Authorization: Bearer mg_partner_..."
odpoveď
{"data":[{"public_id":"GROUP_PUBLIC_ID","name":"Telegram bot A","status":"active","usage":"0.0000000000"}]}
Získajte alebo aktualizujte skupinu
Získajte žiadosť
curl https://p-api.model-gate.com/api/v1/partner/groups/GROUP_PUBLIC_ID \
-H "Authorization: Bearer mg_partner_..."
Získajte odpoveď
{"data":{"public_id":"GROUP_PUBLIC_ID","name":"Telegram bot A","spend_limit":"1000.0000000000","usage":"12.0000000000"}}
Žiadosť o aktualizáciu
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"}'
Aktualizovať odpoveď
{"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"}}
Odstrániť skupinu
Neprázdna skupina sa neodstráni. Najprv presuňte alebo odstráňte všetky členské kľúče API; inak API vráti HTTP 409 s group_not_empty.
Žiadosť
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" \
odpoveď
{"data":{"deleted":true}}
Kľúče sa oddeľujú podľa správania cudzieho kľúča databázy. Pred odstránením overte členstvo.
Resetovať používanie skupiny
Žiadosť
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" \
odpoveď
{"data":{"public_id":"GROUP_PUBLIC_ID","usage":"0.0000000000","total_spent":"8.5000000000"}}
Zoznam členov skupiny
Žiadosť
curl https://p-api.model-gate.com/api/v1/partner/groups/GROUP_PUBLIC_ID/members \
-H "Authorization: Bearer mg_partner_..."
odpoveď
{"data":[{"public_id":"KEY_PUBLIC_ID","name":"Telegram user 123","status":"active","usage":"3.2500000000","total_spent":"1.1400000000"}]}
Pridajte kľúč do skupiny
Žiadosť
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"}'
odpoveď
Odpoveďou je aktualizovaný zoznam členov skupiny:
{"data":[{"public_id":"KEY_PUBLIC_ID","name":"Telegram user 123","status":"active"}]}
Odstráňte kľúč zo skupiny
Žiadosť
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" \
odpoveď
{"data":{"removed":true}}
Získajte skupinové využitie
Žiadosť
curl https://p-api.model-gate.com/api/v1/partner/groups/GROUP_PUBLIC_ID/usage \
-H "Authorization: Bearer mg_partner_..."
odpoveď
{"data":{"group_id":"GROUP_PUBLIC_ID","usage":"12.0000000000","total_spent":"8.5000000000","usage_reset_at":"2026-08-01T00:00:00Z"}}
Získajte štatistiky skupiny
from a to akceptovať iba časové pečiatky UTC RFC3339 končiace na Z (povolené sú zlomky sekúnd až 6 číslic). Štatistiky sa počítajú iba zo súhrnov dokončených požiadaviek, ktorých kľúčom je finished_at; aktuálne otvorená minúta je zámerne vylúčená, takže výsledky môžu zaostávať až o minútovú kadenciu agregácie.
average_duration_ms je priemerné úplné trvanie požiadavky Model Gate (duration_ms) cez dokončené žiadosti vo vybranom období. Nie je to latencia prvého tokenu E2E, latencia prvého tokenu upstream ani réžia brány. Partner API odhaľuje iba tento explicitný názov metriky.
Žiadosť
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_..."
odpoveď
{
"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"
}
}
Získajte asynchrónny výsledok
Žiadosť
curl https://p-api.model-gate.com/api/v1/requests/01KZ... \
-H "Authorization: Bearer mg_partner_..."
Spracúva sa odpoveď
{
"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"
}
}
Dokončená odpoveď
{
"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"
}
}
Bežné chyby
Neplatný kľúč Partner API – 401
{"error":{"type":"invalid_token","message":"Invalid Partner API key"}}
Zdroj sa nenašiel – 404
{"error":{"type":"not_found","message":"API key not found"}}
Neplatná požiadavka – 422
{"error":{"type":"invalid_request","message":"limit must be an integer from 1 to 100"}}
Mutujúce telá JSON Partner API sú obmedzené na 1 MiB.
Konflikt idempotencie — 409
To isté Idempotency-Key bol opätovne použitý pre inú požiadavku. Vygenerujte nový kľúč pre novú logickú operáciu.
Limit sadzby – 429
Odpoveď obsahuje error.code = partner_rate_limit_exceeded a Retry-After. Skúste to znova až po uvedenom oneskorení.
Metóda nie je povolená — 405
Partnerský hostiteľ vráti chybu JSON plus HTTP Allow hlavička; nikdy sa nevráti na chybovú stránku HTML.
Hlavné pravidlá obchodného poverenia
Pre token firmy Partner API je akceptovaný iba overený vlastník organizácie. Kľúče vytvorené prostredníctvom Partner API používajú tohto vlastníka ako vlastníka fakturácie aj ako príkazcu poverení. Priradenie zamestnanca-riaditeľa sa vykonáva vo webovom paneli. group_id, ak je dodaný, musí identifikovať aktívnu skupinu vlastnenú obchodným účtom; neplatné hodnoty vrátia HTTP 422 a nikdy sa nevrátite k nezoskupenému kľúču. Odpovede z histórie žiadostí môžu zahŕňať principal_user_id identifikovať splnomocnenca nezávisle od vlastníctva fakturácie.