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

# Quickstart

> Make your first SideShift API request.

Pick the API you're building against. Each uses its own key and base URL — see
[Authentication](/authentication) for the full comparison.

<Tabs>
  <Tab title="Platform API">
    <Steps>
      <Step title="Create an API key">
        Open **Settings → Integrations** in the SideShift dashboard and create a key.

        Platform access requires an active SideShift subscription. Without one, requests
        return `402 { "error": "Active subscription required" }`.
      </Step>

      <Step title="List your programs">
        Send the key as `x-api-key`. Results are paginated, 25 per page by default.

        ```bash theme={null}
        curl https://app.sideshift.app/api/v1/programs \
          -H "x-api-key: YOUR_KEY"
        ```

        Programs represent the campaigns or marketing initiatives creators participate in.
        The OAuth surface calls the same objects campaigns.
      </Step>

      <Step title="Go wider">
        The API key is read-oriented. To create campaigns, sign contracts, execute payouts,
        or send messages, use [OAuth 2.1](/platform/oauth) instead.
      </Step>
    </Steps>
  </Tab>

  <Tab title="Connect">
    <Steps>
      <Step title="Create an API key">
        Open **Settings → Connect** and create a key. The prefix picks the environment —
        `sk_test_…` for sandbox, `sk_live_…` for production, against the same base URL.
      </Step>

      <Step title="List connected accounts">
        ```bash theme={null}
        curl https://app.sideshift.app/api/embed/accounts \
          -H "x-api-key: sk_test_YOUR_KEY"
        ```

        Returns your connected accounts, newest first, paginated 25 per page. Each account
        has a `sideshiftAccountId` and a wallet for receiving and sending funds.
      </Step>

      <Step title="Handle events">
        Register a webhook endpoint in Settings → Connect to receive deposit, transfer, and
        withdrawal events. Every delivery is signed — see [Connect](/connect).
      </Step>
    </Steps>
  </Tab>

  <Tab title="Scraper">
    <Note>
      This example is taken from the current Scraper specification, which is being revised.
      Treat it as accurate to today's spec but subject to change.
    </Note>

    <Steps>
      <Step title="Create an API key">
        Open [Scraper → API Keys](https://app.sideshift.app/scraper) and click **Create
        key**. Copy it immediately — the full value is shown only once.
      </Step>

      <Step title="Make a request">
        ```bash theme={null}
        curl -X POST https://app.sideshift.app/api/v1/scrape/tiktok/posts \
          -H "x-api-key: scrape_live_YOUR_KEY" \
          -H "Content-Type: application/json" \
          -d '{ "username": "mrbeast" }'
        ```
      </Step>

      <Step title="Read the response">
        Every endpoint returns the same envelope, so one parser handles all platforms.

        ```json theme={null}
        {
          "data": {
            "posts": [],
            "profile_pictures": {},
            "next_cursor": "1781491401000"
          },
          "request_id": "req_8f3c9a2b1d4e6f70",
          "upstream_calls": 1,
          "meta": {
            "credits_charged": 1,
            "credits_remaining": 9999
          }
        }
        ```
      </Step>
    </Steps>
  </Tab>
</Tabs>

## Next

<CardGroup cols={3}>
  <Card title="Platform API" icon="briefcase-business" href="/platform">
    Programs, contracts, payouts, and analytics.
  </Card>

  <Card title="Connect" icon="wallet" href="/connect">
    Embedded payments and payouts.
  </Card>

  <Card title="Scraper" icon="search" href="/scraper">
    Social profiles, posts, and metrics.
  </Card>
</CardGroup>
