Troubleshooting
If requests fail, run zero doctor check-connector --env-name PIKA_TOKEN or zero doctor check-connector --url https://srkibaanghvsriahb.pika.art/developer/balance --method GET
Base URL
https://srkibaanghvsriahb.pika.artAuthentication
All requests use a DevKey header:
Authorization: DevKey $PIKA_TOKENCore APIs
Check Balance
curl -s "https://srkibaanghvsriahb.pika.art/developer/balance" \
-H "Authorization: DevKey $PIKA_TOKEN" | jq '.data // .'Returns {"balance": <int>}. Minimum 100 credits required before joining a meeting.
Join a Meeting
curl -s -X POST "https://srkibaanghvsriahb.pika.art/proxy/realtime/meeting-session" \
-H "Authorization: DevKey $PIKA_TOKEN" \
-H "X-Skill-Name: pikastream" \
-F "meet_url=<google-meet-or-zoom-url>" \
-F "bot_name=<display-name>" \
-F "platform=<google_meet|zoom>" \
-F "image=@<path-to-avatar.png>" \
-F "voice_id=<voice-id>" \
-F "system_prompt=<context for the bot>" | jq '.'| Field | Required | Description |
|---|---|---|
meet_url | Yes | Google Meet (meet.google.com/...) or Zoom URL |
bot_name | Yes | Display name shown in the meeting |
platform | Yes | google_meet or zoom (inferred from URL if omitted) |
image | Yes | Avatar image file (portrait/headshot, PNG or JPG, > 1 KB) |
voice_id | No | Voice clone ID. Default: English_radiant_girl |
system_prompt | No | Background context for the bot's in-meeting conversation |
meeting_password | No | Meeting password if required |
Returns: {"session_id": "...", "platform": "...", "status": "created"}
Poll Session Status
curl -s "https://srkibaanghvsriahb.pika.art/proxy/realtime/session/<session_id>" \
-H "Authorization: DevKey $PIKA_TOKEN" | jq '{status, video_worker_connected, meeting_bot_connected}'status | Meaning |
|---|---|
created | Bot is starting up |
ready | Bot is live in the meeting |
error | Something went wrong |
closed | Session ended |
Poll every 2 seconds. The bot is ready when status == "ready" or both video_worker_connected and meeting_bot_connected are true. Default timeout: 90s.
Leave a Meeting
curl -s -X DELETE "https://srkibaanghvsriahb.pika.art/proxy/realtime/session/<session_id>" \
-H "Authorization: DevKey $PIKA_TOKEN" | jq '.'Returns: {"session_id": "...", "closed": true}
Billing stops when this call completes.
List Topup Products
curl -s "https://srkibaanghvsriahb.pika.art/developer/topup/products" \
-H "Authorization: DevKey $PIKA_TOKEN" | jq '.data // . | .products[]? | {name, numCredits, productId}'Create Topup Checkout
Write to /tmp/pika_topup.json:
{
"product_id": "<productId>"
}curl -s -X POST "https://srkibaanghvsriahb.pika.art/developer/topup" \
-H "Authorization: DevKey $PIKA_TOKEN" \
-H "Content-Type: application/json" \
-d @/tmp/pika_topup.json | jq '.data // . | {checkout_url}'Returns a checkout_url. Share with the user to complete payment, then poll /developer/balance until balance ≥ 100.
Guidelines
- Check balance first: Always run the balance check before joining. Minimum 100 credits required.
- Avatar is mandatory: The bot cannot join without an image file > 1 KB.
- Platform inference:
meet.google.com→google_meet;zoom.usorzoom.com→zoom. - Voice clones expire: Cloned voices are deleted after 7 days of non-use.
- Pricing: $0.275/min, billed from join until
DELETEis called. - Post-meeting notes: After leaving, the API may provide a meeting notes URL in the session response.