> ## 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.

# Executors: Connected Social Accounts in ReachOwl

> Executors are connected browser sessions (app-states) that ReachOwl uses to perform campaign actions on Facebook or Instagram.

Executors are the social accounts and browser sessions that ReachOwl uses to carry out campaign actions. When you create a campaign, post-scheduler, or profile-growth job, you assign one or more executors so ReachOwl knows which account should send friend requests, messages, or posts. This page explains what executors are, how they are managed, and how you reference them in API calls.

## App-states

App-states represent the authenticated social sessions ReachOwl maintains for you. Each app-state corresponds to a logged-in Facebook or Instagram account. ReachOwl uses these sessions to perform actions on your behalf.

You cannot create or update app-states through the API. They are read-only resources managed by ReachOwl. You list them with `GET /api/v1/app-states` to see which accounts are available and obtain their IDs.

## Browsers

Behind each app-state is a browser session. Browsers are also read-only through the API. They represent the underlying browser profiles ReachOwl uses to isolate sessions. You can inspect browsers with `GET /api/v1/browsers`, but you cannot create or modify them via the API.

## Referencing executors in requests

When you create a campaign, post-scheduler, or profile-growth job, you pass `executor_ids` in the request body. The values are the `id` fields returned by `GET /api/v1/app-states`.

```bash theme={null}
curl -X GET "{{baseUrl}}/api/v1/app-states" \
  -H "Authorization: Bearer {{token}}"
```

A typical response looks like this:

```json theme={null}
{
  "data": [
    {
      "id": 1,
      "platform": "facebook",
      "name": "Main Business Account",
      "status": "active"
    }
  ]
}
```

Use the `id` values as `executor_ids` when creating resources:

```json theme={null}
{
  "executor_ids": [1]
}
```

## Best practices

* Assign at least one active executor to every campaign or job. Without executors, ReachOwl has no account to perform actions.
* Verify the app-state platform matches the resource platform. A Facebook app-state should be used for Facebook campaigns.
* App-states and browsers are read-only via the API. If you need a new account connected, do so through the ReachOwl dashboard.

## Related endpoints

* [`/api-reference/app-states`](/api-reference/app-states) — list available app-states
* [`/api-reference/browsers`](/api-reference/browsers) — list browser sessions
