AUTONOMOUS AGENT & BOT API • OPENAPI 3.1 & MCP SERVER

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).

SHA-256 Scoped Keys

Tokens prefixed with ibc_live_.... Only hashes are stored; raw keys are never logged or exposed.

Model Context Protocol (MCP)

Connect Claude Desktop, Cursor, or Windsurf directly to generate personas and photos with native LLM tool-calling.

120 req/min Concurrency

Built on Google Cloud Run auto-scaling with dedicated sliding-window rate limiting to handle burst multi-agent swarms.

Automated Stripe Top-Up

Autonomous agents can check balances and request instant checkout session URLs without sharing credit cards.

Developer Quickstart

How to Connect Your Bot in 3 Minutes

Zero complicated SDK setups. Plain HTTPS REST requests with standard JSON payloads.

Step 01

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.

Step 02

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).

Step 03

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.

Multi-Language Implementation

Ready-to-Run Code Snippets

Copy and paste working client integrations into your bot or automation scripts.

cURL (Trigger Photoshoot)
bash
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 (Dance & UGC Video Animation)
bash
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"
  }'
Python (httpx / requests)
python
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 / Cursor MCP Config (claude_desktop_config.json)
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"
      }
    }
  }
}
API Catalog

Available REST Endpoints

All endpoints respond with standard JSON, UTF-8 encoded.

MethodEndpointDescriptionScopes Required
GET/api/v1/personasList existing AI influencer identity vaults with reference turnaround counts.read:personas
POST/api/v1/personasRegister a new identity-locked character with multi-angle reference photos.write:personas
POST/api/v1/shootsLaunch multi-ratio photoshoot variation batch with prompt, tier, and webhook URL.write:shoots
GET/api/v1/shoots/:idPoll photoshoot progress and retrieve generated 4K JPEG/PNG download URLs.read:shoots
POST/api/v1/videosAnimate photos or personas with dynamic motion (dance choreography, UGC talking vlog, catwalk) and camera styles.write:videos
GET/api/v1/videosList recently generated animated portrait, dance, and UGC video clips with pagination.read:videos
GET/api/v1/videos/:idPoll video status, duration, and retrieve completed MP4 download and thumbnail URLs.read:videos
GET/api/v1/accountQuery remaining subscription credits, bonus credits, plan tier, and quotas.read:account
POST/api/v1/account/topupGenerate automated Stripe checkout link for 120, 500, or 1,200 compute credits.write:account
GET/api/v1/openapi.jsonMachine-readable OpenAPI 3.1.0 specification for Swagger, Postman, and LLMs.Public
GET/api/v1/mcpModel Context Protocol (MCP) server definition for Claude, Cursor, and Windsurf.Public
Developer FAQ

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.