Individual credit charges and refunds, newest first. Matches the credit log on the account usage page. The window is range (default month, the same UTC buckets as GET /usage/breakdown) or createdAfter/createdBefore; combining the two returns unsupported_filter_combination. Entries name the member who spent, so listing other members' entries requires the key's member to be a team owner or admin; anyone else passes their own user id (actor.userId from GET /me) as memberIds. source narrows to API-key (api) or hosted-connector (mcp) spend; because the source is derived per entry, a page can then hold fewer than limit entries while nextCursor is still set. For totals over the same filters use GET /usage/breakdown.
Authorization
bearerAuth usage:readIn: header
Scope: usage:read
Query Parameters
"month"Value in
- "week"
- "month"
- "quarter"
- "year"
- "all"
date-timedate-timeComma-separated user ids (up to 30).
Only items in this session.
Value in
- "api"
- "mcp"
1 <= value <= 10020Opaque pagination cursor — pass the nextCursor from the previous page verbatim. nextCursor is null on the last page.
Response Body
application/json
application/json
application/json
application/json
application/json
curl -X GET "https://example.com/usage/ledger"{ "data": [ { "id": "string", "createdAt": "2019-08-24T14:15:22Z", "type": "charge", "credits": 0, "adjustment": true, "userId": "string", "model": { "id": "string", "label": "string" }, "processType": "string", "processId": "string", "sessionId": "string", "source": "web", "description": "string" } ], "nextCursor": "string"}{ "error": { "code": "string", "message": "string", "requestId": "string" }}{ "error": { "code": "string", "message": "string", "requestId": "string" }}{ "error": { "code": "string", "message": "string", "requestId": "string" }}{ "error": { "code": "string", "message": "string", "requestId": "string" }}List team members GET
Everyone in the team with their name, email, role, and join date, owners first, then admins, then members. Open to every member's key, like the team page in the app. The userId values are the memberIds the usage endpoints take.
Place assets in a workspace folder POST
Files existing image, video, or audio assets into a folder, like dropping media on a folder in the web app. Target it with folderId or folderPath (a missing folderPath is created); omit both for the top level. An asset already in the tree moves; a new item takes the asset's name, made unique within the folder. Assets from elsewhere in the team are linked into the session without changing where they were created. Write text with POST /workspace/documents instead. The change shows up in the Yapper web app and is recorded with the API key or MCP client that made it; the in-app Yapper agent in that session is told about it on its next turn. Free. Uses the processes:write scope.