> ## Documentation Index
> Fetch the complete documentation index at: https://docs.marketordie.io/llms.txt
> Use this file to discover all available pages before exploring further.

# Quickstart

> Create a key and ship your first post in two calls.

## 1. Create an API key

In the app, go to **Profile → API keys**, give the key a name, and click
**Create**. Copy the key (`mod_live_…`) — it's shown only once.

<Warning>
  Treat your key like a password. It can post on your behalf. Revoke it anytime
  from the same screen.
</Warning>

## 2. Find your channels

Every post targets one or more connected channels. List them and grab the `id`s:

```bash theme={null}
curl https://api.marketordie.io/v1/channels \
  -H "Authorization: Bearer $MOD_KEY"
```

```json Response theme={null}
{
  "data": [
    { "id": "conn_abc", "platform": "x", "name": "Hadi", "username": "HadiiAzeez", "verified": true },
    { "id": "conn_def", "platform": "linkedin", "name": "Hadi Azeez", "username": "Hadi Azeez", "verified": false }
  ]
}
```

## 3. Ship a post

Post to one or more channels at once. Omit `scheduled_for` to publish now.

<CodeGroup>
  ```bash cURL theme={null}
  curl -X POST https://api.marketordie.io/v1/posts \
    -H "Authorization: Bearer $MOD_KEY" \
    -H "Content-Type: application/json" \
    -d '{
      "channels": ["conn_abc", "conn_def"],
      "text": "We just shipped our public API."
    }'
  ```

  ```js JavaScript theme={null}
  const res = await fetch("https://api.marketordie.io/v1/posts", {
    method: "POST",
    headers: {
      Authorization: `Bearer ${process.env.MOD_KEY}`,
      "Content-Type": "application/json",
    },
    body: JSON.stringify({
      channels: ["conn_abc", "conn_def"],
      text: "We just shipped our public API.",
    }),
  });
  const { data } = await res.json();
  ```

  ```python Python theme={null}
  import os, requests

  requests.post(
      "https://api.marketordie.io/v1/posts",
      headers={"Authorization": f"Bearer {os.environ['MOD_KEY']}"},
      json={"channels": ["conn_abc", "conn_def"], "text": "We just shipped our public API."},
  )
  ```
</CodeGroup>

That's it — the post goes through the same reliable queue as the composer, with
automatic retries and failure notifications.

<Tip>
  Need help? Email [hadi@heffl.com](mailto:hadi@heffl.com).
</Tip>
