{"name":"After the Institutions Media Room – Agent API","description":"Structured content for AI agents (unified index: articles, episodes, streams, video, timeline). Use-case flows: auto-curation and booking, automated PR/booking, media coordination — see docsUrl for flow details. Health check: HEAD or GET on this index, or GET /api/agent/health. Content-index supports conditional GET (ETag/Last-Modified) for efficient polling. Rate-limit headers (X-RateLimit-Limit, X-RateLimit-Remaining, Retry-After) on rate-limited endpoints when enforced (PPB 55). When rate limiting is in effect, this index may optionally include rateLimitPerMinute and quotaRemaining so agents discover policy without trial and error (PPB 79). Canonical docs/status URLs are published in llms.txt and agents.md (subdomain-ready via env). MCP: tool descriptor at GET /api/mcp; GET /api/mcp/call returns 405 Method Not Allowed (use POST for tool execution).","discoveryLinks":{"agentCard":"https://api.paranor.app/.well-known/agent-card.json","mcp":"https://api.paranor.app/api/mcp","llmsTxtUrl":"https://api.paranor.app/llms.txt","agentsMdUrl":"https://api.paranor.app/agents.md","nexus":"https://api.paranor.app/api/nexus/creators","nexusPage":"https://api.paranor.app/nexus"},"mcpToolsSummary":["get_profile","get_content_index","get_booking","get_media_kit","get_speaking","get_articles","get_article","get_timeline_entries","get_episodes","get_stream_videos","generate_guest_kit"],"docsUrl":"https://docs.paranor.app","statusUrl":"https://status.paranor.app","fallbackDocsUrl":"https://api.paranor.app/docs","fallbackStatusUrl":"https://api.paranor.app/status","openApiUrl":"https://api.paranor.app/api/agent/openapi.json","mediaKitPdfUrl":"https://api.paranor.app/api/agent/media-kit?format=pdf","speakingPdfUrl":"https://api.paranor.app/api/agent/speaking?format=pdf","endpoints":{"profile":"https://api.paranor.app/api/agent/profile","contentIndex":"https://api.paranor.app/api/agent/content-index","contentIndexBundle":"https://api.paranor.app/api/agent/content-index/bundle","booking":"https://api.paranor.app/api/agent/booking","showPrep":"https://api.paranor.app/api/agent/show-prep","transcribe":"https://api.paranor.app/api/agent/transcribe","webhookSubscribe":"https://api.paranor.app/api/agent/webhook-subscribe","bookingRequest":"https://api.paranor.app/api/agent/booking-request","mediaKit":"https://api.paranor.app/api/agent/media-kit","speaking":"https://api.paranor.app/api/agent/speaking","articles":{"list":"https://api.paranor.app/api/agent/articles","one":"https://api.paranor.app/api/agent/articles/{id}"},"timelineEntries":"https://api.paranor.app/api/agent/timeline-entries","episodes":"https://api.paranor.app/api/agent/episodes","streamVideos":"https://api.paranor.app/api/agent/stream-videos","markdown":"https://api.paranor.app/api/article/{id}/markdown","guestKit":"https://api.paranor.app/api/guest-kit","widget":"https://api.paranor.app/api/agent/widget","registerAgentTier":"https://api.paranor.app/api/agent/register-agent-tier","workOffer":"https://api.paranor.app/api/agent/work-offer","workSubmit":"https://api.paranor.app/api/agent/work-submit"},"docs":"https://api.paranor.app/agent","changelogUrl":"https://api.paranor.app/api/agent/changelog","version":"0.50.01","capabilities":["mcp.v1","webhooks.v1","digest.v1","sandbox.v1"],"discoveryBundleUrl":"https://api.paranor.app/api/agent/discovery-bundle","negotiateUrl":"https://api.paranor.app/api/agent/negotiate","landingPayloadUrl":"https://api.paranor.app/api/landing-payload","events":[{"id":"dot.approved","description":"Fired when a Dot is approved in the Contexter (moved to the Index)"},{"id":"content.published","description":"Fired when a Dot is approved; payload includes a generic item object ({ id, type, title, url, date }) for push-based content pipelines"},{"id":"guest_kit.generated","description":"Fired when a Guest Kit is successfully generated for a show"},{"id":"changelog.updated","description":"Fired when changelog version or entries change; payload includes version, changelogUrl, and optional latestEntry; delivered via cron after deploy"},{"id":"content_index.digest","description":"Fired when scheduled digest is delivered; payload includes digest, count, items (id, title, url, date), deliveredAt; subscribe with digestSchedule and digestWindow on webhook-subscribe"}],"rateLimitPerMinute":30,"quotaRemaining":100}