{"protocolVersion":"0.3.0","id":"og-records-catalog-agent","name":"OGRECORDS™ Catalog Agent","description":"Read-only access to an OGRECORDS™ account: releases and their distribution status, streaming figures, roster, smart links, wallet balance — plus the public product documentation and help centre. Music distribution to 38+ stores for self-publishing artists and small labels.","version":"1.0.0","documentationUrl":"https://www.og-records.com/auth.md","iconUrl":"https://www.og-records.com/icon.png","provider":{"organization":"OnlineBuilders LLC","url":"https://www.og-records.com"},"url":"https://www.og-records.com/api/agent/a2a","preferredTransport":"JSONRPC","supportedInterfaces":[{"protocol":"json-rpc","transport":"JSONRPC","url":"https://www.og-records.com/api/agent/a2a","preferredTransport":true,"version":"0.3.0"},{"protocol":"mcp","transport":"HTTP+JSON","url":"https://www.og-records.com/api/agent/mcp","preferredTransport":false,"version":"2025-06-18"}],"additionalInterfaces":[{"url":"https://www.og-records.com/api/agent/a2a","transport":"JSONRPC"},{"url":"https://www.og-records.com/api/agent/mcp","transport":"HTTP+JSON"}],"capabilities":{"streaming":false,"pushNotifications":false,"stateTransitionHistory":false,"extendedAgentCard":false},"defaultInputModes":["text/plain","application/json"],"defaultOutputModes":["application/json","text/plain"],"securitySchemes":{"ApiKeyAuth":{"type":"apiKey","in":"header","name":"X-API-Key","description":"An OGRECORDS API key (ogr_pk_…). Also accepted as \"Authorization: Bearer <key>\". Provisioning is a human step — see /auth.md. There is no OAuth authorization server."}},"security":[{"ApiKeyAuth":[]}],"skills":[{"id":"whoami","name":"Describe the calling key","description":"Scopes, tier and daily quota of the API key used for this call. Requires no scope — call it first and branch on the result instead of discovering scopes through 403s.","tags":["public"],"inputModes":["application/json"],"outputModes":["application/json"],"inputSchema":{"type":"object","properties":{},"required":[],"additionalProperties":false}},{"id":"list_pages","name":"List documentation pages","description":"Public pages available as Markdown: pricing, distribution, comparisons with other distributors, legal texts. Use before get_page.","tags":["public"],"inputModes":["application/json"],"outputModes":["application/json"],"inputSchema":{"type":"object","properties":{},"required":[],"additionalProperties":false}},{"id":"get_page","name":"Read a page as Markdown","description":"Full Markdown of a public page — the same text a human reads. Slugs come from list_pages; legal slugs (terms, privacy, imprint, dpa, cookie-policy) and blog paths (blog, blog/<slug>) also work.","tags":["public"],"inputModes":["application/json"],"outputModes":["application/json"],"inputSchema":{"type":"object","properties":{"slug":{"type":"string","description":"e.g. pricing, distribution, vs/igroove, terms"},"locale":{"type":"string","description":"en (default) or de"}},"required":["slug"],"additionalProperties":false}},{"id":"search_help","name":"Search the help centre","description":"Full-text search over the published help articles. Falls back to semantic search only when the lexical pass finds nothing.","tags":["public"],"inputModes":["application/json"],"outputModes":["application/json"],"inputSchema":{"type":"object","properties":{"query":{"type":"string"},"limit":{"type":"integer","description":"1–20, default 5"}},"required":["query"],"additionalProperties":false}},{"id":"get_help_article","name":"Read a help article","description":"Full Markdown body of one published help article, German and English.","tags":["public"],"inputModes":["application/json"],"outputModes":["application/json"],"inputSchema":{"type":"object","properties":{"slug":{"type":"string"}},"required":["slug"],"additionalProperties":false}},{"id":"resolve_smartlink","name":"Resolve a smart link","description":"Public payload behind an ogr.fm short link: release, cover, store links. Needs no ownership — this is what the public page renders.","tags":["public"],"inputModes":["application/json"],"outputModes":["application/json"],"inputSchema":{"type":"object","properties":{"slug":{"type":"string","description":"The part after ogr.fm/"}},"required":["slug"],"additionalProperties":false}},{"id":"list_releases","name":"List releases","description":"The key owner's releases, newest first.","tags":["account","read:releases"],"inputModes":["application/json"],"outputModes":["application/json"],"inputSchema":{"type":"object","properties":{"limit":{"type":"integer","description":"1–200, default 50"}},"required":[],"additionalProperties":false}},{"id":"get_release","name":"Get a release","description":"One release by id. Read `status` literally — submitted_to_lg means \"in review\", not \"published\".","tags":["account","read:releases"],"inputModes":["application/json"],"outputModes":["application/json"],"inputSchema":{"type":"object","properties":{"id":{"type":"string","format":"uuid"}},"required":["id"],"additionalProperties":false}},{"id":"list_tracks","name":"List tracks of a release","description":"Tracks belonging to one release, in running order.","tags":["account","read:releases"],"inputModes":["application/json"],"outputModes":["application/json"],"inputSchema":{"type":"object","properties":{"release_id":{"type":"string","format":"uuid"}},"required":["release_id"],"additionalProperties":false}},{"id":"get_release_stats","name":"Release streaming figures","description":"Streams, listeners, saves plus per-store and per-country breakdown. IMPORTANT: the feed does not cover every store — YouTube and TikTok contribute nothing, and the last 24–72 hours are under-reported. Present the number as a floor, never as a complete count.","tags":["account","read:stats"],"inputModes":["application/json"],"outputModes":["application/json"],"inputSchema":{"type":"object","properties":{"release_id":{"type":"string","format":"uuid"},"range":{"type":"string","description":"7d | 14d | 30d (default) | 90d | 1y | ytd"}},"required":["release_id"],"additionalProperties":false}},{"id":"list_artists","name":"List roster artists","description":"Artists in the key owner's roster. Legal names and other PII are not exposed.","tags":["account","read:artists"],"inputModes":["application/json"],"outputModes":["application/json"],"inputSchema":{"type":"object","properties":{"limit":{"type":"integer","description":"1–200, default 100"}},"required":[],"additionalProperties":false}},{"id":"list_smartlinks","name":"List smart links","description":"The key owner's smart links.","tags":["account","read:smartlinks"],"inputModes":["application/json"],"outputModes":["application/json"],"inputSchema":{"type":"object","properties":{"limit":{"type":"integer","description":"1–200, default 50"}},"required":[],"additionalProperties":false}},{"id":"get_earnings_balance","name":"Wallet balance","description":"Current balance snapshot. Amounts are USD.","tags":["account","read:earnings"],"inputModes":["application/json"],"outputModes":["application/json"],"inputSchema":{"type":"object","properties":{},"required":[],"additionalProperties":false}},{"id":"list_payouts","name":"Payout history","description":"Past payouts. Amounts are USD; bank details are never included.","tags":["account","read:earnings"],"inputModes":["application/json"],"outputModes":["application/json"],"inputSchema":{"type":"object","properties":{"limit":{"type":"integer","description":"1–200, default 50"}},"required":[],"additionalProperties":false}}]}