API Reference v1
Complete REST API documentation for Influencer Studio. Generate images, videos, and manage your account programmatically.
Quick Links
Authentication
All API requests require authentication using a Bearer token. Include your API key in the Authorization header:
Authorization: Bearer YOUR_API_KEY You can generate API keys from your account settings.
Base URL
https://influencerstudio.com/api/v1 Influencers
/api/v1/influencersList influencers
Get a list of all influencers belonging to your team with their basic information and generation readiness status.
Responses
curl -X GET "https://influencerstudio.com/api/v1/influencers" \
-H "Authorization: Bearer YOUR_API_KEY"[
{
"id": "clxxxx_influencer_001",
"name": "Sofia Martinez",
"face_image": "https://cdn.influencerstudio.com/influencers/sofia_face.jpg",
"best_full_image": "https://cdn.influencerstudio.com/influencers/sofia_full.jpg",
"training_status": "completed",
"ready_for_generation": true,
"created_at": "2026-01-15T14:30:00.000Z"
},
{
"id": "clxxxx_influencer_002",
"name": "Marcus Chen",
"face_image": "https://cdn.influencerstudio.com/influencers/marcus_face.jpg",
"best_full_image": "https://cdn.influencerstudio.com/influencers/marcus_full.jpg",
"training_status": "training",
"ready_for_generation": false,
"created_at": "2026-02-01T09:15:00.000Z"
}
]/api/v1/influencers/createCreate influencer
Create a new influencer from a set of images. The first image will be used as the face image. Images are automatically analyzed for pose and content. Costs 250 credits.
Request Body
| Field | Type | Description |
|---|---|---|
name | string | Name for the influencer (auto-generated if not provided) |
image_urls* | array | Array of image URLs (1-20 images). First image will be used as face image. |
workspace_id | string | Optional workspace ID to associate the influencer with |
Responses
curl -X POST "https://influencerstudio.com/api/v1/influencers/create" \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"name": "Sofia Martinez",
"image_urls": [
"https://example.com/photo1.jpg",
"https://example.com/photo2.jpg",
"https://example.com/photo3.jpg",
"https://example.com/photo4.jpg",
"https://example.com/photo5.jpg"
]
}'{
"influencer_id": "clxxxx_influencer_003",
"name": "Sofia Martinez",
"status": "completed",
"ready_for_generation": true,
"credits_used": 250
}/api/v1/influencers/generateGenerate influencer images
Generate images of a trained influencer using Studio 1. Provide high-level parameters like outfit, location, and product placement instead of crafting detailed prompts.
Request Body
| Field | Type | Description |
|---|---|---|
influencer_id* | string | ID of a trained influencer |
prompt | string | Optional text prompt to guide the generation (e.g., 'professional headshot', 'smiling') |
outfit_image | string | URL of an outfit image - the influencer will be dressed in this outfit |
location_image | string | URL of a location/background image - the influencer will be placed in this setting |
reference_pose_image | string | URL of a reference pose image - the influencer will match this pose |
product_image | string | URL of a product image - the product will be placed naturally in the scene |
camera_style | string2 options available default: pro | Camera style: 'pro' for studio quality or 'smartphone' for casual social media style |
batch | integer default: 1 | Number of images to generate (1-4) |
settings | object | - |
settings.aspect_ratio | string default: 1:1 | Image aspect ratio |
workspace_id | string | Workspace ID to save results |
Responses
curl -X POST "https://influencerstudio.com/api/v1/influencers/generate" \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"influencer_id": "your-influencer-id",
"prompt": "professional portrait photo, smiling",
"outfit_image": "https://example.com/outfit.jpg",
"location_image": "https://example.com/beach-background.jpg",
"reference_pose_image": "https://example.com/pose-reference.jpg",
"product_image": "https://example.com/iphone.jpg",
"camera_style": "pro",
"batch": 2,
"settings": {
"aspect_ratio": "1:1"
}
}'{
"generation_id": "clxxxx1234567890",
"status": "queued",
"images": [
"https://cdn.influencerstudio.com/generations/influencer_001.jpg",
"https://cdn.influencerstudio.com/generations/influencer_002.jpg"
],
"estimated_time": 30,
"credits_used": 48
}/api/v1/influencers/videoGenerate influencer video
Generate a video of a trained influencer using AI-powered planning and Veo 3.1 Quality. Provide a video concept and optional images for product, outfit, and location. The system uses OpenAI to plan the video frames and motion, generates the frames with Studio 1, and creates the video with Veo 3.1 Quality including native audio. If the influencer has a trained voice, voice conversion is automatically applied.
Request Body
| Field | Type | Description |
|---|---|---|
influencer_id* | string | ID of a trained influencer |
prompt* | string | Video concept/description (e.g., 'influencer walking on beach, picks up product and shows it to camera') |
dialog | string | Optional script/dialog for the video (used for audio context and motion planning) |
product_image | string | URL of a product image to feature in the video |
outfit_image | string | URL of an outfit image - the influencer will be dressed in this outfit |
location_image | string | URL of a location/background image - the influencer will be placed in this setting |
aspect_ratio | string2 options available default: 9:16 | Video aspect ratio (Veo 3.1 only supports 16:9 and 9:16) |
workspace_id | string | Workspace ID to save results |
Responses
curl -X POST "https://influencerstudio.com/api/v1/influencers/video" \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"influencer_id": "your-influencer-id",
"prompt": "Influencer walks toward camera on a beach, picks up a product, and shows it while smiling",
"dialog": "Hey everyone! Check out this amazing new product!",
"product_image": "https://example.com/product.jpg",
"outfit_image": "https://example.com/summer-outfit.jpg",
"location_image": "https://example.com/tropical-beach.jpg",
"aspect_ratio": "9:16"
}'{
"generation_id": "clxxxx_video_001",
"status": "queued",
"first_frame_url": "https://cdn.influencerstudio.com/generations/frame_first.jpg",
"last_frame_url": "https://cdn.influencerstudio.com/generations/frame_last.jpg",
"video_url": null,
"estimated_time": 180,
"credits_used": 328,
"has_voice_conversion": true
}Images
/api/v1/images/generateGenerate images
Generate images from a text prompt with optional influencer and settings
Request Body
| Field | Type | Description |
|---|---|---|
prompt* | string | Text description of the image to generate. |
negative_prompt | string | Things to avoid in the generated image |
model | string48 options available default: studio-1 | AI model to use for generation |
influencer_id | string | Optional: ID of a trained influencer. If an influencer is used, studio-1 model will be used. |
batch | integer default: 1 | Number of images to be generated. |
settings | object | - |
settings.aspect_ratio | string default: 1:1 | Image aspect ratio |
settings.num_inference_steps | integer default: 28 | - |
init_image | string | Optional: URL of an initial image |
webhook | string | - |
workspace_id | string | - |
Responses
curl -X POST "https://influencerstudio.com/api/v1/images/generate" \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"prompt": "A professional headshot of a person in business attire, studio lighting",
"model": "studio-1",
"batch": 2,
"settings": {
"aspect_ratio": "1:1"
}
}'{
"generation_id": "clxxxx1234567890",
"status": "queued",
"images": [
"https://cdn.influencerstudio.com/generations/img_001.jpg",
"https://cdn.influencerstudio.com/generations/img_002.jpg"
],
"estimated_time": 30,
"credits_used": 48
}/api/v1/images/editEdit image
Edit an existing image using AI inpainting with a text prompt
Request Body
| Field | Type | Description |
|---|---|---|
image_url* | string | Public URL of the image to edit |
prompt* | string | Description of the edits to make to the image |
additional_images | array | Optional: Additional reference images for context |
model | string4 options available default: SEEDREAM | AI model for editing |
webhook | string | Optional: Webhook URL to receive completion notifications |
workspace_id | string | Optional: Specific workspace ID |
Responses
curl -X POST "https://influencerstudio.com/api/v1/images/edit" \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"image_url": "https://example.com/image.jpg",
"prompt": "change the background to a beach",
"model": "SEEDREAM"
}'{
"generation_id": "clxxxx1234567890",
"status": "queued",
"image_id": "clxxxx0987654321",
"estimated_time": 15,
"credits_used": 18
}/api/v1/images/face-swapSwap faces in images
Swap faces between a source image and target image
Request Body
| Field | Type | Description |
|---|---|---|
source_image* | string | Public URL of the source face image - the face that will be swapped into the target |
target_image* | string | Public URL of the target image - the image where the face will be swapped |
generation_id | string | Optional: Existing generation ID to add this face swap to |
workspace_id | string | Optional: Specific workspace ID |
Responses
curl -X POST "https://influencerstudio.com/api/v1/images/face-swap" \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"source_image": "https://example.com/face.jpg",
"target_image": "https://example.com/body.jpg"
}'{
"generation_id": "clxxxx1234567890",
"status": "queued",
"images": [
"https://cdn.influencerstudio.com/generations/faceswap_001.jpg"
],
"estimated_time": 20,
"credits_used": 8
}Videos
/api/v1/videos/generateGenerate video
Generate a video from a text prompt with optional first frame image
Request Body
| Field | Type | Description |
|---|---|---|
prompt* | string | Text description of the video to generate. |
model | string64 options available default: kling-video/v2.6/pro/text-to-video | Video generation model |
settings | object | - |
settings.aspect_ratio | string default: 16:9 | Video aspect ratio. Options: '16:9', '9:16', '1:1'. Default: '16:9' |
settings.duration | integer default: 5 | Video duration in seconds. Range: 1-10, Default: 5 |
first_frame_image | string | Optional: URL of image to use as first frame |
webhook | string | Optional: Webhook URL to receive completion notifications |
workspace_id | string | Optional: Specific workspace ID |
Responses
curl -X POST "https://influencerstudio.com/api/v1/videos/generate" \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"prompt": "A person walking through a city, cinematic",
"model": "kling-video/v2.6/pro/text-to-video",
"settings": {
"aspect_ratio": "16:9",
"duration": 5
}
}'{
"generation_id": "clxxxx1234567890",
"status": "queued",
"videos": [
"https://cdn.influencerstudio.com/generations/video_001.mp4"
],
"estimated_time": 120,
"credits_used": 50
}/api/v1/videos/lipsyncCreate lip sync video
Generate a lip-synced video by synchronizing video with audio
Request Body
| Field | Type | Description |
|---|---|---|
video_url* | string | Public URL of the video file to lip-sync |
audio_url* | string | Public URL of the audio file to sync with |
model | string3 options available default: sync-lipsync/v2/pro | Lip-sync model to use |
generation_id | string | Optional: Existing generation ID to add this lip-sync to |
workspace_id | string | Optional: Specific workspace ID |
Responses
curl -X POST "https://influencerstudio.com/api/v1/videos/lipsync" \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"video_url": "https://example.com/video.mp4",
"audio_url": "https://example.com/audio.mp3",
"model": "sync-lipsync/v2/pro"
}'{
"generation_id": "clxxxx1234567890",
"status": "queued",
"estimated_time": 60,
"credits_used": 25
}3D Models
/api/v1/models-3d/generateGenerate 3D model
Generate a 3D model from a text prompt using Meshy v6.
Request Body
| Field | Type | Description |
|---|---|---|
prompt* | string | Text description of the 3D model to generate. |
init_image | string | Optional: Image URL for image-to-3D generation |
model | string4 options available default: meshy/v6/text-to-3d | Model ID for 3D generation |
settings | object | Model settings |
settings.mode | string2 options available | Generation mode. 'preview' is faster, 'full' is higher quality. Default: full |
settings.art_style | string2 options available | Art style for the 3D model. Default: realistic |
settings.topology | string2 options available | Mesh topology. 'quad' is better for animation/rigging. Default: triangle |
settings.target_polycount | integer | Target polygon count. Range: 1000-100000. Default: 30000 |
settings.symmetry_mode | string3 options available | Symmetry mode. 'auto' detects automatically. Default: auto |
settings.should_remesh | boolean | Enable remeshing for cleaner topology. Default: true |
settings.is_a_t_pose | boolean | Generate character in A/T pose for rigging. Default: false |
settings.enable_pbr | boolean | Generate PBR texture maps (normal, roughness, metallic). Default: false |
settings.enable_prompt_expansion | boolean | Expand prompt with AI for better results. Default: false |
webhook | string | Optional: Webhook URL to receive completion notifications |
workspace_id | string | Optional: Specific workspace ID |
Responses
curl -X POST "https://influencerstudio.com/api/v1/models-3d/generate" \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"prompt": "A medieval knight in full armor",
"settings": {
"mode": "preview",
"art_style": "realistic",
"topology": "quad",
"target_polycount": 50000,
"symmetry_mode": "off",
"should_remesh": true,
"is_a_t_pose": true,
"enable_pbr": true,
"enable_prompt_expansion": true
},
"model": "meshy/v6/text-to-3d"
}'{
"generation_id": "clxxxx1234567890",
"status": "queued",
"model_url": "https://cdn.influencerstudio.com/generations/model_001.glb",
"estimated_time": 180,
"credits_used": 100
}Text
/api/v1/text/generateGenerate text
Generate text using Venice AI private and uncensored models.
Request Body
| Field | Type | Description |
|---|---|---|
prompt* | string | The text prompt to generate a response for |
model | string3 options available default: venice-uncensored | AI model to use. Default: venice-uncensored |
settings | object | Generation settings: temperature, max_tokens, system_prompt |
settings.temperature | number | Controls randomness. Lower = more focused, Higher = more creative. Range: 0-2. Default: 0.7 |
settings.max_tokens | integer | Maximum tokens to generate. Range: 1-4000. Default: 1000 |
settings.system_prompt | string | Optional system prompt to set AI behavior and context |
workspace_id | string | Optional: Specific workspace ID |
Responses
curl -X POST "https://influencerstudio.com/api/v1/text/generate" \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"prompt": "Write a creative story about a dog",
"model": "venice-uncensored",
"settings": {
"temperature": 0.5,
"max_tokens": 2000,
"system_prompt": "You are a helpful teacher who explains complex topics simply"
}
}'{
"generation_id": "clxxxx1234567890",
"text": "Once upon a time, there was a fluffy golden retriever named Max who loved to chase butterflies in the meadow...",
"model": "llama-3.3-70b",
"usage": {
"prompt_tokens": 25,
"completion_tokens": 150,
"total_tokens": 175
}
}Generations
/api/v1/generations/{id}/statusGet generation status
Poll the status of a generation and get result URLs when complete
Responses
curl -X GET "https://influencerstudio.com/api/v1/generations/{id}/status" \
-H "Authorization: Bearer YOUR_API_KEY"{
"generation_id": "clxxxx1234567890",
"status": "completed",
"result_urls": [
"https://cdn.influencerstudio.com/generations/img_001.jpg",
"https://cdn.influencerstudio.com/generations/img_002.jpg"
],
"credits_used": 48,
"total_items": 2,
"completed_items": 2,
"failed_items": 0,
"items": [
{
"id": "clxxxx_img_001",
"type": "image",
"status": "COMPLETED",
"url": "https://cdn.influencerstudio.com/generations/img_001.jpg",
"created_at": "2026-02-03T10:00:00.000Z",
"updated_at": "2026-02-03T10:00:30.000Z"
},
{
"id": "clxxxx_img_002",
"type": "image",
"status": "COMPLETED",
"url": "https://cdn.influencerstudio.com/generations/img_002.jpg",
"created_at": "2026-02-03T10:00:00.000Z",
"updated_at": "2026-02-03T10:00:35.000Z"
}
]
}Billing
/api/v1/billing/plansGet available credit plans
Returns all available one-time credit purchase plans
Responses
curl -X GET "https://influencerstudio.com/api/v1/billing/plans" \
-H "Authorization: Bearer YOUR_API_KEY"[
{
"id": "plan_starter",
"name": "Starter Pack",
"description": "500 credits for basic usage",
"storeId": "store_123",
"variants": [
{
"id": "497267",
"active": true,
"price": 9.99,
"currency": "USD",
"interval": "one_time",
"interval_count": 1
}
]
}
]/api/v1/billing/creditsGet current credit balance
Returns the total credit balance for the authenticated team
Responses
curl -X GET "https://influencerstudio.com/api/v1/billing/credits" \
-H "Authorization: Bearer YOUR_API_KEY"1500/api/v1/billing/top-upPurchase credits
Create a Stripe checkout session to purchase credits (one-time purchases only)
Request Body
| Field | Type | Description |
|---|---|---|
plan_id* | string | Plan ID from GET /api/v1/billing/plans |
variant_id | string | Optional: Specific variant ID |
success_url | string | Optional: URL to redirect after successful payment |
cancel_url | string | Optional: URL to redirect if payment is cancelled |
Responses
curl -X POST "https://influencerstudio.com/api/v1/billing/top-up" \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"plan_id": "497267"
}'{
"checkoutUrl": "https://checkout.stripe.com/c/pay/cs_test_xxxxx"
}