Skip to content

Receipts

Read the exact usage, rates, cost, and serving revision for an inference request.

GET /v1/receipts/{request_id}

Authorization

Authorizationheader · string
Bearer $BOARDWALK_API_KEY. Requires requests:read or inference:write.

Request

import json from urllib.request import Request, urlopen request = Request( "https://api.boardwalk.cloud/v1/receipts/req_example", headers={"Authorization": "Bearer your-api-key"}, ) with urlopen(request, timeout=240) as response: print(json.load(response))

Path parameters

request_idpath · stringrequired
Value from the inference response’s x-request-id header.

Response

Example response. IDs, token counts, and rates are illustrative.

200 · application/json
{
  "request_id": "req_example",
  "model": "Qwen/Qwen3-8B",
  "hf_revision": "0123456789abcdef0123456789abcdef01234567",
  "config_revision": "cfg_example",
  "engine_version": "example",
  "verification": null,
  "endpoint": "/v1/chat/completions",
  "usage": {
    "input_tokens": 100,
    "output_tokens": 20,
    "cache_read_tokens": 0,
    "cache_write_tokens": 0
  },
  "prices": {
    "input_micros_per_mtok": "100000",
    "output_micros_per_mtok": "300000",
    "cache_read_micros_per_mtok": "50000",
    "cache_write_micros_per_mtok": "0"
  },
  "cost_micros": "16",
  "ttft_ms": 120,
  "latency_ms": 450,
  "finish_reason": "stop",
  "status_code": 200,
  "streamed": false,
  "created_at": "2026-09-16T00:00:00.000Z"
}
request_idstring
Identifier from the x-request-id response header.
modelstring
Requested model.
hf_revisionstring
Served weight commit.
config_revisionstring
Serving configuration revision, when available.
base_hf_revisionstring
Base model commit, when the request ran on an adapter.
adapter_hf_revisionstring
Adapter commit, when applicable.
adapter_content_hashstring
Adapter content identity, when applicable.
engine_versionstring
Engine version that served the request.
verificationobject | null
Qualification evidence for this serving configuration.
Child fields
checksobject[]
Qualification checks recorded for this configuration.
Child fields
namestring
Check name.
passedboolean
Whether the check passed.
detailstring
Additional check details. Omitted when unavailable.
outputFingerprintsobject[]
Hashes of fixed qualification completions. Omitted when unavailable.
Child fields
promptstring
Qualification prompt identifier.
sha256string
SHA-256 hash of the completion.
fingerprintCardstring | null
GPU model used for output fingerprints, when known. Omitted when unavailable.
endpointstring
Inference endpoint called.
usageobject
Billable token categories.
Child fields
input_tokensinteger
Uncached input tokens.
output_tokensinteger
Output tokens, including reasoning.
cache_read_tokensinteger | null
Cache reads; null means not reported.
cache_write_tokensinteger | null
Cache writes; null means not reported.
pricesobject
Rates applied to this request.
Child fields
input_micros_per_mtokstring
Uncached input rate. Integer micro-dollars per million tokens.
output_micros_per_mtokstring
Output rate. Integer micro-dollars per million tokens.
cache_read_micros_per_mtokstring
Cache-read rate. Integer micro-dollars per million tokens.
cache_write_micros_per_mtokstring
Cache-write rate. Integer micro-dollars per million tokens.
notestring
Explanation of unavailable cache metering, when applicable.
cost_microsstring
Total cost in integer micro-dollars. Divide by 1,000,000 for USD.
ttft_msnumber | null
Time to first token in milliseconds, when measured.
latency_msnumber
Total request latency in milliseconds.
finish_reasonstring | null
Engine finish reason, when available.
status_codeinteger
HTTP outcome recorded for the request.
streamedboolean
Whether streaming was requested.
gpuobject
Your deployments only: the card time that paid for the request. One interval pays for every request that ran in it.
Child fields
grant_idstring
The visit that held the cards.
interval_seqinteger
The interval within that visit.
wait_msinteger | null
Time the request waited for a card. Never billed.
floorboolean
True when every settled billing segment is reserved. False can mean mixed coverage or an unsettled interval; inspect billing_segments.
cardsinteger
Cards the replica holds.
rate_micros_per_gpu_hourstring
Rate per card-hour, fixed when the cards were granted. Integer micro-dollars.
intervalobject | null
The billed interval. Null until the host reports it.
Child fields
opened_atstring
ISO 8601 start.
closed_atstring | null
ISO 8601 end. Null while open.
cold_start_msinteger | null
The swap: installing your copy on the cards.
serving_msinteger | null
Time serving requests.
hold_msinteger | null
Idle time held after the last request.
billed_msinteger | null
Total billed time.
billing_segmentsobject[] | null
Settled per-card coverage. Each segment has startAt and endAt (epoch milliseconds), cards (indices), floorPlacementId (null for on-demand time), rateRevisionId, rateMicrosPerGpuHour, and costMicros. Money fields are decimal strings. Segment costs sum to the interval cost; null means unsettled.
cost_microsstring | null
Cost of the interval in integer micro-dollars.
created_atstring
Request timestamp in ISO 8601 format.

Availability

A receipt is written after a request reaches a card, including failures and disconnects. Requests refused before reaching a card have no receipt. A lookup can briefly return 404 before the record is available.

The example is a catalog model at illustrative rates. A receipt for a model you deploy records its token counts at zero rates and adds a gpu block: the card time that paid for it (see GPU time).

Hugging Face billing

Provider integrations can read settled costs with POST /v1/huggingface/billing. Requires requests:read or inference:write. Send requestIds: 1–10,000 nonempty strings, each at most 40 characters.

import json from urllib.request import Request, urlopen request = Request( "https://api.boardwalk.cloud/v1/huggingface/billing", data=json.dumps({ "requestIds": [ "req_example" ] }).encode("utf-8"), headers={"Authorization": "Bearer your-api-key", "Content-Type": "application/json"}, ) with urlopen(request, timeout=240) as response: print(json.load(response))

Returns {"requests":[{"requestId":"req_example","costNanoUsd":16000}]}. Costs here are integer nano-dollars (10⁻⁹ USD), unlike receipt micro-dollar strings. Duplicate IDs are collapsed; unknown, unsettled, or inaccessible requests are omitted.

Errors

Errors use the shared error format. Save the x-request-id response header for receipts and support.