Build powerful integrations with our comprehensive REST API. Access contacts, deals, analytics, and more with simple, well-documented endpoints.
The CubicleERP API is organized around REST. It accepts JSON request bodies, returns JSON responses, and uses standard HTTP status codes.
https://api.cubicle-erp.com/v1All API requests are made to this base URL with your resource path appended.
Content-Type: application/jsonSend and receive data in JSON. All responses include appropriate status codes.
Currently on v1We version our API to ensure backwards compatibility. Breaking changes get a new version.
Here are some of the most commonly used endpoints. Full documentation covers 100+ endpoints across all modules.
/api/v1/contactsRetrieve a paginated list of all contacts in your organization./api/v1/dealsCreate a new deal with associated contact and pipeline stage./api/v1/deals/:idUpdate an existing deal's properties, stage, or assigned owner./api/v1/analytics/revenueFetch revenue analytics with filters for date range and pipeline./api/v1/contacts/:idPermanently remove a contact and optionally cascade to related deals./api/v1/webhooksRegister a new webhook endpoint for real-time event notifications.curl -X GET "https://api.cubicle-erp.com/v1/contacts" \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"limit": 10,
"sort": "created_at:desc"
}'{
"data": [
{
"id": "cnt_8xk2m9",
"name": "Jane Cooper",
"email": "jane@example.com",
"company": "Acme Inc",
"created_at": "2026-03-15T10:30:00Z"
}
],
"meta": {
"total": 1284,
"page": 1,
"limit": 10
}
}The CubicleERP API uses Bearer token authentication. Include your API key in the Authorization header of every request.
# Include your API key in the header
Authorization: Bearer cbk_live_a1b2c3d4e5f6
# Example authenticated request
curl https://api.cubicle-erp.com/v1/me \
-H "Authorization: Bearer cbk_live_a1b2c3d4e5f6"
# Response
{
"id": "org_x9k2m4",
"name": "Your Organization",
"plan": "business",
"api_calls_remaining": 498000
}Rate limits vary by plan. If you exceed your limit, the API returns a 429 status code with a Retry-After header.
| Plan | Requests / Minute | Daily Limit | Burst Rate |
|---|---|---|---|
| Free | 100 / minute | 5,000 / day | 20 / second |
| Pro | 500 / minute | 50,000 / day | 100 / second |
| Business | 2,000 / minute | 500,000 / day | 500 / second |
| Enterprise | Custom | Unlimited | Custom |
Get started quickly with our official libraries. Each SDK wraps the REST API with idiomatic methods for your language.
npm install @cubicle-erp/sdkconst Cubicle = require("@cubicle-erp/sdk");
const client = new Cubicle({ apiKey: "YOUR_KEY" });
const contacts = await client.contacts.list({
limit: 25,
sort: "created_at:desc"
});pip install cubicle-erpfrom cubicle_erp import CubicleClient
client = CubicleClient(api_key="YOUR_KEY")
contacts = client.contacts.list(
limit=25,
sort="created_at:desc"
)composer require cubicle-erp/sdkuse CubicleERP\Client;
$client = new Client(["apiKey" => "YOUR_KEY"]);
$contacts = $client->contacts->list([
"limit" => 25,
"sort" => "created_at:desc"
]);gem install cubicle_erprequire "cubicle_erp"
client = CubicleERP::Client.new(api_key: "YOUR_KEY")
contacts = client.contacts.list(
limit: 25,
sort: "created_at:desc"
)From zero to your first API call in under 5 minutes.
Navigate to Settings > API Keys in your CubicleERP dashboard and generate a new key.
Choose the SDK for your language and install it via your package manager.
Initialize the client with your API key and call any endpoint to verify your setup.
Set up webhooks, configure error handling, and you are ready to ship.
Join thousands of businesses using CubicleERP to streamline operations and boost productivity.