Send leads without writing code
Already using a CRM, form builder, or spreadsheet? Connect it to Routio in minutes using Zapier or Make — no API knowledge required. Pick your tool below and follow the guided setup.

Zapier
Connect to 7,000+ apps
Use Zapier to automatically forward leads from your CRM, form tool, or any other app into Routio. Routio will appear as the destination action — just connect your account and map your fields.

Make
Connect to 3,000+ apps
Use Make to build a visual automation that sends leads from any source directly into Routio. A pre-built scenario template gets you started in minutes.
Get Your API Key
Your seller will provide you with an API key
Format Your Lead
Include required fields in JSON format
POST to Endpoint
Send your lead to our API
All API requests must include your API key in the Authorization header using Bearer token format.
Authorization: Bearer YOUR_API_KEY🔐 Keep your API key secure! Never expose it in client-side code or public repositories.
/api/leadsSubmit a new leadRequest Body
Send a JSON object with lead data. The seller field is required to specify which seller organization should receive the lead. Use the seller's seller code (recommended - 8-character stable identifier that never changes) or slug (human-readable but may change if seller renames). Required fields depend on the campaign category.
💡 Query Parameters Supported
You can also pass lead fields as URL query parameters. This is useful for form builders (Typeform, Jotform, etc.) and simple integrations.
POST /api/leads?seller=ACME1234&category=Solar&state=TX&firstName=John&phone=555-1234Body fields take precedence over query parameters if the same field is in both.
{
"seller": "ACME1234",
"category": "Auto Insurance",
"firstName": "John",
"lastName": "Doe",
"email": "john.doe@email.com",
"phone": "555-123-4567",
"state": "TX",
"zip": "75001",
"city": "Dallas"
}Required Fields
| Field | Type | Description |
|---|---|---|
seller | string | Seller code (8 chars) - recommended or slug (may change if seller renames) |
category | string | Must match an active campaign |
firstName | string | Lead's first name |
lastName | string | Lead's last name |
phone | string | Contact phone number |
state | string | 2-letter state code (e.g., TX, CA) |
curl -X POST https://your-domain.com/api/leads \
-H "Content-Type: application/json" \
-H "Authorization: Bearer YOUR_API_KEY" \
-d '{
"seller": "ACME1234",
"category": "Auto Insurance",
"firstName": "John",
"lastName": "Doe",
"phone": "555-123-4567",
"email": "john@email.com",
"state": "TX"
}'Success Response (200)
{
"success": true,
"lead_id": "abc123",
"status": "sold",
"price": 45.00,
"buyer_ids": ["buyer-uuid-1"]
}Pending Response (200)
Lead accepted but no buyer available yet
{
"success": true,
"lead_id": "abc123",
"status": "pending"
}| Code | Error | Description |
|---|---|---|
| 401 | Invalid API Key | API key missing or invalid |
| 400 | No matching campaign | Category doesn't match any active campaign |
| 400 | Missing required field | A required field is missing from request |
| 429 | Rate limit exceeded | Too many requests, slow down |
| 500 | Internal error | Server error, contact support |
API requests are rate limited to ensure fair usage and platform stability.
| Endpoint | Limit | Window |
|---|---|---|
POST /api/leads | 60 requests | per minute, per API key |
Rate limit headers: Check X-RateLimit-Remaining and X-RateLimit-Reset in responses.
Need help? Contact your seller for support.