API Reference
Complete reference for all Georender API endpoints.
Base URL:
https://api.georender.io/v1 Endpoints Overview
| Method | Endpoint | Description |
|---|---|---|
POST | /render | Create a new render job |
GET | /status/{job_id} | Check job status |
GET | /styles | List available map styles |
POST | /templates | Create a template |
GET | /templates | List your templates |
POST | /render/batch | Submit batch render jobs |
POST /render
Create a new render job. Returns a job ID for status polling.
POST
/v1/render Request Body
| Parameter | Type | Required | Description |
|---|---|---|---|
waypoints | array | required | Array of coordinates (min 2 for route mode) |
mode | string | optional | route_animation, region_focus, multi_route, country_data |
style | string | optional | Map style (default: maritime-dark) |
duration | integer | optional | Video duration in seconds (default: 12) |
resolution | string | optional | 720p, 1080p, 4k |
fps | integer | optional | 24, 30, 60 |
transport | string | optional | ship, truck, plane |
route | object | optional | Route calculation options |
route_style | object | optional | Route line styling |
camera | object | optional | Camera presets and settings |
hud | object/bool | optional | HUD configuration |
terrain | object | optional | 3D terrain settings |
text_overlays | array | optional | Text overlay configuration |
template_id | string | optional | Use a saved template |
webhook_url | string | optional | URL for completion callback |
Response (202 Accepted)
{
"job_id": "job_8f3k2m9x",
"status": "queued",
"estimated_duration_seconds": 36,
"status_url": "https://api.georender.io/v1/status/job_8f3k2m9x"
} GET /status/{job_id}
Check the status of a render job.
GET
/v1/status/{job_id} Response (Job Complete)
{
"job_id": "job_8f3k2m9x",
"status": "complete",
"video_url": "https://cdn.georender.io/renders/job_8f3k2m9x.mp4",
"thumbnail_url": "https://cdn.georender.io/renders/job_8f3k2m9x_thumb.jpg",
"duration_seconds": 12,
"resolution": "1920x1080",
"file_size_bytes": 18432000,
"expires_at": "2026-04-01T12:00:00Z"
} Job Status Values
| Status | Description |
|---|---|
queued | Job is waiting to be processed |
processing | Render is in progress |
complete | Video is ready for download |
failed | Render failed (check error field) |
GET /styles
List all available map styles.
GET
/v1/styles Response
{
"styles": [
{
"id": "maritime-dark",
"name": "Maritime Dark",
"description": "Deep navy background, white route line...",
"preview_url": "https://cdn.georender.io/previews/maritime-dark.jpg",
"terrain_default": false
},
// ... more styles
]
} POST /templates
Create a reusable render template.
POST
/v1/templates Request Body
{
"name": "suez-cinematic",
"description": "Cinematic style for Suez Canal videos",
"style": "maritime-dark",
"duration": 15,
"route_style": {
"color": "#FF0000",
"width": 4,
"vehicle_icon": "ship"
},
"camera": {
"preset": "canal_bottleneck"
}
} Using a Template
{
"template_id": "suez-cinematic",
"waypoints": [
{ "lat": 29.9792, "lng": 32.5731, "label": "Port Said" },
{ "lat": 29.9552, "lng": 32.5490, "label": "Suez" }
]
} POST /render/batch
Submit multiple render jobs at once. Studio tier only.
POST
/v1/render/batch Request Body
{
"jobs": [
{
"waypoints": [
{ "lat": 29.9792, "lng": 32.5731 },
{ "lat": 12.3567, "lng": 43.6028 }
],
"style": "maritime-dark"
},
{
"waypoints": [
{ "lat": 1.2644, "lng": 103.8176 },
{ "lat": 35.4437, "lng": 139.6380 }
],
"style": "satellite"
}
],
"webhook_url": "https://your-server.com/batch-complete"
} Response
{
"batch_id": "batch_xyz123",
"jobs": [
{ "job_id": "job_1", "status": "queued" },
{ "job_id": "job_2", "status": "queued" }
],
"total": 2
} Batch Limits
| Tier | Max Jobs per Batch |
|---|---|
| Free | Not available |
| Creator | Not available |
| Studio | 25 |