Skip to content

API reference

Base URL: https://api.mynahcast.xyz. Authenticate with Authorization: Bearer myn_live_…. The machine-readable spec is the source of truth: https://api.mynahcast.xyz/v1/openapi.json (OpenAPI 3.1), with request and response schemas for every operation.

Each operation is also an MCP tool with the same input. Writes accept an Idempotency-Key header, and the ones marked dry_run accept ?dry_run=true.

  • POST/v1/posts/validate
    Validate a post against every target channel without saving itmynahcast_validate_post · posts:read
  • POST/v1/posts
    Create a post for one brand, fanned out to one or more channelsmynahcast_create_post · posts:write · dry_run
  • GET/v1/posts/{postId}
    Get one post with its per-channel delivery statemynahcast_get_post · posts:read
  • GET/v1/posts
    List posts (cursor pagination), filtered by brand, status, channel and time rangemynahcast_list_posts · posts:read
  • PATCH/v1/posts/{postId}
    Edit a post's content, channels or schedule (before it publishes)mynahcast_update_post · posts:write · dry_run
  • POST/v1/posts/{postId}/reschedule
    Move a post to a new time, or unschedule it (schedule: null)mynahcast_reschedule_post · posts:write · dry_run
  • DELETE/v1/posts/{postId}
    Delete a post and cancel every delivery that has not gone outmynahcast_delete_post · posts:write · dry_run
  • GET/v1/posts/{postId}/timeline
    Every delivery attempt for a post, with platform response codesmynahcast_get_post_timeline · posts:read
  • POST/v1/posts/{postId}/approval
    Submit a post for approval (binds to its exact current content)mynahcast_submit_for_approval · posts:write · dry_run
  • POST/v1/approvals/{approvalId}/decision
    Approve, request changes on, or reject a post (humans only)mynahcast_decide_approval · approvals:decide
  • GET/v1/channels
    List connected channels and their healthmynahcast_list_channels · channels:read
  • GET/v1/channels/{channelId}/capabilities
    Limits, media rules and the settings schema of one channelmynahcast_get_channel_capabilities · channels:read
  • POST/v1/media/uploads
    Get a presigned URL to upload a file directly to storagemynahcast_request_upload · media:write · dry_run
  • POST/v1/media/{mediaId}/complete
    Confirm an upload finished; the file is checked in storagemynahcast_complete_upload · media:write
  • GET/v1/brands/{brandId}/voice
    Read a brand's active voice profilemynahcast_get_brand_voice · posts:read
  • PUT/v1/brands/{brandId}/voice
    Publish a new version of a brand's voice profilemynahcast_update_brand_voice · voice:write · dry_run

Errors

Errors are application/problem+json with type, title, status, code and a requestId; validation errors add a fix hint. 401 means a missing or revoked key, 403 a key without the scope, 422 a post that fails validation, 429 a rate limit (respect Retry-After).