B2BB2B LLM

Claude Message Batches

Gebruik Anthropic-compatibele berichtenbatches terwijl Model Gate elk item via de duurzame interne wachtrij uitvoert.

Claude Message Batches

Bestaande batchlees-/controlebewerkingen blijven beschikbaar met een nulsaldo voor een anderszins geldige actieve referentie, maar POST /v1/messages/batches vereist nieuwe opname van positief saldo/uitgaven voordat taak-/itemrijen worden opgeslagen. Een sleutel met nulbalans kan daarom geen nieuwe Claude-batch maken of MariaDB-retentieopslag gebruiken. Werkelijke items controleren de toegang opnieuw wanneer werknemers ze claimen en wachten in de duurzame wachtrij als het geld later op is. De invoer wordt stapsgewijs per item gedecodeerd in plaats van te worden geladen als een compleet JSON-document van 256 MB in het geheugen, en quota's per gebruiker voor actieve taken/items in de wachtrij beperken opslagmisbruik, onafhankelijk van facturering.

Model Gate implementeert een Anthropic-compatibele Message Batches API https://api.model-gate.com. Het is een compatibiliteitslaag: Model Gate slaat de batch duurzaam op en voert elk item uit via de normale Model Gate /v1/messages pad. Dat doet het niet dien stroomopwaarts een provider-native Anthropic-batch in.

Gebruik een normale Model API-sleutel (mg_live_...). Elk item wordt als een individueel verzoek verwerkt request_mode=batch, batch_protocol=claude, de batch-ID en de bijbehorende custom_id.

Streaming wordt niet ondersteund binnen een batch. Modelaliassen worden opgelost voordat het item in de wachtrij wordt geplaatst.

Maak een berichtenbatch

Verzoek

curl https://api.model-gate.com/v1/messages/batches \
  -H "x-api-key: mg_live_..." \
  -H "anthropic-version: 2023-06-01" \
  -H "content-type: application/json" \
  -d '{
    "requests": [
      {
        "custom_id": "summary-1",
        "params": {
          "model": "ch-47",
          "max_tokens": 256,
          "messages": [{"role":"user","content":"Summarize this text."}]
        }
      }
    ]
  }'

Reactie — 200

{
  "id": "msgbatch_01K...",
  "type": "message_batch",
  "processing_status": "in_progress",
  "request_counts": {
    "processing": 1,
    "succeeded": 0,
    "errored": 0,
    "canceled": 0,
    "expired": 0
  },
  "ended_at": null,
  "created_at": "2026-08-13T08:30:00Z",
  "expires_at": "2026-08-14T08:30:00Z",
  "cancel_initiated_at": null,
  "results_url": null
}

Een batch ophalen

Verzoek

curl https://api.model-gate.com/v1/messages/batches/msgbatch_01K... \
  -H "x-api-key: mg_live_..."

Reactie - beëindigd

{
  "id": "msgbatch_01K...",
  "type": "message_batch",
  "processing_status": "ended",
  "request_counts": {
    "processing": 0,
    "succeeded": 1,
    "errored": 0,
    "canceled": 0,
    "expired": 0
  },
  "ended_at": "2026-08-13T08:30:04Z",
  "results_url": "https://api.model-gate.com/v1/messages/batches/msgbatch_01K.../results"
}

Resultaten lezen

Resultaten worden geretourneerd als JSON-regels. Ga er niet van uit dat de applicatielogica afhangt van de oorspronkelijke invoervolgorde; wedstrijdresultaten door custom_id.

Verzoek

curl https://api.model-gate.com/v1/messages/batches/msgbatch_01K.../results \
  -H "x-api-key: mg_live_..."

Reactie — 200

{"custom_id":"summary-1","result":{"type":"succeeded","message":{"id":"msg_...","type":"message","role":"assistant","content":[{"type":"text","text":"..."}]}}}

Maak een lijst van batches

limit standaard ingesteld op 20 en moet afkomstig zijn 1 naar 100. Gebruik after_id of before_id voor cursorpaginering; stuur niet beide in één verzoek.

Verzoek

curl "https://api.model-gate.com/v1/messages/batches?limit=20&after_id=msgbatch_01K..." \
  -H "x-api-key: mg_live_..."

Reactie — 200

{
  "data": [],
  "has_more": false,
  "first_id": null,
  "last_id": null
}

Een batch annuleren

Annuleren voorkomt dat items in de wachtrij worden geclaimd. Een item dat al is verwerkt, kan worden voltooid.

Verzoek

curl -X POST https://api.model-gate.com/v1/messages/batches/msgbatch_01K.../cancel \
  -H "x-api-key: mg_live_..."

Reactie — 200

{
  "id": "msgbatch_01K...",
  "type": "message_batch",
  "processing_status": "canceling",
  "request_counts": {
    "processing": 1,
    "succeeded": 0,
    "errored": 0,
    "canceled": 0,
    "expired": 0
  }
}

Verwijder een beëindigde batch

Verwijderen wordt alleen geaccepteerd nadat de batch een eindstatus heeft bereikt.

Verzoek

curl -X DELETE https://api.model-gate.com/v1/messages/batches/msgbatch_01K... \
  -H "x-api-key: mg_live_..."

Reactie — 200

{
  "id": "msgbatch_01K...",
  "type": "message_batch_deleted"
}

Herstel semantiek

Batchitems gebruiken dezelfde duurzame wachtrij als systeemeigen asynchrone verzoeken. Herstel wel minstens één keer, niet precies één keer: na een crash van een werknemer kan een verlaten huurovereenkomst worden teruggevorderd en kan een item opnieuw stroomopwaarts worden verzonden als de eerste stroomopwaartse reactie niet duurzaam is opgeslagen. De Model Gate-aanvraag-ID blijft stabiel bij alle nieuwe pogingen en afwikkelingswachters voorkomen dat een tweede rekeningafschrijving plaatsvindt voor een reeds voltooid verzoek.

Elk item wordt onmiddellijk toegelaten voordat een werknemer het claimt. Anders geldige items blijven in de wachtrij staan ​​terwijl het huidige rekeningsaldo niet-positief is of de opnieuw instelbare bestedingslimiet voor de sleutel/groep al is bereikt; wachten op geld kost geen poging en markeert het item niet als mislukt. Bij een latere opwaardering, gebruiksreset of limietverhoging worden de in aanmerking komende items in de wachtrij automatisch hervat. Model Gate houdt geen rekening met batchkosten in het slechtste geval, dus gelijktijdig toegelaten artikelen kunnen eindigen met een negatief eindsaldo of een kleine overschrijding van de bestedingslimiet; alleen daaropvolgende nieuwe items worden vastgehouden.

Prijzen en boekhouding

Elk batchitem gebruikt dezelfde modelrouting, tokenaccounting, prijsmomentopname, gebruikswaardering, API-sleutel-/groepslimieten en verrekeningslogica als een normaal Model Gate-verzoek. Een beheerder kan een Prijscoëfficiënt voor batchverzoek op de accountprijssjabloon. De standaardwaarde is 1.

Bijvoorbeeld met normale Model Gate-kosten 0.02 en batchcoëfficiënt 0.5, het werkelijke rekeningafschrijving is 0.01. Het opgeslagen referentiebedrag van de officiële leverancier wordt niet vermenigvuldigd met deze Model Gate-batchcoëfficiënt. Native verzoeken met behulp van "async": true worden ook niet beïnvloed.

Als de coëfficiënt afwijkt van 1, het wordt weergegeven op de pagina Modelprijzen en in /v1/models als batch_pricing plus de effectieve batch_cost tarieven.

Fouten

Ongeldig of duplicaat custom_id, een onbekend model, stream:true, genest async:true, een te groot verzoek of een ongeldige hoofdtekst retourneert een normale foutreactie in antropische stijl.

{
  "type": "error",
  "error": {
    "type": "invalid_request_error",
    "message": "summary-1: stream=true is not supported inside a batch"
  }
}