Authentication
Every endpoint authenticates via one of two headers. Both keys are pre-loaded for this environment — copy from the chips below. Get a personal API key from the dashboard after signing up; it replaces the public guest key and unlocks your tier's per-day quotas.
Tiers
| Tier | Per run | API calls / day | Retention |
|---|---|---|---|
| Guest | 20 | 5 | 2h |
| Registered | 200 | 50 | 6h |
| Pro | 1,000 | 500 | 24h |
API keys (this environment)
Click any key to copy it. The Blog key is a credential — anyone with it can publish to your blog as source=api. Rotate from your account settings if it leaks.
Web / Guest key x-api-key
Use on read endpoints, /api/tool-run, /api/blog/list, etc.
pub-JdBtm97Wnq0w0W9CH5n6v4MzEFm5iP1BPlsD6g
Blog key X-Blog-Key
Use ONLY on POST /api/blog/post. Posts created with this key are tagged source=api.
••••••••••••••••
The Blog key is write-capable and only visible on the admin docs page after sign-in.
Errors
All errors follow this shape:
{"detail": "Human-readable error"}
| HTTP | Meaning |
|---|---|
| 400 | Missing or malformed param |
| 401 | Bad / missing api key |
| 403 | Tier doesn't allow this action |
| 404 | Resource not found |
| 408 | Job didn't finish in window |
| 429 | Rate-limited — see Retry-After |
| 500 | Server error — retry |
| 503 | Database / upstream model unavailable |
Rate limits
Per-IP rate limit is 60 req / min. Pro plans get 600 req / min. Excess returns 429 with a Retry-After header.
POST /api/auth/signup
Creates a new registered user. The first 100 signups are flagged pro_eligible=true — they can claim a 30-day Pro trial via /api/auth/claim-pro.
curl -X POST http://www.convertfleet.online/api/auth/signup \
-H "Content-Type: application/json" \
-d '{
"email": "you@example.com",
"password": "your-strong-password",
"name": "Aisha"
}'
Response
{
"status": "success",
"user": {
"id": "uuid", "email": "...", "api_key": "sk-...",
"tier": "registered", "pro_eligible": true, "pro_expires_at": null
}
}
POST /api/auth/login
Verify password and return the user's api_key. Store it client-side and send as x-api-key on every subsequent request.
curl -X POST http://www.convertfleet.online/api/auth/login \
-H "Content-Type: application/json" \
-d '{"email":"you@example.com","password":"your-strong-password"}'
GET /api/auth/me
Returns the profile + usage counters for the api_key holder.
curl http://www.convertfleet.online/api/auth/me \
-H "x-api-key: pub-JdBtm97Wnq0w0W9CH5n6v4MzEFm5iP1BPlsD6g"
POST /api/auth/update
Update name and/or password. Password change requires current_password.
curl -X POST http://www.convertfleet.online/api/auth/update \
-H "x-api-key: YOUR_USER_KEY" \
-H "Content-Type: application/json" \
-d '{
"name": "Aisha P.",
"current_password": "old-pw",
"new_password": "new-strong-pw"
}'
POST /api/auth/regenerate-key
Rotate the personal API key. The old key is invalidated immediately.
curl -X POST http://www.convertfleet.online/api/auth/regenerate-key \
-H "x-api-key: YOUR_USER_KEY"
POST /api/auth/claim-pro
One-shot — activates a 30-day Pro window for an eligible account.
curl -X POST http://www.convertfleet.online/api/auth/claim-pro \
-H "x-api-key: YOUR_USER_KEY"
POST /api/blog/post
Publish a blog post from an external system. Authenticates with the Blog API key (header X-Blog-Key). Posts created here are tagged source=api.
Required fields
- title — string
- content — string (HTML or plain text)
Optional fields
- slug — URL slug, auto-derived from title if omitted
- excerpt — short card-preview summary
- category — defaults to Lead Generation
- status — "draft" or "published"
- is_featured — boolean, pins the post on the blog homepage
- meta_description — SEO meta description
- seo_keywords — comma-separated string or keywords as an array
- featured_image — URL of the hero image (alias of image_url)
curl -X POST http://www.convertfleet.online/api/blog/post \
-H "X-Blog-Key: YOUR_BLOG_KEY" \
-H "Content-Type: application/json" \
-d '{
"title": "My Post",
"slug": "my-post",
"content": "<p>HTML or text</p>",
"excerpt": "Short summary",
"category": "Technology",
"status": "draft",
"is_featured": false,
"meta_description": "SEO description",
"seo_keywords": "key1, key2, key3",
"featured_image": "https://example.com/cover.jpg"
}'
POST /api/blog/generate
Generate and publish in one call. Uses any valid user API key (paid tiers recommended — image generation is slow). Returns the full article payload plus the inserted post id.
curl -X POST http://www.convertfleet.online/api/blog/generate \
-H "x-api-key: YOUR_USER_KEY" \
-H "Content-Type: application/json" \
-d '{"topic":"apollo vs clay email verification 2026"}'
GET /api/blog/list
Public read of all blog posts, newest first.
curl http://www.convertfleet.online/api/blog/list
POST /api/tool-run
Kick off any tool. Returns a job_id immediately — poll status or open the WebSocket.
Tool keys
mapsrev linkedin fb fbads reddit tiktok twitter yt yt_comp dl dl_yt dl_ig dl_tt dl_fb dl_sn email disposable
curl -X POST http://www.convertfleet.online/api/tool-run \
-H "x-api-key: pub-JdBtm97Wnq0w0W9CH5n6v4MzEFm5iP1BPlsD6g" \
-H "Content-Type: application/json" \
-d '{
"tool": "mapsrev",
"params": {
"place_url": "https://maps.google.com/...",
"max_results": 200
}
}'
GET /api/tool-run/{job_id}/status
curl http://www.convertfleet.online/api/tool-run/JOB_ID/status \
-H "x-api-key: pub-JdBtm97Wnq0w0W9CH5n6v4MzEFm5iP1BPlsD6g"
GET /api/tool-run/{job_id}/results
curl http://www.convertfleet.online/api/tool-run/JOB_ID/results \
-H "x-api-key: pub-JdBtm97Wnq0w0W9CH5n6v4MzEFm5iP1BPlsD6g"
GET /api/health
Liveness probe. Always 200.
curl http://www.convertfleet.online/api/health
GET /api/download/{job_id}/{fmt}
Direct file download for a finished job. fmt = csv or xlsx.
curl -L -o leads.csv \
-H "x-api-key: pub-JdBtm97Wnq0w0W9CH5n6v4MzEFm5iP1BPlsD6g" \
http://www.convertfleet.online/api/download/JOB_ID/csv