The Programmatic Image & Cinema API for Autonomous AI Bots
Equip your social media bots, autonomous agent swarms, and AI pipelines with identity-locked 4K character generation. Connect in seconds via standard REST API, OpenAPI 3.1, or Model Context Protocol (MCP).
Tokens prefixed with ibc_live_.... Only hashes are stored; raw keys are never logged or exposed.
Connect Claude Desktop, Cursor, or Windsurf directly to generate personas and photos with native LLM tool-calling.
Built on Google Cloud Run auto-scaling with dedicated sliding-window rate limiting to handle burst multi-agent swarms.
Autonomous agents can check balances and request instant checkout session URLs without sharing credit cards.
How to Connect Your Bot in 3 Minutes
Zero complicated SDK setups. Plain HTTPS REST requests with standard JSON payloads.
Generate Your API Key
Log in to IBCreator with Google, visit your Profile page, and click Create API Key. Copy your raw ibc_live_... key securely.
Fund Compute Credits
Start with a $9 Trial Pack (120 credits) or subscribe to a monthly Creator plan on the Pricing page. Credits are deducted per generated image (4 cr Basic / 10 cr Pro 4K).
Trigger Photoshoots
Send a POST /api/v1/shoots request with your prompt, persona ID, and aspect ratios. Poll progress or receive webhook callbacks with 4K URLs.
Ready-to-Run Code Snippets
Copy and paste working client integrations into your bot or automation scripts.
curl -X POST https://ibcreator.app/api/v1/shoots \
-H "Authorization: Bearer ibc_live_your_api_key_here" \
-H "Content-Type: application/json" \
-d '{
"prompt": "Golden hour editorial portrait in Parisian cafe terrace, wearing cashmere knit",
"tier": "basic",
"aspect_ratios": ["1:1", "4:5", "9:16"],
"variation_count": 4,
"strategy": "reframe",
"webhook_url": "https://your-bot-server.com/webhooks/ibcreator"
}'curl -X POST https://ibcreator.app/api/v1/videos \
-H "Authorization: Bearer ibc_live_your_api_key_here" \
-H "Content-Type: application/json" \
-d '{
"persona_id": "pers_abc123",
"preset": "dance",
"camera_motion": "tracking_steadicam",
"motion_intensity": "energetic",
"prompt": "Dynamic TikTok choreography in neon cyberpunk studio, locked facial likeness",
"aspect_ratio": "9:16",
"duration_seconds": 8,
"seamless_loop": true,
"webhook_url": "https://your-bot-server.com/webhooks/video"
}'import os, httpx, time
API_KEY = os.environ.get("IBCREATOR_API_KEY", "ibc_live_...")
HEADERS = {"Authorization": f"Bearer {API_KEY}", "Content-Type": "application/json"}
BASE_URL = "https://ibcreator.app/api/v1"
# 1. Check account credit balance
with httpx.Client(base_url=BASE_URL, headers=HEADERS, timeout=30.0) as client:
account = client.get("/account").json()
print(f"Credits Remaining: {account['credits']['total']}")
# 2. Launch photoshoot
shoot_payload = {
"prompt": "Modern streetwear lookbook in Tokyo Shibuya crossing, moody neon reflections",
"tier": "basic",
"aspect_ratios": ["4:5", "9:16"],
"variation_count": 2
}
shoot = client.post("/shoots", json=shoot_payload).json()
shoot_id = shoot["id"]
print(f"Photoshoot initiated: {shoot_id}")
# 3. Poll for completed 4K assets
for _ in range(30):
status = client.get(f"/shoots/{shoot_id}").json()
if status["status"] in ("completed", "partial"):
print("Render complete! Asset URLs:")
for v in status["variations"]:
print(f"- {v['title']}: {v['image_url']}")
break
time.sleep(3)claude_desktop_config.json){
"mcpServers": {
"ibcreator": {
"command": "npx",
"args": ["-y", "@modelcontextprotocol/server-fetch", "https://ibcreator.app/api/v1/mcp"],
"env": {
"IBCREATOR_API_KEY": "ibc_live_your_api_key_here"
}
}
}
}Available REST Endpoints
All endpoints respond with standard JSON, UTF-8 encoded.
| Method | Endpoint | Description | Scopes Required |
|---|---|---|---|
| GET | /api/v1/personas | List existing AI influencer identity vaults with reference turnaround counts. | read:personas |
| POST | /api/v1/personas | Register a new identity-locked character with multi-angle reference photos. | write:personas |
| POST | /api/v1/shoots | Launch multi-ratio photoshoot variation batch with prompt, tier, and webhook URL. | write:shoots |
| GET | /api/v1/shoots/:id | Poll photoshoot progress and retrieve generated 4K JPEG/PNG download URLs. | read:shoots |
| POST | /api/v1/videos | Animate photos or personas with dynamic motion (dance choreography, UGC talking vlog, catwalk) and camera styles. | write:videos |
| GET | /api/v1/videos | List recently generated animated portrait, dance, and UGC video clips with pagination. | read:videos |
| GET | /api/v1/videos/:id | Poll video status, duration, and retrieve completed MP4 download and thumbnail URLs. | read:videos |
| GET | /api/v1/account | Query remaining subscription credits, bonus credits, plan tier, and quotas. | read:account |
| POST | /api/v1/account/topup | Generate automated Stripe checkout link for 120, 500, or 1,200 compute credits. | write:account |
| GET | /api/v1/openapi.json | Machine-readable OpenAPI 3.1.0 specification for Swagger, Postman, and LLMs. | Public |
| GET | /api/v1/mcp | Model Context Protocol (MCP) server definition for Claude, Cursor, and Windsurf. | Public |
Frequently Asked Questions
How does IBCreator keep character faces consistent for bots?
Traditional text-to-image generators guess faces from prompts or single seeds, resulting in noticeable drift. IBCreator anchors generations to a 6-angle Persona Vault. When your bot triggers POST /api/v1/shoots with a persona_id, all multi-angle biometric vectors condition the diffusion model directly.
How do webhooks work?
When you include a "webhook_url" in your shoot payload, IBCreator sends an HTTP POST request to your endpoint as soon as the batch finishes rendering. The payload contains the batch status, execution duration, and array of completed image download URLs.
Can autonomous agents handle their own Stripe payments?
Yes. Agents can monitor their remaining credits via GET /api/v1/account. If credits fall below a threshold (e.g. 50 credits), the bot calls POST /api/v1/account/topup with pack size (120, 500, or 1200) to receive a pre-filled Stripe checkout session URL, which the bot can send to its human operator or payment card agent.
What happens if my bot exceeds the rate limit?
IBCreator enforces a sliding-window rate limit of 120 requests per minute per API key. If your bot exceeds this threshold, the API responds with HTTP 429 Too Many Requests and a Retry-After: 60 header. Enterprise clients requiring higher burst limits can request custom quota allocation.
Ready to Build Autonomous AI Influencer Pipelines?
Generate your API key in seconds and start batch-shooting identity-locked content today.