Integrate Connect2Print with your systems via our complete REST API. Orders, customers, products, production - everything is available.
# Get orders with fetch curl -X GET "https://api.connect2print.com/v1/orders" \ -H "Authorization: Bearer c2p_live_xxxxx" \ -H "Content-Type: application/json" # Response { "success": true, "data": [ { "id": 1234, "order_number": "202412290001", "status": "pending", "customer": { "name": "Acme Corp" }, "total": 1250.00 } ], "pagination": { "page": 1, "per_page": 25, "total": 156 } }
A modern API built for developers
Complete OpenAPI specification. Import directly into Postman, Insomnia or your favorite API client.
Create multiple API keys with different permissions. Test keys for development, live keys for production.
Receive real-time notifications when events occur. Signed with HMAC-SHA256 for security.
Generous rate limits with headers showing usage. Up to 1000 requests/minute on Enterprise.
HTTPS only. IP whitelisting. Scope-based permissions. Audit log of all API calls.
Official SDKs for PHP, JavaScript, Python and .NET are coming. Until then - use direct HTTP.
RESTful endpoints for all resources
/v1/orders
/v1/orders/{id}
/v1/orders
/v1/orders/{id}
/v1/customers
/v1/customers/{id}
/v1/customers
/v1/customers/{id}/orders
/v1/products
/v1/products/{id}
/v1/products/{id}/calculate
/v1/production/jobs
/v1/production/jobs/{id}
/v1/production/jobs/{id}/status
/v1/production/machines
/v1/invoices
/v1/invoices/{id}
/v1/invoices
/v1/invoices/{id}/pdf
/v1/webhooks
/v1/webhooks
/v1/webhooks/{id}
/v1/webhooks/{id}/test
Get started quickly with examples
<?php // Create new order via API $apiKey = 'c2p_live_xxxxx'; $order = [ 'customer_id' => 123, 'items' => [ [ 'product_id' => 456, 'quantity' => 500, 'unit_price' => 2.50 ] ] ]; $ch = curl_init('https://api.connect2print.com/v1/orders'); curl_setopt($ch, CURLOPT_POST, true); curl_setopt($ch, CURLOPT_POSTFIELDS, json_encode($order)); curl_setopt($ch, CURLOPT_HTTPHEADER, [ 'Authorization: Bearer ' . $apiKey, 'Content-Type: application/json' ]); curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); $response = json_decode(curl_exec($ch), true); echo "Order created: " . $response['data']['order_number'];
// Get orders with fetch const apiKey = 'c2p_live_xxxxx'; async function getOrders() { const response = await fetch( 'https://api.connect2print.com/v1/orders', { headers: { 'Authorization': `Bearer ${apiKey}`, 'Content-Type': 'application/json' } } ); const { data, pagination } = await response.json(); console.log(`Found ${pagination.total} orders`); return data; } getOrders();
Receive notifications when things happen
order.created
order.updated
order.completed
order.cancelled
customer.created
customer.updated
invoice.created
invoice.paid
production.started
production.completed
stock.low
quote.accepted
{
"event": "order.created",
"event_id": "evt_abc123def456",
"created_at": "2024-12-29T12:00:00Z",
"data": {
"id": 1234,
"order_number": "202412290001",
"status": "pending",
"total": 1250.00,
"customer": {
"id": 567,
"name": "Acme Corp"
}
}
}
Generous limits for all plans
X-RateLimit-Limit
Max requests per minute
X-RateLimit-Remaining
Remaining requests in this period
X-RateLimit-Reset
Unix timestamp for next reset
Retry-After
Seconds until next allowed request (at 429)
Create a free account and get your first API key in under 5 minutes.