Video — entry 017 of 35

Rendobar

Verified Jul 2026

Rendobar is a credit-billed REST API for server-side media processing — arbitrary sandboxed FFmpeg commands, subtitle and animated-caption burning, and JSON-timeline video composition — aimed at both developers and AI agents, with an MCP server for agent tool-calling. New accounts get $5 of free signup credit before per-job nanodollar billing on top of the $9/mo Pro plan kicks in; CORS is locked to Rendobar's own app.rendobar.com dashboard rather than open to arbitrary origins (confirmed: Access-Control-Allow-Origin doesn't change no matter what Origin is sent).

ffmpegvideo-processingmcp-serverai-agentscredit-billing
AuthenticationAPI KeySign up with the provider to obtain credentials.
HTTPSSupportedTraffic is encrypted in transit.
CORSDisabledBrowser calls need a server-side proxy.
PricingFreemiumA usable free tier exists, with paid plans for more volume.
FormatsJSONResponses can be requested as JSON.

GreatAPIs Score

Score81out of 100
Authentication15/25API key required
Pricing17/20Freemium tier available
Docs20/20Machine-readable spec file bundled
Formats9/15Single response format
Freshness20/20Verified within 6 months

Embed this badge

Scored 81 on greatapis.com
<a href="https://greatapis.com/api/rendobar/"><img src="https://greatapis.com/badge/rendobar.svg" alt="Scored 81 on greatapis.com"></a>

Auth quickstart

  1. Get a key at the provider
  2. Send it on every request as a headerAuthorization: <key>
  3. The exact header isn't documented — Authorization is a common default; confirm in the provider's docs.
Stored keyNo key stored

Your key is stored only in this browser (localStorage) and sent directly to the API — never to greatapis.

Endpoints

Servers
https://api.rendobar.com
Auth
bearerAuth
Jobs17

Job creation and management (submit, list, get, cancel, download)

GET/jobsList jobs
Parameters
NameInRequiredType
statusquerynostring
typequerynostring
limitquerynostring
offsetquerynostring
sortquerynostring
orderquerynostring
clientquerynostring
fromquerynointegernull
toquerynointegernull
Responses
StatusDescriptionSchema
200List of jobs—
401Unauthorized—
POST/jobsCreate a job (generic)
Request body

application/json (required)

Responses
StatusDescriptionSchema
200Job completed synchronously or duplicate (idempotent)—
201Job created and dispatched successfully—
400Validation error—
401Unauthorized—
402Insufficient credits—
403Forbidden — job type not allowed on plan—
429Rate limited—
POST/jobs/:id/disputeDispute a job charge
Parameters
NameInRequiredType
idpathyesstring
Request body

application/json

Responses
StatusDescriptionSchema
200Dispute logged for admin review—
404Job not found—
409Job not eligible for dispute—
GET/jobs/statsJob stats
Parameters
NameInRequiredType
windowquerynostring
Responses
StatusDescriptionSchema
200Job stats—
401Unauthorized—
GET/jobs/typesList job types
Responses
StatusDescriptionSchema
200List of job types—
429Rate limited—
GET/jobs/types/{type}/schemaGet job type parameter schema
Parameters
NameInRequiredType
typepathyesstring
Responses
StatusDescriptionSchema
200Parameter schema for the job type—
404Job type not found or not active—
429Rate limited—
GET/jobs/{id}Get job details
Parameters
NameInRequiredType
idpathyesstring
Responses
StatusDescriptionSchema
200Job details—
401Unauthorized—
404Job not found—
POST/jobs/{id}/cancelCancel a job
Parameters
NameInRequiredType
idpathyesstring
Responses
StatusDescriptionSchema
200Job cancelled—
401Unauthorized—
404Job not found—
409Job cannot be cancelled in current status—
GET/jobs/{id}/downloadDownload job output
Parameters
NameInRequiredType
idpathyesstring
Responses
StatusDescriptionSchema
200Output file stream—
400Job has no output available—
401Unauthorized—
404Job or output file not found—
GET/jobs/{id}/logsGet job logs
Parameters
NameInRequiredType
idpathyesstring
Responses
StatusDescriptionSchema
200Job logs—
401Unauthorized—
404Job or logs not found—
GET/jobs/{id}/metricsGet job resource utilization (deprecated alias for /resources)
Parameters
NameInRequiredType
idpathyesstring
Responses
StatusDescriptionSchema
200Job resource utilization series—
401Unauthorized—
404Job not found—
GET/jobs/{id}/resourcesGet job resource utilization
Parameters
NameInRequiredType
idpathyesstring
Responses
StatusDescriptionSchema
200Job resource utilization series—
401Unauthorized—
404Job not found—
GET/jobs/{id}/shareGet share link info
Parameters
NameInRequiredType
idpathyesstring
Responses
StatusDescriptionSchema
200Share link info—
POST/jobs/{id}/shareCreate a public share link for a job output
Parameters
NameInRequiredType
idpathyesstring
Responses
StatusDescriptionSchema
201Share link created—
400Job not complete or no output—
403Plan does not allow sharing or quota exceeded—
404Job not found—
409Job already shared—
DELETE/jobs/{id}/shareRemove a public share link
Parameters
NameInRequiredType
idpathyesstring
Responses
StatusDescriptionSchema
200Share link removed—
404Job or share not found—
GET/jobs/{id}/throughputGet job encode throughput
Parameters
NameInRequiredType
idpathyesstring
Responses
StatusDescriptionSchema
200Job encode-throughput series (fps/speed/frame)—
401Unauthorized—
404Job not found—
GET/jobs/{id}/timingsGet job execution timings
Parameters
NameInRequiredType
idpathyesstring
Responses
StatusDescriptionSchema
200Job timings—
401Unauthorized—
404Job not found—
Models1

Generation model catalog (image.generate / image.edit)

GET/modelsList generation models
Parameters
NameInRequiredType
jobquerynostring
Responses
StatusDescriptionSchema
200List of generation models—
401Unauthorized—
Billing12

Check account balance and usage history

POST/billing/checkout/creditsCreate credit purchase checkout
Request body

application/json

Responses
StatusDescriptionSchema
200Checkout session created—
400Invalid amount—
401Unauthorized—
500Checkout creation failed—
POST/billing/checkout/proCreate Pro subscription checkout
Responses
StatusDescriptionSchema
200Checkout session created—
401Unauthorized—
500Pro plan not configured or checkout creation failed—
GET/billing/historyGet billing history
Parameters
NameInRequiredType
pagequerynostring
limitquerynostring
Responses
StatusDescriptionSchema
200Billing history—
401Unauthorized—
GET/billing/history/:id/pdfDownload invoice PDF
Parameters
NameInRequiredType
idpathyesstring
Responses
StatusDescriptionSchema
302Redirect to Polar invoice PDF—
404Order or invoice not found—
GET/billing/payment-methodsList payment methods
Responses
StatusDescriptionSchema
200Payment methods list—
401Unauthorized—
GET/billing/payment-methods/portal-urlGet customer portal URL
Responses
StatusDescriptionSchema
200Customer portal URL—
401Unauthorized—
404Customer not found—
DELETE/billing/payment-methods/{id}Delete payment method
Parameters
NameInRequiredType
idpathyesstring
Responses
StatusDescriptionSchema
200Payment method deleted—
400Payment method in use—
401Unauthorized—
404Customer or payment method not found—
GET/billing/stateGet unified billing state
Responses
StatusDescriptionSchema
200Billing state—
401Unauthorized—
PATCH/billing/subscriptionManage subscription
Request body

application/json

Responses
StatusDescriptionSchema
200Subscription updated—
400Bad request—
401Unauthorized—
404No subscription found—
GET/billing/transactionsGet transaction history
Parameters
NameInRequiredType
pagequerynostring
limitquerynostring
Responses
StatusDescriptionSchema
200Transaction history—
401Unauthorized—
GET/billing/usageGet usage summary
Parameters
NameInRequiredType
startquerynostring
endquerynostring
Responses
StatusDescriptionSchema
200Usage summary—
400Invalid date—
401Unauthorized—
GET/billing/usage-by-clientGet usage broken down by originating client
Parameters
NameInRequiredType
daysquerynostring
Responses
StatusDescriptionSchema
200Usage grouped by client, busiest first—
401Unauthorized—
Organizations13

Manage organizations and members

GET/orgsList user organizations
Responses
StatusDescriptionSchema
200User organizations list—
401Unauthorized—
POST/orgsCreate organization
Request body

application/json

Responses
StatusDescriptionSchema
201Organization created—
400Validation error—
403Organization limit reached—
409Slug already taken—
GET/orgs/currentGet current organization
Responses
StatusDescriptionSchema
200Organization details retrieved successfully—
401Unauthorized - missing or invalid API key—
404Organization not found—
PATCH/orgs/currentUpdate current organization
Request body

application/json

Responses
StatusDescriptionSchema
200Organization updated successfully—
400Validation error—
403Not the organization owner—
409Slug already taken—
DELETE/orgs/currentDelete current organization
Responses
StatusDescriptionSchema
204Organization deleted successfully—
403Not the organization owner—
GET/orgs/current/callback-secretGet callback signing secret
Responses
StatusDescriptionSchema
200Callback signing secret—
401Unauthorized—
POST/orgs/current/callback-secret/rotateRotate callback signing secret
Responses
StatusDescriptionSchema
200New callback signing secret—
401Unauthorized—
GET/orgs/current/settingsGet org settings
Responses
StatusDescriptionSchema
200Org settings—
401Unauthorized—
PATCH/orgs/current/settingsUpdate org settings
Request body

application/json

Responses
StatusDescriptionSchema
200Settings updated—
400Validation error—
401Unauthorized—
POST/team/inviteInvite team member
Request body

application/json

Responses
StatusDescriptionSchema
200Invitation sent—
400Validation error—
403Insufficient role—
409Already a member or pending invitation—
POST/team/removeRemove team member
Request body

application/json

Responses
StatusDescriptionSchema
200Member removed—
403Insufficient role or cannot remove owner—
404Member not found—
POST/team/revoke-invitationRevoke invitation
Request body

application/json

Responses
StatusDescriptionSchema
200Invitation revoked—
403Insufficient role—
404Invitation not found—
PATCH/team/roleChange member role
Request body

application/json

Responses
StatusDescriptionSchema
200Role updated—
403Insufficient role or cannot change owner—
404Member not found—
API Keys4

Create and manage API keys

GET/api-keysList API keys
Responses
StatusDescriptionSchema
200API keys retrieved successfully—
401Unauthorized—
POST/api-keysCreate API key
Request body

application/json

Responses
StatusDescriptionSchema
201API key created successfully—
401Unauthorized—
PATCH/api-keys/:idUpdate API key
Parameters
NameInRequiredType
idpathyesstring
Request body

application/json

Responses
StatusDescriptionSchema
200API key updated—
400Validation error—
401Unauthorized—
404Not found—
DELETE/api-keys/:idRevoke API key
Parameters
NameInRequiredType
idpathyesstring
Responses
StatusDescriptionSchema
200API key revoked successfully—
401Unauthorized—
404API key not found or already revoked—
Assets9

Upload and manage PSD templates and design assets

GET/assetsList assets
Parameters
NameInRequiredType
kindquerynostring
scopequerynostring
statusquerynostring
lifecyclequerynostring
limitquerynostring
offsetquerynostring
Responses
StatusDescriptionSchema
200Paginated list of assets—
401Unauthorized—
POST/assetsInitialize an asset upload
Request body

application/json (required)

Responses
StatusDescriptionSchema
200Deduplicated — a ready asset with this checksum already exists—
201Pending asset created with presigned upload URL(s)—
401Unauthorized—
413File exceeds the plan's upload size limit—
429Too many uploads in progress—
GET/assets/templatesList system PSD templates
Parameters
NameInRequiredType
limitquerynostring
offsetquerynostring
Responses
StatusDescriptionSchema
200Paginated list of system PSD templates—
401Unauthorized—
GET/assets/{id}Get asset details
Parameters
NameInRequiredType
idpathyesstring
Responses
StatusDescriptionSchema
200Asset details—
401Unauthorized—
404Asset not found or not accessible—
DELETE/assets/{id}Delete an asset
Parameters
NameInRequiredType
idpathyesstring
Responses
StatusDescriptionSchema
200Asset deleted successfully—
401Unauthorized—
403Cannot delete system assets—
404Asset not found—
POST/assets/{id}/completeFinalize an asset upload
Parameters
NameInRequiredType
idpathyesstring
Request body

application/json

Responses
StatusDescriptionSchema
200Asset finalized and ready—
400Multipart completion is missing part etags—
401Unauthorized—
402Storage quota exceeded—
404Asset not found—
409Asset is not in a finalizable state, or the upload was not found in storage—
413Uploaded file exceeds the plan's size limit—
GET/assets/{id}/contentGet asset content (redirect)
Parameters
NameInRequiredType
idpathyesstring
Responses
StatusDescriptionSchema
302Redirect to a presigned download URL—
401Unauthorized—
404Asset not found—
GET/assets/{id}/downloadGet a presigned download URL
Parameters
NameInRequiredType
idpathyesstring
Responses
StatusDescriptionSchema
200Presigned download URL—
401Unauthorized—
404Asset not found—
409Asset is not ready for download—
GET/assets/{id}/previewGet asset thumbnail preview
Parameters
NameInRequiredType
idpathyesstring
Responses
StatusDescriptionSchema
401Unauthorized—
501Not implemented—
Webhooks9

Configure webhook endpoints and view delivery history

GET/webhooks/deliveriesList webhook deliveries
Parameters
NameInRequiredType
endpointIdquerynostring
eventquerynostring
statusquerynostring
jobIdquerynostring
limitquerynointeger
offsetquerynointegernull
Responses
StatusDescriptionSchema
200List of webhook deliveries—
401Unauthorized—
POST/webhooks/deliveries/{id}/retryRetry a failed webhook delivery
Parameters
NameInRequiredType
idpathyesstring
Responses
StatusDescriptionSchema
200Delivery re-enqueued for retry—
401Unauthorized—
404Delivery or endpoint not found—
409Delivery is not in a retryable state—
GET/webhooks/endpointsList webhook endpoints
Responses
StatusDescriptionSchema
200List of webhook endpoints—
401Unauthorized—
POST/webhooks/endpointsCreate webhook endpoint
Request body

application/json

Responses
StatusDescriptionSchema
201Endpoint created. Signing secret shown in plaintext (only time it is visible).—
400Invalid URL or events—
401Unauthorized—
409Maximum endpoints per organization reached—
GET/webhooks/endpoints/{id}Get webhook endpoint
Parameters
NameInRequiredType
idpathyesstring
Responses
StatusDescriptionSchema
200Webhook endpoint—
401Unauthorized—
404Endpoint not found—
PATCH/webhooks/endpoints/{id}Update webhook endpoint
Parameters
NameInRequiredType
idpathyesstring
Request body

application/json

Responses
StatusDescriptionSchema
200Endpoint updated—
400Invalid URL or events—
401Unauthorized—
404Endpoint not found—
DELETE/webhooks/endpoints/{id}Delete webhook endpoint
Parameters
NameInRequiredType
idpathyesstring
Responses
StatusDescriptionSchema
204Endpoint deleted—
401Unauthorized—
404Endpoint not found—
POST/webhooks/endpoints/{id}/secretRotate webhook signing secret
Parameters
NameInRequiredType
idpathyesstring
Responses
StatusDescriptionSchema
200Secret rotated. New signing secret shown in plaintext (only time it is visible).—
401Unauthorized—
404Endpoint not found—
409Secret was rotated less than 24 hours ago—
POST/webhooks/endpoints/{id}/testSend test webhook event
Parameters
NameInRequiredType
idpathyesstring
Responses
StatusDescriptionSchema
200Test event sent—
401Unauthorized—
404Endpoint not found—
429Rate limited (max 10 test events per minute)—
Upload Sessions4
GET/upload-sessions/{token}Get upload session state
Parameters
NameInRequiredType
tokenpathyesstring
Responses
StatusDescriptionSchema
200Session state (active or done)—
404Unknown token—
410Session expired—
POST/upload-sessions/{token}/doneMark an upload session done
Parameters
NameInRequiredType
tokenpathyesstring
Responses
StatusDescriptionSchema
200Session marked done—
404Unknown token—
410Session expired or already done—
POST/upload-sessions/{token}/filesInitialize a file upload against a session
Parameters
NameInRequiredType
tokenpathyesstring
Request body

application/json (required)

Responses
StatusDescriptionSchema
200Deduplicated — a ready asset with this checksum already exists—
201Pending asset created with presigned upload URL(s)—
403Session has reached its file cap—
404Unknown token—
410Session expired or no longer active—
413File exceeds the org's plan upload size limit—
POST/upload-sessions/{token}/files/{assetId}/completeFinalize a file upload against a session
Parameters
NameInRequiredType
tokenpathyesstring
assetIdpathyesstring
Request body

application/json

Responses
StatusDescriptionSchema
200Asset finalized and ready—
400Multipart completion is missing part etags—
404Unknown token, or assetId not tracked by this session—
409Asset is not in a finalizable state, or the upload was not found in storage—
410Session expired or no longer active—
413Uploaded file exceeds the org's plan size limit—

Try it

Developer reference

Base URLhttps://api.rendobar.com
Rate limit

Free: 120 API requests/min; Pro ($9/mo): 600 API requests/min

Key endpoints
  • POST/jobs
  • GET/jobs/{id}

Changelog

Spec version1.0.0
Tracked paths59
  • Aug 2026gained an OpenAPI spec, official SDKs and a pricing page
  • Sep 2026content changed

Tracking since Sep 2026. See every tracked change ↗ ·Subscribe with RSS ↗