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:

ValueUsed as
user_idHTTP Basic username
api_keyHTTP 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: 0 means success. Non-zero status codes correspond to documented error categories.
  • data carries 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 statusWhat it usually meansFix
401 UnauthorizedWrong user_id or api_key, or missing Authorization header.Double-check both values; re-copy from the API settings page.
403 ForbiddenCredentials 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 FoundTypo in the path, or the record ID doesn’t exist.Confirm the endpoint URL against the API reference.
400 Bad RequestRequired 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 RequestsYou’re being rate-limited.Slow down. Back off exponentially with jitter and retry.
  • 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.