Blobfish API
Generate a Dockerized synthetic RL world from one request.
The website console calls a server-side proxy, which maps a user request onto the Admin API: create project, register source pack, start build, then poll the operation.
Bearer token forwarded only to configured API host
Docker gym requested through build config
Sandbox testing API endpoints returned in the Docker contract
Endpoint Sequence
POST
/v1/projectsCreate the tenant-scoped project that owns the synthetic world build.
POST
/v1/projects/{project_id}/artifactsRegister the source pack metadata and content digest.
POST
/v1/projects/{project_id}/buildStart the world compiler and Docker gym packaging workflow.
GET
/v1/operations/{operation_id}Poll compiler status and retrieve the published environment refs.
GET
/v1/projects/{project_id}/environmentsList accepted environment builds for the project.
Request
{
"apiBaseUrl": "https://api.blobfish.ai",
"userEmail": "builder@example.com",
"projectName": "User-submitted enterprise world",
"vertical": "custom_enterprise_workflow",
"topic": "derived from console prompt, uploaded data, and connected sources",
"evidenceSummary": "Prompt, optional PRD/PDF uploads, RAG or DB links, Smithery MCP candidates, docs, GitHub usage examples, personas, pricing, hiring posts, and competitors.",
"mcpServerUrl": "resolved by Smithery research worker",
"toolDocsUrl": "resolved from docs and GitHub research",
"seed": 42691,
"maxTools": 12,
"maxTasks": 80,
"qualityProfile": "paper_compat",
"requireDockerImage": true
}Accepted Response
{
"projectId": "prj_...",
"sourceArtifactId": "art_...",
"operationId": "op_...",
"status": "accepted",
"nextPollUrl": "https://api.blobfish.ai/v1/operations/op_...",
"dockerContract": {
"requested": true,
"expectedArtifact": "OCI image digest plus /opt/fleet manifest bundle"
}
}Website Proxy
The public website endpoint is POST /api/factory/worlds. It validates the API base URL, computes a content digest for the inline source pack, and forwards the user-submitted build request to the configured Fleet API.
curl -X POST https://www.blobfish.ai/api/factory/worlds \
-H 'Content-Type: application/json' \
-H 'Authorization: Bearer <tenant JWT or API token>' \
-d @world-request.jsonCompiler Stages
01
data_injection_research02
company_topic_model03
sandbox_creation04
database_creation05
tools_creation06
tool_compiler_tests07
verifiable_task_synthesis08
multi_env_rl_loop09
executable_rewards10
grpo_training11
kl_penalty12
self_evolving_arenaSandbox Testing API
GET
/healthzGET
/v1/metadataPOST
/v1/resetGET
/v1/toolsPOST
/v1/tool-callsGET
/v1/observationPOST
/v1/snapshotPOST
/v1/restorePOST
/v1/verifyPOST
/v1/terminate