REST API v1
All systems operational

Build with Axlaas

Integrate your applications with the Axlaas platform using our comprehensive REST API. Scope-based auth, real-time webhooks, and 73+ endpoints across 15 modules.

73+
Endpoints
15
Modules
57
Webhook Events
terminal — api.axlaas.com
$ curl https://api.axlaas.com/v1/health
{
  "status": "operational",
  "version": "1.0.0",
  "region": "africa-south1",
  "modules": 15,
  "endpoints": 73,
  "uptime": "99.99%"
}

Architecture Overview

How every API request flows through the Axlaas gateway

Your Request
HTTPS + Bearer Token
Auth Guard
API key validation
Scope Check
read:* / write:*
Rate Limiter
Per plan + burst
Usage Tracker
Analytics logging
Handler
Business logic
Response
JSON envelope

Quick Start

Get up and running in under 5 minutes

1

Get your API key

Navigate to Settings → Developer API → API Keys and generate a key with scoped permissions.

2

Authenticate

Pass your key as a Bearer token in the Authorization header. Keys use ax_pk_ prefix.

3

Make requests

Call any endpoint with your org slug in the URL path. All responses use the standard JSON envelope.

curl -X GET "https://api.axlaas.com/v1/{org}/cx/tickets" \
  -H "Authorization: Bearer ax_pk_YOUR_API_KEY" \
  -H "Content-Type: application/json"

API Reference

15 modules · 73+ endpoints

Base URL:https://api.axlaas.com/v1/{org}

Authentication

All API requests require authentication via Bearer token

API Key Authentication

Recommended

Server-to-server integrations. Keys are org-scoped with SHA-256 hashing and show-once security (like Stripe).

Authorization: Bearer ax_pk_aBcDeFgH...
Show-once token display
Scope-based permissions
Key rotation with 7-day grace period
Configurable expiration (30d–never)

OAuth 2.0 (Coming Soon)

Planned

User-context integrations for third-party apps. Authorization code flow with PKCE for web and mobile.

Authorization: Bearer eyJhbGciOi...
Authorization code + PKCE
User-context access tokens
Refresh token rotation
Consent screen & scopes

Available Scopes

ModuleRead ScopeWrite Scope
Commerce (Products)read:productswrite:products
Commerce (Orders)read:orderswrite:orders
Commerce (Customers)read:customerswrite:customers
Commerce (Inventory)read:inventorywrite:inventory
CRM & Salesread:crmwrite:crm
Customer Experienceread:cxwrite:cx
Financeread:financewrite:finance
Supply Chainread:supply_chainwrite:supply_chain
Human Resourcesread:hrwrite:hr
Education & Trainingread:lmswrite:lms
Marketingread:marketingwrite:marketing
Analyticsread:analyticswrite:analytics
Branding & Mediaread:brandingwrite:branding
Legal & Contractsread:legalwrite:legal
Operationsread:operationswrite:operations
Sites & Buildersread:siteswrite:sites
Storefrontread:storefront
All (Wildcard)read:allwrite:all

Error Handling

All errors follow a standard JSON envelope

Error Types

401authentication_error
Missing or invalid API key
403authorization_error
Insufficient scope for this resource
429rate_limit_error
Rate limit or daily quota exceeded
400validation_error
Invalid request parameters or body
404not_found
Resource does not exist
409conflict
Resource already exists or state conflict
500internal_error
Unexpected server error

Error Response Format

{
  "error": {
    "type": "authorization_error",
    "code": "scope_insufficient",
    "message": "API key lacks 'write:orders' scope",
    "status": 403,
    "request_id": "req_Gh5i6j7k",
    "doc_url": "https://docs.axlaas.com/errors#scope_insufficient"
  }
}
Retry Strategy

For 429 (rate limit) errors, read the Retry-After header and wait before retrying. For 500 errors, use exponential backoff with jitter (max 3 retries).

Rate Limits & Quotas

API requests are rate-limited per organization based on your plan

PlanRequests / MinBurst (concurrent)Daily MaximumAPI Keys
Sandbox1055001
Starter601510,0002
Growth20050100,0005
Advanced500100500,00015
Custom / Enterprise2,00050010,000,000Unlimited
Rate limit headers are included in every response: X-RateLimit-Limit, X-RateLimit-Remaining, X-RateLimit-Reset. When exceeded, the API returns 429 Too Many Requests with a Retry-After header.

Webhooks

57 real-time events across 13 categories · HMAC-SHA256 signed payloads · Auto-retry with exponential backoff

Event Catalog

product.created
product.updated
product.deleted
order.created
order.updated
order.cancelled
order.refunded
order.fulfilled
order.status_changed
customer.created
customer.updated
inventory.updated
inventory.low

HMAC-SHA256 Signature Verification

// Node.js / TypeScript
import crypto from 'crypto';

function verifyWebhook(
  payload: string,
  signature: string,
  secret: string
): boolean {
  const expected = crypto
    .createHmac('sha256', secret)
    .update(payload)
    .digest('hex');
  return crypto.timingSafeEqual(
    Buffer.from(signature),
    Buffer.from(expected)
  );
}

// In your webhook handler:
app.post('/webhooks/axlaas', (req, res) => {
  const sig = req.headers['x-axlaas-signature'];
  const valid = verifyWebhook(
    JSON.stringify(req.body),
    sig,
    process.env.WEBHOOK_SECRET
  );
  if (!valid) return res.status(401).send('Invalid');
  // Process event...
  res.status(200).send('OK');
});
Retry policy: 3 attempts with exponential backoff (5s, 30s, 300s)
Auto-disable: Endpoints are paused after 100 consecutive failures
Timeout: 30 second response window per delivery

Pagination & Filtering

All list endpoints use cursor-based pagination for consistent performance

Cursor-Based Pagination

Use the cursor parameter from the previous response's next_cursor field to fetch the next page.

// First page
GET /v1/{org}/products?limit=25

// Next page
GET /v1/{org}/products?limit=25&cursor=prod_xyz

Response Envelope

Every list response includes a meta.pagination object with cursor info.

{
  "success": true,
  "data": { ... },
  "meta": {
    "request_id": "req_abc123",
    "pagination": {
      "count": 25,
      "limit": 25,
      "has_more": true,
      "next_cursor": "prod_xyz"
    }
  }
}

Security Model

Enterprise-grade security built into every layer

SHA-256 Key Hashing

API keys are hashed before storage. Even our database never holds your plaintext key.

Scope-Based Access

Every key is bound to explicit read/write scopes. Least-privilege by default.

Key Rotation

7-day grace period when rotating keys — zero-downtime migration for your integrations.

Rate Limiting

Multi-tier rate limits (per-minute + burst + daily) protect against abuse and runaway scripts.

HMAC Webhooks

Every webhook payload is signed with HMAC-SHA256. Verify signatures to prevent spoofing.

CORS Controls

Origin validation on all API responses. Configure allowed origins in your dashboard.

SDKs & Libraries

Official client libraries for your preferred language

JavaScript / TypeScript

beta
npm install @axlaas/sdk

Python

planned
pip install axlaas

Go

planned
go get github.com/axlaas/go-sdk

PHP

planned
composer require axlaas/sdk

In the meantime:Use the code examples in the Quick Start section or each module's API reference page. Every endpoint includes copy-paste examples in cURL, JavaScript, Python, Go, and PHP.

Data Portability & Migration

Full data sovereignty — export, migrate, or sync your data anytime

Mode A

Full Data Export

Download a complete snapshot of your organization data in JSON or CSV format. Includes all modules, users, and assets.

Mode B

Webhook Forwarding

Forward all platform events to an external system in real-time. Maintain a mirror of your data outside Axlaas.

Mode C

API Access / Sovereignty

Use the REST API to query and sync any data on-demand. Build custom ETL pipelines for your data warehouse.

Mode D

Data Sync (Bi-directional)

Keep your Axlaas data in sync with external systems like Salesforce, HubSpot, or your custom CRM.

Ready to integrate?

Generate your first API key and start building with Axlaas. Full access to all 73+ endpoints.

Axlaas Support

How can we help?

Hi! 👋 Our AI agent knows everything about Axlaas and can help you instantly.

Help Center

Browse all documentation

Help Center API Docs +233 055 317 3282