Getting started
Quickstart
Authenticate, list your contacts, and read the response in under five minutes.
Last updated Jul 14, 2026
By the end of this page youβll have made an authenticated call against the OnePageCRM REST API and parsed the response. Weβll use HTTP Basic auth with your own user credentials β the simplest path for scripts, internal tools, and accessing your own account.
Building an app that acts on behalf of other OnePageCRM users? Use OAuth 2.1 instead. Skip the API key flow below and follow the OAuth quickstart.
1. Get your API credentials
Sign in to OnePageCRM and open the API settings page:
https://app.onepagecrm.com/app/api
Open the Configuration tab. You need two values:
| Value | Used as |
|---|---|
user_id | HTTP Basic username |
api_key | HTTP Basic password |
Treat the api_key like a password β it grants full access to your
account. Donβt commit it to source control.
2. Make your first request
The base URL for the REST API is:
https://app.onepagecrm.com/api/v3
A good first call is listing your contacts:
curl -u "USER_ID:API_KEY" \
https://app.onepagecrm.com/api/v3/contacts.json
Replace USER_ID and API_KEY with your values. The .json suffix
sets the response format. Another useful early call is
GET /bootstrap β it returns account-wide reference data (statuses,
deal stages, custom field schemas, etc.) in one request:
curl -u "USER_ID:API_KEY" \
https://app.onepagecrm.com/api/v3/bootstrap.json
3. Read the response
OnePageCRM wraps every response in a standard envelope:
{
"status": 0,
"message": "OK",
"timestamp": 1716205200,
"data": {
"contacts": [
{ "id": "5f...", "first_name": "Ada", "last_name": "Lovelace", "...": "..." }
],
"total_count": 1,
"page": 1,
"per_page": 10,
"max_page": 1
}
}
status: 0means success. Non-zero status codes correspond to documented error categories.datacarries the actual payload, shaped per the endpoint.- List endpoints include pagination (
page,per_page,max_page,total_count). Request more pages with?page=2.
Common errors
| HTTP status | What it usually means | Fix |
|---|---|---|
401 Unauthorized | Wrong user_id or api_key, or missing Authorization header. | Double-check both values; re-copy from the API settings page. |
403 Forbidden | Credentials are correct but the user lacks permission for that resource. | Check the userβs role or whether the record belongs to a teammate. |
404 Not Found | Typo in the path, or the record ID doesnβt exist. | Confirm the endpoint URL against the API reference. |
400 Bad Request | Required field missing or a value is invalid on a write request. | Inspect the errors object in the response body for the offending field β see errors. |
429 Too Many Requests | Youβre being rate-limited. | Slow down. Back off exponentially with jitter and retry. |
What to read next
- The data model β the seven core entities behind every OnePageCRM surface, and the Action Stream that ties them together. Ten minutes here saves hours later.
- API reference β every endpoint, parameter, and response shape. Try requests directly from the browser.
- Subscribe to webhook events β react to CRM changes in real time instead of polling.
- Query CRM data with OQL β one JSON query language across contacts, deals, actions, notes, calls, and meetings. Runs through the MCP server today.
- OAuth 2.1 β when your app needs to act on behalf of users other than yourself.
- MCP for AI agents β let Claude, ChatGPT, or your favorite agent talk to your CRM.