Developers

Build with Connect2Print

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
  }
}

Everything you need

A modern API built for developers

OpenAPI 3.0

Complete OpenAPI specification. Import directly into Postman, Insomnia or your favorite API client.

API Keys

Create multiple API keys with different permissions. Test keys for development, live keys for production.

Webhooks

Receive real-time notifications when events occur. Signed with HMAC-SHA256 for security.

Rate Limiting

Generous rate limits with headers showing usage. Up to 1000 requests/minute on Enterprise.

Security

HTTPS only. IP whitelisting. Scope-based permissions. Audit log of all API calls.

SDKs (Coming)

Official SDKs for PHP, JavaScript, Python and .NET are coming. Until then - use direct HTTP.

API Endpoints

RESTful endpoints for all resources

Orders

Order management
GET /v1/orders
GET /v1/orders/{id}
POST /v1/orders
PUT /v1/orders/{id}

Customers

Customer management
GET /v1/customers
GET /v1/customers/{id}
POST /v1/customers
GET /v1/customers/{id}/orders

Products

Product catalog
GET /v1/products
GET /v1/products/{id}
POST /v1/products/{id}/calculate

Production

Production management
GET /v1/production/jobs
GET /v1/production/jobs/{id}
PUT /v1/production/jobs/{id}/status
GET /v1/production/machines

Invoices

Invoicing
GET /v1/invoices
GET /v1/invoices/{id}
POST /v1/invoices
GET /v1/invoices/{id}/pdf

Webhooks

Real-time events
GET /v1/webhooks
POST /v1/webhooks
DEL /v1/webhooks/{id}
POST /v1/webhooks/{id}/test

Code Examples

Get started quickly with examples

PHP

<?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'];

JavaScript

// 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();

Webhook Events

Receive notifications when things happen

order.created
New order received
order.updated
Order updated
order.completed
Order completed
order.cancelled
Order cancelled
customer.created
New customer created
customer.updated
Customer updated
invoice.created
Invoice created
invoice.paid
Invoice paid
production.started
Production started
production.completed
Production finished
stock.low
Low stock warning
quote.accepted
Quote accepted

Webhook Payload Example

{
  "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"
    }
  }
}

Rate Limits

Generous limits for all plans

Starter

100
requests / minute

Professional

500
requests / minute

Enterprise

1000+
requests / minute

Rate Limit Headers

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)

Ready to get started?

Create a free account and get your first API key in under 5 minutes.