Skip to main content

Try it in the docs

Every API Reference endpoint page includes an interactive playground (Try it / Send). You run the same requests as below against the real API without leaving the docs.
  1. Open the linked reference page for the step you are on.
  2. Under Authorization, choose Bearer and paste your mk_live_… key (the same value you use in curl).
  3. Fill path or body fields if needed, then Send.
Mintlify shows one playground per reference page. Use the Try it cards under each step to jump straight to the matching operation.

Prerequisites

  • A Marky account with at least one workspace set up
  • An API key (create one here)
  • Your workspace ID (step 1 lists it; it is also in your dashboard URL: app.mymarky.ai/businesses/{business_id})

1. List your workspaces

Find your workspace ID:

Try it: List workspaces

GET /api/workspaces — interactive playground on the reference page.
Response:
Workspace ID = business_id. Workspaces used to be called businesses, and the paths under a workspace keep the old name: in /api/businesses/{business_id}/posts (and every other nested path), business_id is the workspace ID from this step. Response bodies also carry it as business_id. The old top-level /api/businesses endpoints still work; see Renamed: businesses are now workspaces.

2. Create a post

Push a post into your Marky queue:

Try it: Create post

POST /api/businesses/{business_id}/posts — set caption and restrict_publish_to, then send.
Response:

3. Schedule it

Set a publish time and the post goes out automatically:

Try it: Schedule post

POST /api/businesses/{business_id}/posts/{post_id}/schedule — use the id from the create-post response as post_id.
The post will be published automatically at the scheduled time.

4. Set up a webhook (optional)

Get notified when posts are published:

Try it: Register webhook

POST /api/webhooks — register url and events (e.g. post.published).
When a post publishes, Marky sends a POST request to your URL with the post payload, signed with HMAC-SHA256 over "{X-Marky-Timestamp}." + raw body using the secret returned when you registered the webhook. See Webhooks for the exact check and copy-paste verification code. The SDKs do this check for you.

Next steps

Create posts

Full post creation reference

Manage topics

CRUD on topics

Webhooks

Set up event notifications

Integration guides

Connect Claude Code, Zapier, GHL