RPD Create API Documentation

Integrate AI content generation into your applications. Generate images, videos, avatars, and audio through a single unified API.

v1.0.0Base URL: https://api.rpdcreate.com

Getting Started

The RPD Create API lets you programmatically generate AI content using 50+ cataloged models across current provider integrations, including Kling, Google Veo, HeyGen, OpenAI Images, Stability AI, and more. All through a single unified API.

To get started, sign up for an account, generate an API key from Settings, and make your first generation request. Every request returns a generation ID you can poll for status and output URLs.

Authentication

The API supports two authentication methods. Use API keys for server-to-server integrations and Bearer tokens for browser-based applications.

API Key

Generate an API key from your dashboard at Settings > API Keys. Pass it via the X-API-KEY header.

curl https://api.rpdcreate.com/v1/credits/balance \
  -H "X-API-KEY: rpd_sk_your_api_key_here"

Bearer Token

For browser-based apps using Clerk authentication, pass the session token as a Bearer token in the Authorization header.

curl https://api.rpdcreate.com/v1/credits/balance \
  -H "Authorization: Bearer your_clerk_session_token"

Quick Start

Generate your first AI video in three steps: create a generation, poll for status, then download the output.

Step 1 — Create a generation

curl -X POST https://api.rpdcreate.com/v1/generations \
  -H "X-API-KEY: rpd_sk_your_key" \
  -H "Content-Type: application/json" \
  -d '{
    "type": "text2video",
    "provider": "kling",
    "model": "kling-3.0",
    "prompt": "A golden retriever running through a sunflower field, cinematic lighting",
    "params": {
      "duration": 5,
      "aspectRatio": "16:9"
    }
  }'
{
  "success": true,
  "data": {
    "id": "a1b2c3d4-5678-90ab-cdef-1234567890ab",
    "status": "queued",
    "type": "text2video",
    "provider": "kling",
    "model": "kling-3.0",
    "creditsCost": 10,
    "createdAt": "2026-03-20T12:00:00Z"
  }
}

Step 2 — Poll for status

curl https://api.rpdcreate.com/v1/generations/a1b2c3d4-5678-90ab-cdef-1234567890ab \
  -H "X-API-KEY: rpd_sk_your_key"

Step 3 — Download output

When status is "completed", the outputUrls array contains download links for your generated content. URLs are valid for 24 hours.

Endpoints Overview

All API endpoints are prefixed with the base URL https://api.rpdcreate.com. The full OpenAPI spec is available at /openapi.json.

MethodPathDescriptionAuth
POST/v1/generationsCreate a generationRequired
GET/v1/generationsList your generationsRequired
GET/v1/generations/:idGet generation statusRequired
DELETE/v1/generations/:idCancel a generationRequired
POST/v1/generations/compareCompare models side-by-sideRequired
POST/v1/batchBatch generationRequired
GET/v1/modelsList available modelsOptional
POST/v1/models/recommendGet model recommendationsOptional
GET/v1/credits/balanceCheck credit balanceRequired
POST/v1/credits/estimateEstimate generation costRequired
POST/v1/files/upload-urlGet presigned upload URLRequired
POST/v1/files/confirmConfirm file uploadRequired
POST/v1/prompts/enhanceAI prompt enhancementRequired
GET/v1/exploreBrowse public galleryOptional
POST/v1/explore/:id/likeToggle likeRequired
GET/v1/social/profile/:userIdGet user profileOptional
POST/v1/social/follow/:userIdToggle followRequired
GET/v1/collectionsList collectionsRequired
POST/v1/collectionsCreate collectionRequired
GET/v1/templatesList templatesOptional
GET/v1/notificationsList notificationsRequired
POST/v1/billing/checkoutCreate checkout sessionRequired
POST/v1/billing/portalOpen billing portalRequired
GET/v1/webhooksList webhooksRequired
POST/v1/webhooksCreate webhookRequired
GET/healthHealth checkNone

Generations

Generations are the core resource. Create a generation to produce AI content, then poll for status until completion. Supported types include text2image, image2image, text2video, image2video, video2video, avatar, animation, upscale, extend, effect, audio, and motion_transfer.

Create Generation

POST /v1/generations
Content-Type: application/json

{
  "type": "text2image",       // Required — generation type
  "provider": "stability",    // Required — provider name
  "model": "sd3.5-turbo",     // Required — model ID
  "prompt": "...",             // Prompt text
  "negativePrompt": "...",    // Negative prompt (optional)
  "inputImageUrl": "...",     // For image2image, image2video (optional)
  "inputVideoUrl": "...",     // For video2video (optional)
  "params": {                 // Generation parameters (optional)
    "width": 1024,
    "height": 1024,
    "duration": 5,
    "aspectRatio": "16:9",
    "style": "cinematic",
    "seed": 42
  }
}

Generation Lifecycle

queuedprocessingcompleted

If something goes wrong, the status becomes failed and credits are automatically refunded. You can also cancel queued or processing generations.

Models

Browse available models with GET /v1/models. Each model includes its provider, supported types, quality tier, speed rating, and credit cost. Use the recommend endpoint to get AI-powered suggestions based on your prompt.

GET /v1/models?type=text2video

// Response includes:
// - id, provider, displayName, description
// - supportedTypes, speed, quality
// - creditCostPerSecond, creditCostPerImage
// - supportsAudio

Credits

Every generation costs credits. Check your balance, estimate costs before generating, and purchase credit packs or upgrade your plan for more. Failed generations are always refunded automatically.

// Check balance
GET /v1/credits/balance

// Estimate cost before generating
POST /v1/credits/estimate
{ "type": "text2video", "provider": "kling", "model": "kling-3.0", "duration": 5 }

// Response: { "credits": 10, "breakdown": { ... } }

Files

Upload input files (images, videos, audio) for use in generations. The upload flow uses presigned URLs: request a URL, upload the file directly to storage, then confirm.

// 1. Get upload URL
POST /v1/files/upload-url
{ "filename": "input.png", "contentType": "image/png" }

// 2. Upload file to the returned URL (PUT request)
// 3. Confirm upload
POST /v1/files/confirm
{ "fileId": "..." }

SDKs

Official SDKs are coming soon. In the meantime, you can use the REST API directly with any HTTP client. The API follows standard REST conventions and returns JSON responses.

TypeScript / Node.js

Coming soon

Python

Coming soon

Go

Coming soon

Rate Limits

Rate limits are applied per API key / user session. Generation endpoints have stricter limits to prevent abuse.

PlanGeneral APIGenerations
Free60 req/min5 req/min
Creator120 req/min15 req/min
Pro300 req/min30 req/min
Business / Enterprise600 req/min60 req/min

When rate limited, the API returns 429 Too Many Requests. The Retry-After header indicates when you can retry.

Error Codes

All errors follow a consistent format with a machine-readable code and human-readable message.

{
  "success": false,
  "error": {
    "code": "INSUFFICIENT_CREDITS",
    "message": "You need 10 credits but only have 3.",
    "details": null
  }
}
CodeStatusDescription
VALIDATION_ERROR400Request body failed validation. Check the details field for specifics.
CONTENT_VIOLATION400Prompt violates content policy.
UNAUTHORIZED401Missing or invalid authentication.
INSUFFICIENT_CREDITS402Not enough credits. Purchase more or upgrade your plan.
FORBIDDEN403You do not have permission to access this resource.
NOT_FOUND404The requested resource was not found.
RATE_LIMITED429Too many requests. Back off and retry.
QUEUE_ERROR500Failed to queue generation. Credits are auto-refunded.
INTERNAL_ERROR500Unexpected server error.

Webhooks

Instead of polling, you can register webhook endpoints to receive real-time notifications when generations complete or fail. Each webhook delivery includes an HMAC signature for verification.

Supported Events

  • generation.completed — Generation finished successfully with output URLs
  • generation.failed — Generation failed (credits auto-refunded)
  • credits.low — Credit balance dropped below threshold

Webhook Payload

{
  "event": "generation.completed",
  "timestamp": "2026-03-20T12:05:00Z",
  "data": {
    "id": "a1b2c3d4-...",
    "status": "completed",
    "outputUrls": ["https://..."],
    "creditsCost": 10
  }
}

Signature Verification

Every webhook delivery includes an X-Webhook-Signature header. Compute HMAC-SHA256 of the raw request body using your webhook secret and compare.

Changelog

v1.0.0March 2026
  • Initial API release
  • 50+ cataloged models across 5 provider integrations
  • Generations, models, credits, files, prompts, explore, social, collections, templates, notifications, billing, webhooks
  • Side-by-side model comparison
  • Batch generation
  • AI-powered prompt enhancement