Developer Docs

Build on AutoSuite

Everything you need to integrate AutoSuite into your workflows. REST API, webhooks, SDKs, and comprehensive guides.

Get Started in Minutes

Three simple steps to make your first API call.

1

Get Your API Key

Log in to AutoSuite → Settings → API & Integrations → Generate Key. Keep it secret — treat it like a password and never commit it to source control.

2

Make Your First Request

Use any HTTP client to call the API. Here’s a quick example with cURL:

curl -X GET https://api.safo.ae/v1/jobs \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json"
3

Handle the Response

All responses are JSON. Check the status field in the body. Successful calls return HTTP 200. Errors return the appropriate 4xx or 5xx code with a descriptive message.

REST API Reference

Comprehensive endpoint listing for the AutoSuite REST API.

Base URL https://api.safo.ae/v1
Method Endpoint Description
GET /jobs List all repair jobs
POST /jobs Create a new job
GET /jobs/{id} Get job details
PUT /jobs/{id} Update a job
GET /customers List customers
POST /customers Create a customer
GET /vehicles List vehicles
POST /invoices Create an invoice
GET /reports/summary Get summary report
POST /webhooks Register a webhook

Authentication

All API requests must be authenticated using a Bearer token in the Authorization header.

Authorization: Bearer eyJhbGciOiJSUzI1NiJ9...
Key Scopes API keys are scoped: read-only, read-write, or admin. Use the minimum scope your integration requires.
Rate Limit Standard keys allow 1,000 requests per minute. Burst capacity up to 2,000 req for 30 seconds.
Token Expiry API keys expire after 90 days by default. Rotate keys regularly from the Settings panel.

Official SDKs

Use our first-party libraries to get up and running even faster.

Python SDK
Supports Python 3.8+
pip install autosuite-python
View on GitHub →
JavaScript / Node.js
Works in Node.js & browser
npm install @autosuite/sdk
View on GitHub →
PHP SDK
PHP 7.4+
composer require autosuite/php-sdk
View on GitHub →
Ruby
Ruby 2.7+
gem install autosuite
View on GitHub →

Webhooks & Events

AutoSuite can POST event payloads to your URL when things happen in real time.

Event Trigger
job.created New repair job opened
job.updated Job status changed
job.completed Job marked complete
invoice.paid Payment received
customer.created New customer added
vehicle.checkedin Vehicle checked in

Example payload — job.created

{
  "event": "job.created",
  "timestamp": "2025-04-15T09:30:00Z",
  "data": {
    "job_id": "JOB-2847",
    "customer": "Ahmed Al-Rashid",
    "vehicle": "Toyota Camry 2022",
    "status": "open"
  }
}

Sandbox Environment

Test your integration safely before going live.

Test your integration without affecting real data.

  • Sandbox Base URL: https://sandbox.api.safo.ae/v1
  • Pre-populated with 50 sample jobs, 30 customers, and 20 vehicles
  • Sandbox data resets every 24 hours — a clean slate each day
  • Use API keys prefixed with test_ for all sandbox calls
  Request Sandbox Access

Rate Limits & Errors

Understand throughput constraints and how to handle error responses.

Rate Limits

  • Standard: 1,000 requests per minute
  • Burst: Up to 2,000 requests for 30 seconds
  • Response header: X-RateLimit-Remaining

Common Error Codes

  • 400 Bad Request — malformed request body or missing required fields
  • 401 Unauthorized — invalid or expired API key
  • 404 Not Found — resource does not exist
  • 429 Too Many Requests — rate limit exceeded
  • 500 Server Error — rare; contact support if persistent

Need Help?

Our team is ready to help you integrate AutoSuite successfully.