Yapper API

Yapper API

Team-scoped API for Yapper generation, assets, credits, and MCP clients.

The Yapper Public API lets you drive Yapper's media generation from your own code. API keys are scoped to a team and spend that team's workspace credits — the same balance the team uses inside the Yapper app.

Get your API key: Open Account → API, create a key, and save the secret immediately. The full secret is only shown once.

Status: live.

What's live today

EndpointPurpose
POST /api/v1/processesStart a media generation process
GET /api/v1/processesList team processes
GET /api/v1/processes/{processId}Poll a process
GET /api/v1/assetsList normalized team assets
GET /api/v1/assets/{assetId}Fetch one asset
POST /api/v1/assets/importImport an external image, video, or audio URL
POST /api/v1/assets/uploadsCreate a signed upload for a local file
GET /api/v1/modelsList public-safe model metadata
GET /api/v1/creditsRead shared team credits
GET /api/v1/usageRead team and acting-member usage state
GET /api/v1/usage/breakdownCredit spend by model and source over time
GET /api/v1/usage/cycleThis billing cycle's credits and the next refill
GET /api/v1/usage/agentIncluded agent allowance and usage by agent model
GET /api/v1/usage/ledgerIndividual credit charges and refunds
GET /api/v1/usage/sessionsSessions with their all-time spend
GET /api/v1/usage/membersEvery member's spend (owner or admin keys)
GET /api/v1/usage/storageStored bytes and asset counts by type
GET /api/v1/meThe connected team and your role in it
GET /api/v1/membersTeam members with their roles

Usage breakdowns

GET /api/v1/usage/breakdown returns the same figures as the Credit Spend card on the account usage page, net of refunds.

  • range: week, month (default), or quarter return one bucket per UTC day. year returns the last 12 months and all returns every month since the first with spend.
  • memberIds: comma-separated user ids, up to 30. Omit it for the whole workspace. Your own id is always allowed. Other members need an owner or admin key.
  • source: one of the sources below. The figures cover only that source, split by model when modelsAvailable is true.
  • sessionId: one session's spend. Any key may read it. It cannot be combined with memberIds.

Each response carries totals (net credits, creditsSpent, creditsRefunded, runs, refunds), one entry per bucket with byModel and bySource, and ranked models and sources. Sources are web, ios, agent, agent-chat, api, and mcp.

GET /api/v1/usage/storage returns live bytes and assetCount, byType (image, video, audio, file, document), and trashed items that have not been purged yet. Pass memberId for the assets one member created, under the same owner or admin rule.

Both return usage_breakdown_unavailable (409) until the workspace's usage history has been indexed.

The rest of the usage page

Every card on the account usage page has an endpoint under the usage:read scope.

EndpointCardReturns
GET /api/v1/usage/cycleWorkspace CreditsThe billing period, credits spent in it, share remaining, and the next refill
GET /api/v1/usage/agentAgent UsageIncluded allowance, pay-as-you-go overflow, and usage by agent model
GET /api/v1/usage/ledgerCredit LogIndividual charges and refunds, newest first
GET /api/v1/usage/sessionsSessionsSessions with their all-time spend, runs, and top model
GET /api/v1/usage/membersMember SpendingEvery member's spend in a range, with their monthly cap

GET /api/v1/usage/ledger takes range (default month) or createdAfter/createdBefore, plus memberIds, sessionId, and source (api or mcp). GET /api/v1/usage/sessions takes sort (spend, runs, or newest) and memberId. Both page with limit and cursor like the other list endpoints.

Figures that name who spent are for team owners and admins: /usage/members, other members' /usage/ledger entries, and contributors on /usage/sessions. Any other key reads its own by passing actor.userId from GET /api/v1/me as memberIds or memberId. Session totals are open to every key.

/usage/sessions and /usage/members return usage_breakdown_unavailable (409) until the workspace's usage history has been indexed.

MCP

Hosted connectorhttps://yapper.so/mcp/connector

Base URL and auth

GET https://yapper.so/api/v1/credits
Authorization: Bearer yap_live_...

API keys are created in Account → API.

Machine-readable docs

Error shape

Every error uses the same envelope:

{
  "error": {
    "code": "insufficient_credits",
    "message": "This team does not have enough credits to start the process.",
    "requestId": "req_..."
  }
}

On this page