Base URL
All API requests are prefixed with the following base URL:Authentication
Every request (exceptPOST /api/v1/authenticate) must include a Bearer token in the Authorization header.
- Call
POST /api/v1/authenticatewith your email and password to receive a token. - Include that token on every subsequent request:
401 Unauthorized.
Request and Response Format
- Requests that send a body must set
Content-Type: application/json. - The API returns JSON on success. Set
Accept: application/jsonor rely on the default. - Use
GETfor reads,POSTfor creates,PUT/PATCHfor updates, andDELETEfor removals.
Pagination
List endpoints support pagination via query parameters:page— the page number to fetch (default: 1)per_page— items per page (default: 15)
Status Codes
Design Rules
- ReachOwl does not expose
/pause,/resume,/clone, or/scheduleroutes. Instead, you control these behaviors by setting fields in the request body when creating or updating a resource. - To clone a campaign or post-scheduler, pass
clone_fromin thePOSTbody with the ID of the source resource. - Browsers and app-states endpoints are read-only. You cannot create or update them through the API.
Typical Integration Flow
A common first-time flow looks like this:- Authenticate —
POST /api/v1/authenticateto get a token. - Get user —
GET /api/v1/userto read your profile and defaultteam_id. - Read app state —
GET /api/v1/app-statesto inspect available states and settings. - Create resources — Use the token and
team_idto create campaigns, contacts, or other resources.
Authenticate
Exchange credentials for a Bearer token.
User Profile
Fetch your profile and default team.
Campaigns
List, create, update, and manage campaigns.
Contacts
List contacts and view notes.
