API Documentation

Build custom integrations with the ColonyCore REST API. Automate workflows, sync data, and unlock programmatic access to your entire operation.

? Back to Help Center

Authentication

API Key Required: All requests must include your API key in the Authorization header.
curl https://api.colonycore.io/v1/jobs \ -H "Authorization: Bearer YOUR_API_KEY" \ -H "Content-Type: application/json"

Get your API key at Account Settings ? Integrations ? API Keys. Keys are scoped to your organization. Regenerate keys annually for security.

Rate Limits

  • Free Plan: 10 requests/minute
  • Pro Plan: 100 requests/minute
  • Enterprise: Custom limits

Error Handling

{ "error": { "code": "INVALID_REQUEST", "message": "Missing required field: job_id", "details": { "field": "job_id" } } }

HTTP status codes: 400 (bad request), 401 (auth failed), 404 (not found), 429 (rate limit), 500 (server error).

Webhooks

Subscribe to events and get real-time notifications:

POST /v1/webhooks { "url": "https://your-app.com/webhooks", "events": ["job.created", "flight.completed", "invoice.paid"] }

Events: job.created, job.updated, flight.completed, invoice.created, invoice.paid, payment.received

Jobs

GET /v1/jobs

List all jobs for your account.

curl https://api.colonycore.io/v1/jobs \ -H "Authorization: Bearer YOUR_API_KEY"
Response:
{ "data": [ { "id": "job_12345", "client": "SkyLine Contractors", "description": "Solar panel roof inspection", "location": "123 Oak St, Denver CO", "status": "completed", "scheduled_date": "2025-01-15", "duration_hours": 2.5, "rate": 500.00, "created_at": "2025-01-14T10:30:00Z" } ], "pagination": { "page": 1, "limit": 20, "total": 150 } }

POST /v1/jobs

Create a new job.

curl -X POST https://api.colonycore.io/v1/jobs \ -H "Authorization: Bearer YOUR_API_KEY" \ -H "Content-Type: application/json" \ -d '{ "client": "SkyLine Contractors", "description": "Solar panel roof inspection", "location": "123 Oak St, Denver CO", "scheduled_date": "2025-01-15", "duration_hours": 2.5, "rate": 500.00 }'
Response:
{ "id": "job_12345", "status": "scheduled", "created_at": "2025-01-14T10:30:00Z" }

Flights

GET /v1/flights/{job_id}

Get all flights for a job.

curl https://api.colonycore.io/v1/flights/job_12345 \ -H "Authorization: Bearer YOUR_API_KEY"
Response:
{ "data": [ { "id": "flight_abc123", "job_id": "job_12345", "drone_serial": "DJI123456789", "duration_minutes": 45, "altitude_max": 250, "distance_km": 3.2, "battery_used": 65, "started_at": "2025-01-15T10:00:00Z", "ended_at": "2025-01-15T10:45:00Z", "weather": { "temperature": 15, "wind_speed": 12, "visibility": "good" } } ] }

Invoices

POST /v1/invoices

Generate an invoice from a job.

curl -X POST https://api.colonycore.io/v1/invoices \ -H "Authorization: Bearer YOUR_API_KEY" \ -H "Content-Type: application/json" \ -d '{ "job_id": "job_12345", "rate_type": "hourly", "rate_amount": 200.00, "send_to_client": true }'
Response:
{ "id": "invoice_xyz789", "job_id": "job_12345", "amount": 500.00, "status": "sent", "payment_url": "https://pay.colonycore.io/inv_xyz789", "created_at": "2025-01-15T11:00:00Z" }

Customers

GET /v1/customers

List all customers.

curl https://api.colonycore.io/v1/customers \ -H "Authorization: Bearer YOUR_API_KEY"

POST /v1/customers

Create a new customer.

curl -X POST https://api.colonycore.io/v1/customers \ -H "Authorization: Bearer YOUR_API_KEY" \ -H "Content-Type: application/json" \ -d '{ "name": "SkyLine Contractors", "email": "contact@skyline.com", "phone": "+1-303-555-0123", "address": "123 Oak St, Denver CO" }'

Payments

GET /v1/payments/{invoice_id}

Check payment status for an invoice.

curl https://api.colonycore.io/v1/payments/invoice_xyz789 \ -H "Authorization: Bearer YOUR_API_KEY"
Response:
{ "status": "paid", "amount": 500.00, "payment_method": "credit_card", "paid_at": "2025-01-16T14:30:00Z", "transaction_id": "txn_abc123" }

Python SDK

pip install colonycore from colonycore import ColonyCore client = ColonyCore(api_key="YOUR_API_KEY") # Create job job = client.jobs.create( client="SkyLine Contractors", description="Roof inspection", location="Denver, CO", rate=500.00 ) # Get flights flights = client.flights.list(job_id=job.id) # Generate invoice invoice = client.invoices.create( job_id=job.id, rate_type="hourly", send_to_client=True )

JavaScript SDK

npm install colonycore-sdk const ColonyCore = require('colonycore-sdk'); const client = new ColonyCore({ apiKey: 'YOUR_API_KEY' }); // Create job const job = await client.jobs.create({ client: 'SkyLine Contractors', description: 'Roof inspection', location: 'Denver, CO', rate: 500.00 }); // Get flights const flights = await client.flights.list({ jobId: job.id }); // Generate invoice const invoice = await client.invoices.create({ jobId: job.id, rateType: 'hourly', sendToClient: true });

Go SDK

import "github.com/colonycoreio/colonycore-go" client := colonycore.New("YOUR_API_KEY") // Create job job, err := client.Jobs.Create(ctx, &colonycore.JobCreateRequest{ Client: "SkyLine Contractors", Description: "Roof inspection", Location: "Denver, CO", Rate: 500.00, }) // List flights flights, err := client.Flights.List(ctx, job.ID) // Create invoice invoice, err := client.Invoices.Create(ctx, &colonycore.InvoiceCreateRequest{ JobID: job.ID, RateType: "hourly", SendToClient: true, })

Need Help?

Email api@colonycore.io for integration support, or join our Slack community for developer discussions.