Download an attachment's bytes
Returns the raw bytes of an attachment that belongs to a message on a thread the caller owns. The Content-Type is the MIME type the client uploaded. The endpoint 404s when the thread, message, or attachment is not found for the caller, so the id cannot be used to fetch another user's file.
Returns the raw bytes of an attachment that belongs to a message on a thread the caller owns. The Content-Type is the MIME type the client uploaded. The endpoint 404s when the thread, message, or attachment is not found for the caller, so the id cannot be used to fetch another user's file.
Authorization
bearerAuth A bearer token. The Account routes accept a Privy access token; the MCP transport accepts an sk- API key issued by POST /account/api-keys.
In: header
Path Parameters
The thread id.
The message id.
The attachment id.
Response Body
application/json
application/json
application/json
curl -X GET "https://example.com/inference/threads/string/messages/string/attachments/string""string"Delete a thread DELETE
Removes the thread and every message and attachment in it. The operation is idempotent: a missing thread returns 404, a thread owned by a different user also returns 404 so the endpoint cannot be used to probe other users' ids.
Read the caller's credit balance, tier, and next reset GET
Returns the two balances the caller's credits live in — `allowance` (the tier's monthly grant, spent first, never rolled over) and `purchased` (bought with money, never expires) — along with the tier their 7-day time-weighted $PUTTY holding resolves to, the tier above it, and when the allowance next resets. While the $PUTTY contract address is the zero address every caller is on `free`, whatever their snapshots say: there is no token to hold, so there is nothing to gate a tier on. `subsidyScalePercent` is below 100 when the global holder-subsidy cap is binding, which is why a holder's grant can be smaller than their tier's nominal allowance.