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.