Skip to content
Indiana
Dashboard
Docs
Browse docs / Submit usage batch

Submit usage batch

POST/api/v1/usage/batch

Submit up to 1,000 durable usage items. HTTP 202 means queued only. Persist the entire batch and original requestId; retry unchanged after a lost response, while changed content conflicts. readUsageBatch reports each accepted/rejected/failed result and receipt. A batch is not an atomic transaction across items.

SDK 0.0.1Updated

Make the request

Submit up to 1,000 durable usage items. HTTP 202 means queued only. Persist the entire batch and original requestId; retry unchanged after a lost response, while changed content conflicts. readUsageBatch reports each accepted/rejected/failed result and receipt. A batch is not an atomic transaction across items.

Credential
Server API key only. Call from your trusted backend.
Permission
credits:consume
Set the base URL and App ID from SDK setup. These examples use placeholders and do not execute requests. Never put a server key in browser code.
request.shShell
curl -X POST "$GROOVE_BASE_URL/api/v1/usage/batch" \  -H "Authorization: Bearer $GROOVE_SECRET_KEY" \  -H "X-Groove-Project: $GROOVE_PROJECT_ID" \  -H "X-Groove-Environment: sandbox" \  -H "Content-Type: application/json" \  -d '{  "requestId": "00000000-0000-4000-8000-000000000001",  "items": [    {      "customerId": "00000000-0000-4000-8000-000000000001",      "command": {        "operation": "consume",        "entitlementId": "00000000-0000-4000-8000-000000000001",        "quantity": "1",        "properties": {},        "idempotencyKey": "job:job_123:consume"      }    }  ]}'

The response tab lists field types, not an example payload. Actual values depend on customer state.

Request parameters

JSON body

requestIduuidRequired

Business request UUID. Reuse for retries of one operation; generate a new value for a new operation.

itemsarrayRequired

The items value for this operation. Its accepted type and constraints are listed above and below.

minItems: 1 · maxItems: 1000

Show child fields
customerIduuidRequired

Indiana customer ID mapped from a verified identity on the server. Omit for customer-token calls, which use the token-bound customer.

commandobjectRequired

The command value for this operation. Its accepted type and constraints are listed above and below.

Show child fields
operation"consume"Required

The operation value for this operation. Its accepted type and constraints are listed above and below.

overageBehaviorenumOptional

cap accepts the largest permitted quantity, possibly zero. overflow requests the full quantity subject to overage permission, usage caps and cash budgets. Omission keeps all-or-nothing behavior.

Show allowed values

"cap""overflow"

occurredAtdate-timeOptional

The occurredAt value for this operation. Its accepted type and constraints are listed above and below.

entitlementIduuidRequired

The entitlementId value for this operation. Its accepted type and constraints are listed above and below.

entityIduuidOptional

Entity ID within the current customer scope, for configured entity and license features.

quantitystringRequired

Use the declared field type for business quantity. Credit operations use decimal strings to avoid floating-point error. quote/reserve/confirm/refund require positive quantities; consume can record zero-cost events.

pattern: ^(0|[1-9]\d{0,11})(\.\d{1,6})?$

propertiesobjectRequired

Validated pricing properties used to match dimensions and multipliers.

idempotencyKeystringRequired

Stable business idempotency key. The same key and payload replay the result; do not randomize on retries.

minLength: 1 · maxLength: 120

Response fields

Successful responses include requestId and scope. Use the actual business status or accepted field to determine the result. Optional fields are omitted when unavailable.

HTTP 202 · application/json

requestIduuidRequired

Server-generated HTTP request UUID. Include it when reporting a failed request.

scopeobjectRequired

The App and environment of this response. Headers only verify scope; they cannot switch key scope.

Show child fields
projectIdstringRequired

App ID bound to the credential.

minLength: 1

environmentenumRequired

Separate data scope: sandbox or live.

Show allowed values

"sandbox""live"

batchIduuidRequired

The batchId value for this operation. Its accepted type and constraints are listed above and below.

Handle errors

Common failures
CodeRecovery
UNAUTHENTICATEDVerify the key or refresh the expired customer token once.
FORBIDDENCheck current key permissions and customer access.
INVALID_REQUESTCheck field types, UUIDs, decimal strings and mutually exclusive fields.
SCOPE_MISMATCHUse the App and environment bound to the credential.

Common failures

  • UNAUTHENTICATED

    Recovery
    Verify the key or refresh the expired customer token once.
  • FORBIDDEN

    Recovery
    Check current key permissions and customer access.
  • INVALID_REQUEST

    Recovery
    Check field types, UUIDs, decimal strings and mutually exclusive fields.
  • SCOPE_MISMATCH

    Recovery
    Use the App and environment bound to the credential.

Related:All request and error conventions·Back to endpoint index