{"tools":[{"name":"analyze","description":"Analyze any business situation and return a structured recommendation.","endpoint":"POST /v1/analyze","input":{"context":"string","goal":"string?","constraints":"string[]?"},"output":{"recommendation":"string","reasoning":"string","actions":"string[]","confidence":"number"},"pricing":"$0.002 per call"},{"name":"personalize","description":"Given a user profile and content options, return what to show them and how.","endpoint":"POST /v1/personalize","input":{"profile":"object","content":"string[]","goal":"string"},"output":{"selected":"string[]","headline":"string","hook":"string","avoid":"string[]"},"pricing":"$0.002 per call"},{"name":"extract","description":"Pull structured data out of free text in any JSON shape you describe. Classification, field extraction, scoring, summarize-to-schema.","endpoint":"POST /v1/extract","input":{"text":"string","shape":"object | string","instructions":"string?"},"output":{"data":"object"},"pricing":"$0.002 per call"},{"name":"orchestrate","description":"Break a multi-step task into an execution plan any AI agent can follow.","endpoint":"POST /v1/orchestrate","input":{"task":"string","tools":"string[]","context":"object?"},"output":{"plan":"OrchestrateStep[]","summary":"string","estimated":"number"},"pricing":"$0.003 per call"},{"name":"run","description":"Give it a job brief. Get back a finished deliverable. Analyzes, plans, and executes automatically using Claude Sonnet.","endpoint":"POST /v1/run","input":{"brief":"string","context":"object?"},"output":{"deliverable":"string","job_type":"string","steps_completed":"number","plan":"OrchestrateStep[]"},"pricing":"$0.05 per run","limits":"5 req/min"},{"name":"migrate","description":"Convert Mac OBS config files (global.ini, basic.ini, scene JSON) to Windows-compatible versions. Fixes encoders, renderer, source IDs, file paths, and fonts. Pure transform — no AI, instant response.","endpoint":"POST /v1/migrate","input":{"files":"Record<string,string>","rec_path":"string?","media_path":"string?"},"output":{"files":"Record<string,string>","changes":"string[]","manual_steps":"string[]"},"pricing":"$0.001 per call"},{"name":"stream","description":"Programmable live-stream reactions. Create a channel, add its overlay URL as an OBS Browser Source, then POST tip/follow/sub events — matching rules fire real-time on-stream alerts, sounds, and spoken shoutouts via SSE.","endpoint":"POST /v1/stream/channels · POST /v1/stream/event · GET /overlay/:channel","input":{"channel":"string","type":"tip|follow|sub","amount":"number?","from":"string?"},"output":{"matched":"number","reactions":"Reaction[]","overlays_connected":"number"},"pricing":"$0.001 per event"},{"name":"capabilities","description":"Machine-readable registry of all tools, event flows, and services. Query this first to discover what the system can do before planning a job.","endpoint":"GET /v1/capabilities","input":{"category":"ai_tool|event_flow|transform|stream|mcp (optional)","status":"live|building|planned (optional)"},"output":{"version":"string","total":"number","by_category":"object","by_status":"object","capabilities":"Capability[]"},"pricing":"free"},{"name":"run/stream","description":"Streaming version of /v1/run. Returns Server-Sent Events (SSE) as each pipeline stage completes — no more 45s waits. Same pricing.","endpoint":"POST /v1/run/stream","input":{"brief":"string","context":"object?"},"output":"text/event-stream — events: start | plan | step | complete | error","pricing":"$0.05 per run","limits":"5 req/min"},{"name":"music/vibe","description":"Detect the musical vibe from a room transcript — returns energy, darkness, BPM, style keywords, and genre tags. Free tier.","endpoint":"POST /v1/music/vibe","input":{"transcript":"string (up to 2000 chars)","profile":"CreatorProfile?"},"output":{"keywords":"string[]","energy":"number 0-1","darkness":"number 0-1","bpm":"number","style":"string"},"pricing":"$0.002 per call"},{"name":"music/suggest","description":"Get 1-10 real track suggestions matched to energy, BPM, mood, and creator profile. Free tier.","endpoint":"POST /v1/music/suggest","input":{"energy":"number 0-1","darkness":"number 0-1","bpm":"number?","profile":"CreatorProfile?","state":"MusicState?","count":"number?"},"output":{"style":"string","tracks":"{ title, artist, reason }[]"},"pricing":"$0.002 per call"},{"name":"music/session","description":"Create a persistent autonomous DJ session. Attach a creator profile — the session remembers state across signals. VIP tier only.","endpoint":"POST /v1/music/session","input":{"user_id":"string","profile":"CreatorProfile?"},"output":{"session":"MusicSession"},"pricing":"VIP tier","tier":"vip"},{"name":"music/session/signal","description":"Send a room signal to a DJ session. The state machine decides the next state, volume, and track list autonomously. Signals: go_live, go_offline, tip, viewer_spike, quiet, voice_detected, voice_ended, party_start, party_end, vibe_update. VIP tier only.","endpoint":"POST /v1/music/session/:id/signal","input":{"type":"SignalType","amount":"number?","count":"number?","duration_min":"number?","hashtag":"string?","models":"string[]?"},"output":{"session":"MusicSession","action":"string","track_change":"boolean"},"pricing":"VIP tier","tier":"vip"},{"name":"music/party","description":"Sync multiple DJ sessions to PARTY state instantly — for squirt parties where multiple models share a room energy. Sends party_start to each session with coordinated tracks. VIP tier only.","endpoint":"POST /v1/music/party","input":{"hashtag":"string","session_ids":"string[]","models":"string[]?"},"output":{"updated":"number","tokens":"object"},"pricing":"VIP tier","tier":"vip"},{"name":"crs/games","description":"List all CRS fan engagement games with metadata.","endpoint":"GET /v1/crs/games","output":{"activeGameSlug":"string","games":"GameSummary[]"},"pricing":"$0.001 per call"},{"name":"crs/game","description":"Get full GameConfig for a specific game slug.","endpoint":"GET /v1/crs/games/:slug","output":{"game":"GameConfig"},"pricing":"$0.001 per call"},{"name":"crs/leaderboard","description":"Get top players ranked by seeds earned.","endpoint":"GET /v1/crs/leaderboard","output":{"players":"LeaderboardEntry[]"},"pricing":"$0.001 per call"},{"name":"crs/player","description":"Get full live state for a fan player (seeds, level, rituals, bonds, unlocks).","endpoint":"GET /v1/crs/player/:userId","output":{"player":"PlayerState"},"pricing":"$0.001 per call"},{"name":"crs/enroll","description":"Enroll a new fan player into a CRS game.","endpoint":"POST /v1/crs/player","input":{"userId":"string","username":"string","gameSlug":"string","persona":"string?","avatarUrl":"string?"},"output":{"player":"PlayerState"},"pricing":"$0.001 per call"},{"name":"crs/tick","description":"Compound seeds for a player (run the compounding engine tick).","endpoint":"POST /v1/crs/player/:userId/tick","output":{"player":"PlayerState","seedsEarned":"number"},"pricing":"$0.001 per call"},{"name":"crs/ritual","description":"Mark a daily ritual as complete for a player.","endpoint":"POST /v1/crs/player/:userId/ritual","input":{"ritualSlug":"string"},"output":{"player":"PlayerState"},"pricing":"$0.001 per call"},{"name":"crs/unlock","description":"Redeem an unlock reward for a player.","endpoint":"POST /v1/crs/player/:userId/unlock","input":{"unlockId":"string"},"output":{"player":"PlayerState"},"pricing":"$0.001 per call"},{"name":"crs/bond","description":"Create a bond (fan relationship) between two players.","endpoint":"POST /v1/crs/bond","input":{"userIdA":"string","userIdB":"string"},"output":{"bond":"Bond"},"pricing":"$0.001 per call"},{"name":"costream/session","description":"Generate a Same-Room co-stream session. Returns two OBS browser source URLs that composite into one shared virtual room.","endpoint":"POST /v1/costream/session","output":{"sessionId":"string","room":"string","urls":{"left":"string","right":"string"},"instructions":"object"},"pricing":"free"},{"name":"os","description":"The DW Operating System Brain. One endpoint that knows every live service, pending issue, and operational rule. Teams bot, Telegram, and any interface calls this for a conversational AI response with full system context.","endpoint":"POST /v1/os","input":{"message":"string","context":"string?","history":"{ role: user|assistant, content: string }[]?"},"output":{"reply":"string","intent":"status|action|question|deploy|other","actions":"{ label, url?, command? }[]?","tokens":"object"},"pricing":"$0.005 per call"},{"name":"venue-scout","description":"Discover live music and entertainment venues in any city. Returns venue names, neighborhoods, capacity, music focus, booking contact paths, Instagram handles, and a fit score. Ideal for identifying DJ-friendly spaces in a target market.","endpoint":"POST /v1/venue-scout","input":{"city":"string","state":"string?","country":"string? (default US)","types":"VenueType[]?","count":"number? (1-20, default 10)","focus":"string?"},"output":{"city":"string","area":"string","count":"number","venues":"Venue[]","search_queries":"string[]"},"pricing":"$0.003 per call"},{"name":"producer-vet","description":"Cross-reference public records (IAFD, AVN, state business registry, social footprint) to verify whether a claimed adult industry producer is legitimate. Returns a legitimacy score, verdict, red flags, source URLs to check manually, and a shoot safety checklist.","endpoint":"POST /v1/producer-vet","input":{"name":"string (required)","claimed_state":"string?","claimed_company":"string?","claimed_connection":"string?","shoot_location":"string?","contact_method":"string?","extra_context":"string?"},"output":{"legitimacy_score":"number 0-100","verdict":"verified|possible|unverified|suspicious|do_not_shoot","summary":"string","sources":"VetSource[]","red_flags":"RedFlag[]","green_flags":"string[]","female_producer_leads":"string[]","safety_checklist":"string[]"},"pricing":"$0.004 per call"},{"name":"fusion/jobs","description":"Create and run a Creator Brain fusion job (workflow -> capability graph -> fusion asset -> action unlocks -> optional listing).","endpoint":"POST /v1/fusion/jobs","input":{"creatorId":"string","workflowId":"string","mintMode":"platform_native|platform_plus_chain","listing":"object","unlockPolicy":"object","metadata":"object","idempotencyKey":"string"},"output":{"jobId":"string","status":"queued|running","streamUrl":"string","resourceUrl":"string"},"pricing":"$0.01 per call"},{"name":"fusion/stream","description":"Stream live progress for a fusion job as Server-Sent Events.","endpoint":"GET /v1/fusion/jobs/:jobId/stream","input":{"jobId":"string","lastEventId":"number? (header/query)"},"output":{"events":"phase|artifact|warning|completed|failed"},"pricing":"included with fusion/jobs"}]}