API Reference
ProEcommerce exposes a RESTful JSON API for every resource you can manage in the admin dashboard. Use it to build custom integrations, dashboards, and automation.
Base URL
https://<your-tenant>.proecommerce.com/api/v1/
Authentication
Generate an API key at Settings → API Keys. Pass it in the
Authorization header on every request:
Authorization: Bearer proe_live_a1b2c3d4e5f6...
Keys are tenant-scoped and can be issued with read-only or read-write privileges. Revoke at any time from the settings panel.
Rate limits
- Read endpoints: 120 requests / minute per key
- Write endpoints: 30 requests / minute per key
- Burst: up to 2× for short windows
Exceeding the limit returns 429 Too Many Requests with a
Retry-After header.
Standard response format
{
"data": { ... resource object ... },
"meta": {
"request_id": "req_01HX4R...",
"api_version": "v1"
}
}
List endpoints wrap in a data array and add pagination meta:
{
"data": [ ... ],
"meta": {
"request_id": "...",
"page": 1,
"per_page": 50,
"total": 1247,
"total_pages": 25
}
}
Error format
{
"error": {
"code": "invalid_request",
"message": "The field 'email' is required.",
"field": "email"
},
"meta": { "request_id": "..." }
}
Core endpoints
Clients
GET /api/v1/clients
GET /api/v1/clients/{id}
POST /api/v1/clients
PATCH /api/v1/clients/{id}
DELETE /api/v1/clients/{id}
Invoices
GET /api/v1/invoices ?status=unpaid&from=2026-01-01
GET /api/v1/invoices/{id}
POST /api/v1/invoices (creates + emails)
POST /api/v1/invoices/{id}/pay (attempt charge)
POST /api/v1/invoices/{id}/refund (full or partial)
POST /api/v1/invoices/{id}/void
Services
GET /api/v1/services
GET /api/v1/services/{id}
POST /api/v1/services (create + optionally activate)
PATCH /api/v1/services/{id} (change package, billing cycle)
POST /api/v1/services/{id}/suspend
POST /api/v1/services/{id}/unsuspend
POST /api/v1/services/{id}/terminate
Domains
GET /api/v1/domains
GET /api/v1/domains/{id}
GET /api/v1/domains/check/{name} (availability lookup)
POST /api/v1/domains (register new)
POST /api/v1/domains/{id}/renew
POST /api/v1/domains/{id}/transfer-out
Tickets
GET /api/v1/tickets
GET /api/v1/tickets/{id}
POST /api/v1/tickets
POST /api/v1/tickets/{id}/reply
POST /api/v1/tickets/{id}/close
Idempotency
Write endpoints accept an Idempotency-Key header. If you
retry the same key within 24 hours, the server returns the cached
response instead of creating duplicate resources.
Webhooks
See Integrations → Webhooks for event catalog, payload format, and signature verification.
SDK libraries
No official SDKs yet — but the API is plain REST with predictable JSON shapes, so any HTTP client works. If you'd like a PHP or Node SDK, let us know which one to prioritize.