Skip to content

Developer Guide

RepairOps provides APIs and plugin systems for developers and integrators. Build custom integrations, extend functionality with plugins, and deploy RepairOps on your own infrastructure.

Complete API documentation for Enterprise tier. Access tickets, customers, inventory, KPIs, and more. Manage API keys, configure webhooks, and integrate with your systems.

Available on: Enterprise tier only.

Build custom plugins to extend RepairOps. Learn the manifest specification, capabilities system, event handling, and plugin testing. Submit plugins to the marketplace.

Available on: All tiers (submit to marketplace on Pro/Enterprise).

Deploy RepairOps on your own infrastructure with Docker Compose. Set up Postgres, Supabase, Redis, and the RepairOps worker. Configure backups, monitoring, and SSL.

Available on: Enterprise tier only.

Get started with the REST API in 3 steps:

SettingsAPI KeysGenerate New Key → Select scope (Read/Write/Admin)

RepairOps API Key generation and management interface RepairOps API Key generation and management interface
Terminal window
curl -H "Authorization: Bearer YOUR_API_KEY" \
https://api.repairops.io/v1/tickets

See REST API Reference for all endpoints.

Build your first plugin in 5 minutes:

Terminal window
npm install -g @repairops/plugin-cli
plugin-cli init my-plugin
cd my-plugin
npm install

Edit manifest.json:

{
"name": "My First Plugin",
"version": "1.0.0",
"capabilities": ["label_printer"],
"handler": "index.ts"
}
Terminal window
plugin-cli dev
Terminal window
plugin-cli publish

See Plugin SDK for full details.

Deploy RepairOps locally with Docker Compose:

Terminal window
git clone https://github.com/repairops/docker-compose.git
cd docker-compose

Create .env file with database credentials, API keys, etc.

Terminal window
docker-compose up -d

Open http://localhost:3000 in your browser.

See Self-Hosted Deployment for production setup.

Use webhooks to react when ticket status changes:

// When ticket moves to "In Repair"
POST /webhooks/ticket-events
{
"event": "ticket.transitioned",
"ticket_id": "abc-123",
"from_status": "APPROVED",
"to_status": "IN_REPAIR",
"timestamp": "2026-03-09T15:30:00Z"
}

Get all tickets for a date range:

Terminal window
curl -H "Authorization: Bearer YOUR_API_KEY" \
"https://api.repairops.io/v1/tickets?created_after=2026-01-01&created_before=2026-02-01"

Integrate your website booking system with RepairOps:

Terminal window
curl -X POST \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"customer_email": "john@example.com",
"device_identifier": "iPhone 14 Pro",
"issue_description": "Cracked screen"
}' \
https://api.repairops.io/v1/tickets
  • Help Center — FAQs and troubleshooting
  • Community Forum — Discuss plugins and integrations
  • Support — Contact our support team
  • GitHub Issues — Report bugs or request features
Terminal window
npm install @repairops/sdk
import { RepairOpsClient } from '@repairops/sdk'
const client = new RepairOpsClient({
apiKey: process.env.REPAIROPS_API_KEY
})
const tickets = await client.tickets.list()

All features are accessible via REST API with standard HTTP methods (GET, POST, PATCH, DELETE).

Subscribe to real-time ticket events, payment notifications, and more.

  • Read endpoints: 1,000 requests/hour
  • Write endpoints: 100 requests/hour
  • Admin endpoints: 10 requests/hour

Rate limits are per API key. Exceeding limits returns 429 Too Many Requests.

All API requests require Bearer token authentication:

Terminal window
Authorization: Bearer YOUR_API_KEY

API keys can be created and rotated in SettingsAPI Keys.

┌──────────────────────────────────────┐
│ Your Application │
│ (Website, Kiosk, CRM, etc.) │
└─────────────┬──────────────────────┘
│ REST API / GraphQL
┌─────────────v──────────────────────┐
│ RepairOps API Gateway │
│ - Auth & API key validation │
│ - Rate limiting │
│ - Request logging │
└─────────────┬──────────────────────┘
┌─────────────v──────────────────────┐
│ RepairOps Backend │
│ - Business logic │
│ - Ticket state machine │
│ - Multi-tenant isolation (RLS) │
└─────────────┬──────────────────────┘
┌─────────────v──────────────────────┐
│ Postgres Database │
│ - Tickets, customers, inventory │
│ - Encrypted at rest │
│ - Automated daily backups │
└─────────────────────────────────────┘
  • Organizations — Your repair shop
  • Shops — Physical locations
  • Tickets — Repair jobs
  • Customers — Customer profiles
  • Inventory — Parts and materials
  • Invoices — Billing records
Organization
├── Shops
│ ├── Tickets
│ │ ├── Customer
│ │ ├── Technician (User)
│ │ └── Invoices
│ ├── Inventory
│ └── POS Transactions
└── Team Members (Users)
FeatureStarterProEnterprise
REST API
Plugin SDK
Plugin Marketplace
Webhooks
Self-Hosted
Rate limitsCustom

API documentation unclear?

Plugin development help?

Deployment questions?


Ready to integrate? Start with REST API Reference or Plugin SDK.