> ## Documentation Index
> Fetch the complete documentation index at: https://reach-owl.mintlify.site/llms.txt
> Use this file to discover all available pages before exploring further.

# Get Started with ReachOwl API

> Make your first ReachOwl API call in minutes. Authenticate, retrieve your team ID, and launch a Facebook outreach campaign.

The ReachOwl API is a direct HTTP API. There is no package to install. All you need is any HTTP client (curl, Postman, Insomnia, or your language's built-in HTTP library) and your ReachOwl credentials.

## Prerequisites

* A ReachOwl account (any plan)
* Your account email and password
* At least one connected browser with a linked Facebook account (visible in your dashboard under Browsers)

## Get started

<Steps>
  <Step title="Authenticate">
    Exchange your email and password for a Bearer token. No special headers are needed for this request.

    ```bash theme={null}
    curl -X POST "https://reachowl.com/api/v1/authenticate" \
      -H "Content-Type: application/json" \
      -H "Accept: application/json" \
      -d '{
        "email": "you@example.com",
        "password": "your_password"
      }'
    ```

    ```json theme={null}
    {
      "token": "2521|R4ek1kqRMr1XeemICKF3p8tIZ14Hw5qjTvixdUpm..."
    }
    ```

    Save the `token` value. You will pass it as `Authorization: Bearer {token}` on every subsequent request.
  </Step>

  <Step title="Get your team ID">
    Fetch your user profile to find your `team_id`. You need this when creating campaigns and querying contacts.

    ```bash theme={null}
    curl "https://reachowl.com/api/v1/user" \
      -H "Authorization: Bearer {token}" \
      -H "Accept: application/json"
    ```

    ```json theme={null}
    {
      "id": 42,
      "email": "you@example.com",
      "team_id": 10
    }
    ```

    Note the `team_id` value.
  </Step>

  <Step title="Find your executor IDs">
    List your connected social accounts (app-states). Each entry has an `id` that you pass as `executor_ids` when creating a campaign.

    ```bash theme={null}
    curl "https://reachowl.com/api/v1/app-states" \
      -H "Authorization: Bearer {token}" \
      -H "Accept: application/json"
    ```

    ```json theme={null}
    [
      {
        "id": 55,
        "platform": "facebook",
        "status": "active"
      }
    ]
    ```

    Save one or more `id` values as your executor IDs.
  </Step>

  <Step title="Create a campaign">
    Create a Facebook group outreach campaign. Replace `post_url` with a synced group URL from `GET /api/v1/groups`.

    ```bash theme={null}
    curl -X POST "https://reachowl.com/api/v1/campaigns" \
      -H "Authorization: Bearer {token}" \
      -H "Content-Type: application/json" \
      -H "Accept: application/json" \
      -d '{
        "name": "My First Campaign",
        "team_id": 10,
        "platform": "facebook",
        "action_type": "friend_request",
        "audience_type": "group",
        "post_url": "https://www.facebook.com/groups/123456789",
        "executor_ids": [55],
        "messages": [
          {
            "text": ["Hi {{first_name}}, great to connect!"],
            "delay": 0
          }
        ],
        "schedule": [
          {
            "day": "Monday",
            "start_time": "09:00:00",
            "end_time": "17:00:00"
          }
        ]
      }'
    ```

    A `201` response includes the new campaign object with its `id`. The campaign starts running immediately (`status: 1`). To pause it, send `PATCH /api/v1/campaigns/{id}` with `{"status": 0}`.
  </Step>
</Steps>

## Next steps

<CardGroup cols={2}>
  <Card title="Authentication" icon="lock" href="/authentication">
    Learn how tokens work and best practices for storing them.
  </Card>

  <Card title="Campaigns" icon="bullhorn" href="/concepts/campaigns">
    Understand action types, scheduling, limits, and cloning.
  </Card>

  <Card title="Post Scheduler" icon="calendar" href="/guides/post-scheduler">
    Schedule recurring posts to Facebook groups.
  </Card>

  <Card title="API Reference" icon="code" href="/api-reference/introduction">
    Browse every endpoint with request and response details.
  </Card>
</CardGroup>
