{"info":{"title":"Alpic API","version":"1.0.0"},"servers":[{"url":"https://api.alpic.ai"}],"security":[{"bearerAuth":[]}],"components":{"securitySchemes":{"bearerAuth":{"type":"http","description":"Bearer token for authentication. Use an API key from the API Keys page in team settings, or an OAuth access token.","scheme":"bearer"}}},"openapi":"3.1.1","paths":{"/v1/teams":{"get":{"operationId":"teams.list.v1","summary":"List teams","description":"List all teams for the authenticated user","tags":["teams"],"responses":{"200":{"description":"The list of teams","content":{"application/json":{"schema":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string"},"name":{"type":"string"},"createdAt":{"type":"string","format":"date-time","x-native-type":"date"},"hasStripeAccount":{"type":"boolean"}},"required":["id","name","createdAt","hasStripeAccount"]}}}}}}}},"/v1/analytics/{projectId}":{"get":{"operationId":"analytics.get.v1","summary":"Get project analytics","description":"Get analytics data for a project over a time range","tags":["analytics"],"parameters":[{"name":"projectId","in":"path","required":true,"schema":{"type":"string","description":"The ID of the project"}},{"name":"startTimestamp","in":"query","required":true,"schema":{"type":"number","description":"Start timestamp in milliseconds"},"allowEmptyValue":true,"allowReserved":true},{"name":"endTimestamp","in":"query","required":true,"schema":{"type":"number","description":"End timestamp in milliseconds"},"allowEmptyValue":true,"allowReserved":true},{"name":"timeZone","in":"query","required":true,"schema":{"type":"string","description":"IANA timezone (e.g. Europe/Paris)"},"allowEmptyValue":true,"allowReserved":true}],"responses":{"200":{"description":"The project analytics data","content":{"application/json":{"schema":{"type":"object","properties":{"metadata":{"type":"object","properties":{"startTimestamp":{"type":"number"},"endTimestamp":{"type":"number"},"timeZone":{"type":"string"},"startDate":{"type":"string","format":"date-time","x-native-type":"date"},"interval":{"type":"string"}},"required":["startTimestamp","endTimestamp","timeZone","startDate","interval"]},"timeSeries":{"type":"object","properties":{"sessions_count":{"type":"array","items":{"type":"object","properties":{"timestamp":{"type":"number"},"categories":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["timestamp","categories"]}},"requests_count":{"type":"array","items":{"type":"object","properties":{"timestamp":{"type":"number"},"categories":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["timestamp","categories"]}},"requests_latency_mean":{"type":"array","items":{"type":"object","properties":{"timestamp":{"type":"number"},"categories":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["timestamp","categories"]}},"tool_errors":{"type":"array","items":{"type":"object","properties":{"timestamp":{"type":"number"},"categories":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["timestamp","categories"]}},"mcp_errors":{"type":"array","items":{"type":"object","properties":{"timestamp":{"type":"number"},"categories":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["timestamp","categories"]}},"output_token_mean":{"type":"array","items":{"type":"object","properties":{"timestamp":{"type":"number"},"categories":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["timestamp","categories"]}},"task_count":{"type":"array","items":{"type":"object","properties":{"timestamp":{"type":"number"},"categories":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["timestamp","categories"]}}},"required":["sessions_count","requests_count","requests_latency_mean","tool_errors","mcp_errors","output_token_mean","task_count"]}},"required":["metadata","timeSeries"]}}}},"400":{"description":"400","content":{"application/json":{"schema":{"oneOf":[{"type":"object","properties":{"defined":{"const":true},"code":{"const":"BAD_REQUEST"},"status":{"const":400},"message":{"type":"string","default":"Bad Request"},"data":{}},"required":["defined","code","status","message"]},{"type":"object","properties":{"defined":{"const":false},"code":{"type":"string"},"status":{"type":"number"},"message":{"type":"string"},"data":{}},"required":["defined","code","status","message"]}]}}}},"404":{"description":"404","content":{"application/json":{"schema":{"oneOf":[{"type":"object","properties":{"defined":{"const":true},"code":{"const":"NOT_FOUND"},"status":{"const":404},"message":{"type":"string","default":"Not Found"},"data":{}},"required":["defined","code","status","message"]},{"type":"object","properties":{"defined":{"const":false},"code":{"type":"string"},"status":{"type":"number"},"message":{"type":"string"},"data":{}},"required":["defined","code","status","message"]}]}}}}}}},"/v1/deployments/{deploymentId}":{"get":{"operationId":"deployments.get.v1","summary":"Get a deployment","description":"Get a deployment by ID","tags":["deployments"],"parameters":[{"name":"deploymentId","in":"path","required":true,"schema":{"type":"string","description":"The ID of the deployment"}}],"responses":{"200":{"description":"The deployment details","content":{"application/json":{"schema":{"type":"object","properties":{"id":{"type":"string"},"status":{"enum":["ongoing","deployed","failed","canceled"],"type":"string"},"sourceRef":{"anyOf":[{"type":"string"},{"type":"null"}]},"sourceCommitId":{"anyOf":[{"type":"string"},{"type":"null"}]},"sourceCommitMessage":{"anyOf":[{"type":"string"},{"type":"null"}]},"authorUsername":{"anyOf":[{"type":"string"},{"type":"null"}]},"authorAvatarUrl":{"anyOf":[{"type":"string"},{"type":"null"}]},"startedAt":{"anyOf":[{"type":"string","format":"date-time","x-native-type":"date"},{"type":"null"}]},"completedAt":{"anyOf":[{"type":"string","format":"date-time","x-native-type":"date"},{"type":"null"}]},"environmentId":{"type":"string"},"environmentName":{"type":"string"},"isCurrent":{"type":"boolean"},"deploymentPageUrl":{"anyOf":[{"type":"string","format":"uri"},{"type":"null"}]}},"required":["id","status","sourceRef","sourceCommitId","sourceCommitMessage","authorUsername","authorAvatarUrl","startedAt","completedAt","environmentId","environmentName","isCurrent","deploymentPageUrl"]}}}},"404":{"description":"404","content":{"application/json":{"schema":{"oneOf":[{"type":"object","properties":{"defined":{"const":true},"code":{"const":"NOT_FOUND"},"status":{"const":404},"message":{"type":"string","default":"Not Found"},"data":{}},"required":["defined","code","status","message"]},{"type":"object","properties":{"defined":{"const":false},"code":{"type":"string"},"status":{"type":"number"},"message":{"type":"string"},"data":{}},"required":["defined","code","status","message"]}]}}}}}}},"/v1/environments":{"post":{"operationId":"environments.create.v1","summary":"Create an environment","description":"Create an environment for a project","tags":["environments"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"projectId":{"type":"string","description":"The ID of the project to create the environment for"},"name":{"type":"string","minLength":1,"description":"The name of the environment"},"sourceBranch":{"type":"string","minLength":1,"description":"The branch used to build the environment"},"environmentVariables":{"type":"array","items":{"type":"object","properties":{"key":{"type":"string","minLength":2,"pattern":"^[a-zA-Z]([a-zA-Z0-9_])+$"},"value":{"type":"string","minLength":1},"isSecret":{"type":"boolean","default":false}},"required":["key","value"]},"default":[]}},"required":["projectId","name","sourceBranch"]}}}},"responses":{"200":{"description":"The environment has been created successfully","content":{"application/json":{"schema":{"type":"object","properties":{"id":{"type":"string"},"name":{"type":"string"},"sourceBranch":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"The branch used to build the environment"},"urls":{"type":"array","items":{"type":"string","format":"uri"},"description":"The URLs of the MCP server"},"createdAt":{"type":"string","format":"date-time","x-native-type":"date"},"projectId":{"type":"string","description":"The ID of the project the environment belongs to"}},"required":["id","name","sourceBranch","urls","createdAt","projectId"]}}}},"400":{"description":"400","content":{"application/json":{"schema":{"oneOf":[{"type":"object","properties":{"defined":{"const":true},"code":{"const":"BAD_REQUEST"},"status":{"const":400},"message":{"type":"string","default":"Bad Request"},"data":{}},"required":["defined","code","status","message"]},{"type":"object","properties":{"defined":{"const":false},"code":{"type":"string"},"status":{"type":"number"},"message":{"type":"string"},"data":{}},"required":["defined","code","status","message"]}]}}}},"404":{"description":"404","content":{"application/json":{"schema":{"oneOf":[{"type":"object","properties":{"defined":{"const":true},"code":{"const":"NOT_FOUND"},"status":{"const":404},"message":{"type":"string","default":"Not Found"},"data":{}},"required":["defined","code","status","message"]},{"type":"object","properties":{"defined":{"const":false},"code":{"type":"string"},"status":{"type":"number"},"message":{"type":"string"},"data":{}},"required":["defined","code","status","message"]}]}}}}}}},"/v1/environments/{environmentId}":{"get":{"operationId":"environments.get.v1","summary":"Get an environment","description":"Get an environment by ID","tags":["environments"],"parameters":[{"name":"environmentId","in":"path","required":true,"schema":{"type":"string","description":"The ID of the environment"}}],"responses":{"200":{"description":"The environment details","content":{"application/json":{"schema":{"type":"object","properties":{"id":{"type":"string"},"name":{"type":"string"},"sourceBranch":{"anyOf":[{"type":"string"},{"type":"null"}]},"mcpServerUrl":{"type":"string"},"domains":{"type":"array","items":{"type":"string","format":"hostname"}},"createdAt":{"type":"string","format":"date-time","x-native-type":"date"},"projectId":{"type":"string"}},"required":["id","name","sourceBranch","mcpServerUrl","domains","createdAt","projectId"]}}}},"404":{"description":"404","content":{"application/json":{"schema":{"oneOf":[{"type":"object","properties":{"defined":{"const":true},"code":{"const":"NOT_FOUND"},"status":{"const":404},"message":{"type":"string","default":"Not Found"},"data":{}},"required":["defined","code","status","message"]},{"type":"object","properties":{"defined":{"const":false},"code":{"type":"string"},"status":{"type":"number"},"message":{"type":"string"},"data":{}},"required":["defined","code","status","message"]}]}}}}}}},"/v1/environments/{environmentId}/deploy":{"post":{"operationId":"environments.deploy.v1","summary":"Deploy an environment","description":"Deploy an environment","tags":["environments"],"parameters":[{"name":"environmentId","in":"path","required":true,"schema":{"type":"string","description":"The ID of the environment to deploy"}}],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"token":{"type":"string","description":"The token to identify the source archive"}}}}}},"responses":{"200":{"description":"The environment has been deployed successfully","content":{"application/json":{"schema":{"type":"object","properties":{"id":{"type":"string"},"status":{"enum":["ongoing","deployed","failed","canceled"],"type":"string"},"sourceRef":{"anyOf":[{"type":"string"},{"type":"null"}]},"sourceCommitId":{"anyOf":[{"type":"string"},{"type":"null"}]},"sourceCommitMessage":{"anyOf":[{"type":"string"},{"type":"null"}]},"authorUsername":{"anyOf":[{"type":"string"},{"type":"null"}]},"authorAvatarUrl":{"anyOf":[{"type":"string"},{"type":"null"}]},"startedAt":{"anyOf":[{"type":"string","format":"date-time","x-native-type":"date"},{"type":"null"}]},"completedAt":{"anyOf":[{"type":"string","format":"date-time","x-native-type":"date"},{"type":"null"}]},"environmentId":{"type":"string"},"environmentName":{"type":"string"},"isCurrent":{"type":"boolean"},"deploymentPageUrl":{"anyOf":[{"type":"string","format":"uri"},{"type":"null"}]}},"required":["id","status","sourceRef","sourceCommitId","sourceCommitMessage","authorUsername","authorAvatarUrl","startedAt","completedAt","environmentId","environmentName","isCurrent","deploymentPageUrl"]}}}},"400":{"description":"400","content":{"application/json":{"schema":{"oneOf":[{"type":"object","properties":{"defined":{"const":true},"code":{"const":"BAD_REQUEST"},"status":{"const":400},"message":{"type":"string","default":"Bad Request"},"data":{}},"required":["defined","code","status","message"]},{"type":"object","properties":{"defined":{"const":false},"code":{"type":"string"},"status":{"type":"number"},"message":{"type":"string"},"data":{}},"required":["defined","code","status","message"]}]}}}},"404":{"description":"404","content":{"application/json":{"schema":{"oneOf":[{"type":"object","properties":{"defined":{"const":true},"code":{"const":"NOT_FOUND"},"status":{"const":404},"message":{"type":"string","default":"Not Found"},"data":{}},"required":["defined","code","status","message"]},{"type":"object","properties":{"defined":{"const":false},"code":{"type":"string"},"status":{"type":"number"},"message":{"type":"string"},"data":{}},"required":["defined","code","status","message"]}]}}}}}}},"/v1/environments/{environmentId}/logs":{"get":{"operationId":"environments.getLogs.v1","summary":"Get logs","description":"Get logs for an environment","tags":["environments"],"parameters":[{"name":"environmentId","in":"path","required":true,"schema":{"type":"string","description":"The ID of the environment"}},{"name":"since","in":"query","schema":{"type":"string","description":"Start time — ISO 8601 (2024-01-01T00:00:00Z) or relative (1h, 30m, 2d)"},"allowEmptyValue":true,"allowReserved":true},{"name":"until","in":"query","schema":{"type":"string","description":"End time — ISO 8601 or relative"},"allowEmptyValue":true,"allowReserved":true},{"name":"limit","in":"query","schema":{"type":"integer","minimum":1,"maximum":1000,"default":1000,"description":"Maximum number of log entries to return."},"allowEmptyValue":true,"allowReserved":true},{"name":"level","in":"query","schema":{"type":"array","items":{"enum":["INFO","ERROR","WARNING","DEBUG"],"type":"string"},"description":"Filter by log level"},"style":"deepObject","explode":true,"allowEmptyValue":true,"allowReserved":true},{"name":"search","in":"query","schema":{"type":"string","description":"Filter pattern to search for in log content"},"allowEmptyValue":true,"allowReserved":true},{"name":"nextToken","in":"query","schema":{"type":"string","description":"Pagination token from a previous response"},"allowEmptyValue":true,"allowReserved":true}],"responses":{"200":{"description":"The logs","content":{"application/json":{"schema":{"type":"object","properties":{"logs":{"type":"array","items":{"type":"object","properties":{"timestamp":{"type":"string","format":"date-time","x-native-type":"date"},"type":{"enum":["START","END","INFO","ERROR","WARNING","DEBUG"],"type":"string"},"requestId":{"type":"string"},"content":{"type":"string"},"method":{"type":"string"},"durationInMs":{"type":"number"}},"required":["timestamp","type","requestId"]}},"nextToken":{"anyOf":[{"type":"string"},{"type":"null"}]}},"required":["logs","nextToken"]}}}},"400":{"description":"400","content":{"application/json":{"schema":{"oneOf":[{"type":"object","properties":{"defined":{"const":true},"code":{"const":"BAD_REQUEST"},"status":{"const":400},"message":{"type":"string","default":"Bad Request"},"data":{}},"required":["defined","code","status","message"]},{"type":"object","properties":{"defined":{"const":false},"code":{"type":"string"},"status":{"type":"number"},"message":{"type":"string"},"data":{}},"required":["defined","code","status","message"]}]}}}},"404":{"description":"404","content":{"application/json":{"schema":{"oneOf":[{"type":"object","properties":{"defined":{"const":true},"code":{"const":"NOT_FOUND"},"status":{"const":404},"message":{"type":"string","default":"Not Found"},"data":{}},"required":["defined","code","status","message"]},{"type":"object","properties":{"defined":{"const":false},"code":{"type":"string"},"status":{"type":"number"},"message":{"type":"string"},"data":{}},"required":["defined","code","status","message"]}]}}}}}}},"/v1/environments/{environmentId}/latest-logs":{"get":{"operationId":"environments.getLatestLogs.v1","summary":"Get latest logs","description":"Get the N most recent logs for an environment","tags":["environments"],"parameters":[{"name":"environmentId","in":"path","required":true,"schema":{"type":"string","description":"The ID of the environment"}},{"name":"limit","in":"query","schema":{"type":"integer","minimum":1,"maximum":1000,"default":100,"description":"Number of most recent log entries to return"},"allowEmptyValue":true,"allowReserved":true},{"name":"level","in":"query","schema":{"type":"array","items":{"enum":["INFO","ERROR","WARNING","DEBUG"],"type":"string"},"description":"Filter by log level"},"style":"deepObject","explode":true,"allowEmptyValue":true,"allowReserved":true},{"name":"search","in":"query","schema":{"type":"string","description":"Filter pattern to search for in log content"},"allowEmptyValue":true,"allowReserved":true}],"responses":{"200":{"description":"The latest logs","content":{"application/json":{"schema":{"type":"object","properties":{"logs":{"type":"array","items":{"type":"object","properties":{"timestamp":{"type":"string","format":"date-time","x-native-type":"date"},"type":{"enum":["START","END","INFO","ERROR","WARNING","DEBUG"],"type":"string"},"requestId":{"type":"string"},"content":{"type":"string"},"method":{"type":"string"},"durationInMs":{"type":"number"}},"required":["timestamp","type","requestId"]}}},"required":["logs"]}}}},"400":{"description":"400","content":{"application/json":{"schema":{"oneOf":[{"type":"object","properties":{"defined":{"const":true},"code":{"const":"BAD_REQUEST"},"status":{"const":400},"message":{"type":"string","default":"Bad Request"},"data":{}},"required":["defined","code","status","message"]},{"type":"object","properties":{"defined":{"const":false},"code":{"type":"string"},"status":{"type":"number"},"message":{"type":"string"},"data":{}},"required":["defined","code","status","message"]}]}}}},"404":{"description":"404","content":{"application/json":{"schema":{"oneOf":[{"type":"object","properties":{"defined":{"const":true},"code":{"const":"NOT_FOUND"},"status":{"const":404},"message":{"type":"string","default":"Not Found"},"data":{}},"required":["defined","code","status","message"]},{"type":"object","properties":{"defined":{"const":false},"code":{"type":"string"},"status":{"type":"number"},"message":{"type":"string"},"data":{}},"required":["defined","code","status","message"]}]}}}}}}},"/v1/environments/{environmentId}/environment-variables":{"get":{"operationId":"environmentVariables.list.v1","summary":"List environment variables","description":"List all environment variables for an environment","tags":["environments"],"parameters":[{"name":"environmentId","in":"path","required":true,"schema":{"type":"string","description":"The ID of the environment"}}],"responses":{"200":{"description":"The list of environment variables","content":{"application/json":{"schema":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string"},"key":{"type":"string"},"value":{"type":"string"},"isSecret":{"type":"boolean"},"createdAt":{"type":"string","format":"date-time","x-native-type":"date"}},"required":["id","key","value","isSecret","createdAt"]}}}}},"404":{"description":"404","content":{"application/json":{"schema":{"oneOf":[{"type":"object","properties":{"defined":{"const":true},"code":{"const":"NOT_FOUND"},"status":{"const":404},"message":{"type":"string","default":"Not Found"},"data":{}},"required":["defined","code","status","message"]},{"type":"object","properties":{"defined":{"const":false},"code":{"type":"string"},"status":{"type":"number"},"message":{"type":"string"},"data":{}},"required":["defined","code","status","message"]}]}}}}}},"post":{"operationId":"environmentVariables.create.v1","summary":"Add environment variables","description":"Add one or more environment variables to an environment","tags":["environments"],"parameters":[{"name":"environmentId","in":"path","required":true,"schema":{"type":"string","description":"The ID of the environment"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"environmentVariables":{"type":"array","items":{"type":"object","properties":{"key":{"type":"string","minLength":2,"pattern":"^[a-zA-Z]([a-zA-Z0-9_])+$"},"value":{"type":"string","minLength":1},"isSecret":{"type":"boolean","default":false}},"required":["key","value"]}}},"required":["environmentVariables"]}}}},"responses":{"200":{"description":"The environment variables have been added successfully","content":{"application/json":{"schema":{"type":"object","properties":{"success":{"const":true}},"required":["success"]}}}},"400":{"description":"400","content":{"application/json":{"schema":{"oneOf":[{"type":"object","properties":{"defined":{"const":true},"code":{"const":"BAD_REQUEST"},"status":{"const":400},"message":{"type":"string","default":"Bad Request"},"data":{}},"required":["defined","code","status","message"]},{"type":"object","properties":{"defined":{"const":false},"code":{"type":"string"},"status":{"type":"number"},"message":{"type":"string"},"data":{}},"required":["defined","code","status","message"]}]}}}},"404":{"description":"404","content":{"application/json":{"schema":{"oneOf":[{"type":"object","properties":{"defined":{"const":true},"code":{"const":"NOT_FOUND"},"status":{"const":404},"message":{"type":"string","default":"Not Found"},"data":{}},"required":["defined","code","status","message"]},{"type":"object","properties":{"defined":{"const":false},"code":{"type":"string"},"status":{"type":"number"},"message":{"type":"string"},"data":{}},"required":["defined","code","status","message"]}]}}}}}}},"/v1/environment-variables/{environmentVariableId}":{"patch":{"operationId":"environmentVariables.update.v1","summary":"Update an environment variable","description":"Update an environment variable by ID","tags":["environments"],"parameters":[{"name":"environmentVariableId","in":"path","required":true,"schema":{"type":"string","description":"The ID of the environment variable"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"key":{"type":"string","minLength":2,"pattern":"^[a-zA-Z]([a-zA-Z0-9_])+$"},"value":{"type":"string","minLength":1},"isSecret":{"type":"boolean","default":false}},"required":["key"]}}}},"responses":{"200":{"description":"The environment variable has been updated successfully","content":{"application/json":{"schema":{"type":"object","properties":{"success":{"const":true}},"required":["success"]}}}},"400":{"description":"400","content":{"application/json":{"schema":{"oneOf":[{"type":"object","properties":{"defined":{"const":true},"code":{"const":"BAD_REQUEST"},"status":{"const":400},"message":{"type":"string","default":"Bad Request"},"data":{}},"required":["defined","code","status","message"]},{"type":"object","properties":{"defined":{"const":false},"code":{"type":"string"},"status":{"type":"number"},"message":{"type":"string"},"data":{}},"required":["defined","code","status","message"]}]}}}},"404":{"description":"404","content":{"application/json":{"schema":{"oneOf":[{"type":"object","properties":{"defined":{"const":true},"code":{"const":"NOT_FOUND"},"status":{"const":404},"message":{"type":"string","default":"Not Found"},"data":{}},"required":["defined","code","status","message"]},{"type":"object","properties":{"defined":{"const":false},"code":{"type":"string"},"status":{"type":"number"},"message":{"type":"string"},"data":{}},"required":["defined","code","status","message"]}]}}}}}},"delete":{"operationId":"environmentVariables.delete.v1","summary":"Delete an environment variable","description":"Delete an environment variable by ID","tags":["environments"],"parameters":[{"name":"environmentVariableId","in":"path","required":true,"schema":{"type":"string","description":"The ID of the environment variable"}}],"responses":{"200":{"description":"The environment variable has been deleted successfully","content":{"application/json":{"schema":{"type":"object","properties":{"success":{"const":true}},"required":["success"]}}}},"400":{"description":"400","content":{"application/json":{"schema":{"oneOf":[{"type":"object","properties":{"defined":{"const":true},"code":{"const":"BAD_REQUEST"},"status":{"const":400},"message":{"type":"string","default":"Bad Request"},"data":{}},"required":["defined","code","status","message"]},{"type":"object","properties":{"defined":{"const":false},"code":{"type":"string"},"status":{"type":"number"},"message":{"type":"string"},"data":{}},"required":["defined","code","status","message"]}]}}}},"404":{"description":"404","content":{"application/json":{"schema":{"oneOf":[{"type":"object","properties":{"defined":{"const":true},"code":{"const":"NOT_FOUND"},"status":{"const":404},"message":{"type":"string","default":"Not Found"},"data":{}},"required":["defined","code","status","message"]},{"type":"object","properties":{"defined":{"const":false},"code":{"type":"string"},"status":{"type":"number"},"message":{"type":"string"},"data":{}},"required":["defined","code","status","message"]}]}}}}}}},"/v1/projects/{projectId}":{"patch":{"operationId":"projects.update.v1","summary":"Update a project","description":"Update project settings","tags":["projects"],"parameters":[{"name":"projectId","in":"path","required":true,"schema":{"type":"string","description":"The ID of the project"}}],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"name":{"type":"string","minLength":1,"maxLength":100,"description":"The new name for the project"},"sourceRepository":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"The source repository to connect to the project"}}}}}},"responses":{"200":{"description":"The project has been updated successfully","content":{"application/json":{"schema":{"type":"object","properties":{"id":{"type":"string"},"name":{"type":"string"},"teamId":{"type":"string"},"sourceRepository":{"anyOf":[{"type":"string"},{"type":"null"}]},"runtime":{"enum":["python3.13","python3.14","node22","node24"],"type":"string"},"transport":{"anyOf":[{"enum":["stdio","sse","streamablehttp"],"type":"string"},{"type":"null"}]},"rootDirectory":{"anyOf":[{"type":"string"},{"type":"null"}]},"buildCommand":{"anyOf":[{"type":"string"},{"type":"null"}]},"buildOutputDir":{"anyOf":[{"type":"string"},{"type":"null"}]},"installCommand":{"anyOf":[{"type":"string"},{"type":"null"}]},"startCommand":{"anyOf":[{"type":"string"},{"type":"null"}]},"createdAt":{"type":"string","format":"date-time","x-native-type":"date"},"productionEnvironment":{"anyOf":[{"type":"object","properties":{"id":{"type":"string"},"name":{"type":"string"},"mcpServerUrl":{"type":"string"},"domains":{"type":"array","items":{"type":"object","properties":{"domain":{"type":"string"},"status":{"enum":["ongoing","deployed","failed"],"type":"string"},"createdAt":{"type":"string","format":"date-time","x-native-type":"date"}},"required":["domain","status","createdAt"]}},"latestDeployment":{"anyOf":[{"type":"object","properties":{"id":{"type":"string"},"status":{"enum":["ongoing","deployed","failed","canceled"],"type":"string"},"sourceCommitId":{"anyOf":[{"type":"string"},{"type":"null"}]},"sourceCommitMessage":{"anyOf":[{"type":"string"},{"type":"null"}]},"completedAt":{"anyOf":[{"type":"string","format":"date-time","x-native-type":"date"},{"type":"null"}]}},"required":["id","status","sourceCommitId","sourceCommitMessage","completedAt"]},{"type":"null"}]}},"required":["id","name","mcpServerUrl","domains","latestDeployment"]},{"type":"null"}]},"environments":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string"},"name":{"type":"string"},"sourceBranch":{"anyOf":[{"type":"string"},{"type":"null"}]},"mcpServerUrl":{"type":"string"},"createdAt":{"type":"string","format":"date-time","x-native-type":"date"},"projectId":{"type":"string"},"latestDeployment":{"anyOf":[{"type":"object","properties":{"id":{"type":"string"},"status":{"enum":["ongoing","deployed","failed","canceled"],"type":"string"},"sourceCommitId":{"anyOf":[{"type":"string"},{"type":"null"}]},"sourceCommitMessage":{"anyOf":[{"type":"string"},{"type":"null"}]},"completedAt":{"anyOf":[{"type":"string","format":"date-time","x-native-type":"date"},{"type":"null"}]}},"required":["id","status","sourceCommitId","sourceCommitMessage","completedAt"]},{"type":"null"}]}},"required":["id","name","sourceBranch","mcpServerUrl","createdAt","projectId","latestDeployment"]}}},"required":["id","name","teamId","sourceRepository","runtime","transport","rootDirectory","buildCommand","buildOutputDir","installCommand","startCommand","createdAt","productionEnvironment","environments"]}}}},"400":{"description":"400","content":{"application/json":{"schema":{"oneOf":[{"type":"object","properties":{"defined":{"const":true},"code":{"const":"BAD_REQUEST"},"status":{"const":400},"message":{"type":"string","default":"Bad Request"},"data":{}},"required":["defined","code","status","message"]},{"type":"object","properties":{"defined":{"const":false},"code":{"type":"string"},"status":{"type":"number"},"message":{"type":"string"},"data":{}},"required":["defined","code","status","message"]}]}}}},"403":{"description":"403","content":{"application/json":{"schema":{"oneOf":[{"type":"object","properties":{"defined":{"const":true},"code":{"const":"FORBIDDEN"},"status":{"const":403},"message":{"type":"string","default":"Forbidden"},"data":{}},"required":["defined","code","status","message"]},{"type":"object","properties":{"defined":{"const":false},"code":{"type":"string"},"status":{"type":"number"},"message":{"type":"string"},"data":{}},"required":["defined","code","status","message"]}]}}}},"404":{"description":"404","content":{"application/json":{"schema":{"oneOf":[{"type":"object","properties":{"defined":{"const":true},"code":{"const":"NOT_FOUND"},"status":{"const":404},"message":{"type":"string","default":"Not Found"},"data":{}},"required":["defined","code","status","message"]},{"type":"object","properties":{"defined":{"const":false},"code":{"type":"string"},"status":{"type":"number"},"message":{"type":"string"},"data":{}},"required":["defined","code","status","message"]}]}}}}}},"get":{"operationId":"projects.get.v1","summary":"Get a project","description":"Get a project by ID","tags":["projects"],"parameters":[{"name":"projectId","in":"path","required":true,"schema":{"type":"string","description":"The ID of the project"}}],"responses":{"200":{"description":"The project details","content":{"application/json":{"schema":{"type":"object","properties":{"id":{"type":"string"},"name":{"type":"string"},"teamId":{"type":"string"},"sourceRepository":{"anyOf":[{"type":"string"},{"type":"null"}]},"runtime":{"enum":["python3.13","python3.14","node22","node24"],"type":"string"},"transport":{"anyOf":[{"enum":["stdio","sse","streamablehttp"],"type":"string"},{"type":"null"}]},"rootDirectory":{"anyOf":[{"type":"string"},{"type":"null"}]},"buildCommand":{"anyOf":[{"type":"string"},{"type":"null"}]},"buildOutputDir":{"anyOf":[{"type":"string"},{"type":"null"}]},"installCommand":{"anyOf":[{"type":"string"},{"type":"null"}]},"startCommand":{"anyOf":[{"type":"string"},{"type":"null"}]},"createdAt":{"type":"string","format":"date-time","x-native-type":"date"},"productionEnvironment":{"anyOf":[{"type":"object","properties":{"id":{"type":"string"},"name":{"type":"string"},"mcpServerUrl":{"type":"string"},"domains":{"type":"array","items":{"type":"object","properties":{"domain":{"type":"string"},"status":{"enum":["ongoing","deployed","failed"],"type":"string"},"createdAt":{"type":"string","format":"date-time","x-native-type":"date"}},"required":["domain","status","createdAt"]}},"latestDeployment":{"anyOf":[{"type":"object","properties":{"id":{"type":"string"},"status":{"enum":["ongoing","deployed","failed","canceled"],"type":"string"},"sourceCommitId":{"anyOf":[{"type":"string"},{"type":"null"}]},"sourceCommitMessage":{"anyOf":[{"type":"string"},{"type":"null"}]},"completedAt":{"anyOf":[{"type":"string","format":"date-time","x-native-type":"date"},{"type":"null"}]}},"required":["id","status","sourceCommitId","sourceCommitMessage","completedAt"]},{"type":"null"}]}},"required":["id","name","mcpServerUrl","domains","latestDeployment"]},{"type":"null"}]},"environments":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string"},"name":{"type":"string"},"sourceBranch":{"anyOf":[{"type":"string"},{"type":"null"}]},"mcpServerUrl":{"type":"string"},"createdAt":{"type":"string","format":"date-time","x-native-type":"date"},"projectId":{"type":"string"},"latestDeployment":{"anyOf":[{"type":"object","properties":{"id":{"type":"string"},"status":{"enum":["ongoing","deployed","failed","canceled"],"type":"string"},"sourceCommitId":{"anyOf":[{"type":"string"},{"type":"null"}]},"sourceCommitMessage":{"anyOf":[{"type":"string"},{"type":"null"}]},"completedAt":{"anyOf":[{"type":"string","format":"date-time","x-native-type":"date"},{"type":"null"}]}},"required":["id","status","sourceCommitId","sourceCommitMessage","completedAt"]},{"type":"null"}]}},"required":["id","name","sourceBranch","mcpServerUrl","createdAt","projectId","latestDeployment"]}}},"required":["id","name","teamId","sourceRepository","runtime","transport","rootDirectory","buildCommand","buildOutputDir","installCommand","startCommand","createdAt","productionEnvironment","environments"]}}}},"404":{"description":"404","content":{"application/json":{"schema":{"oneOf":[{"type":"object","properties":{"defined":{"const":true},"code":{"const":"NOT_FOUND"},"status":{"const":404},"message":{"type":"string","default":"Not Found"},"data":{}},"required":["defined","code","status","message"]},{"type":"object","properties":{"defined":{"const":false},"code":{"type":"string"},"status":{"type":"number"},"message":{"type":"string"},"data":{}},"required":["defined","code","status","message"]}]}}}}}},"delete":{"operationId":"projects.delete.v1","summary":"Delete a project","description":"Delete a project and all its environments","tags":["projects"],"parameters":[{"name":"projectId","in":"path","required":true,"schema":{"type":"string","description":"The ID of the project"}}],"responses":{"200":{"description":"The project has been deleted successfully","content":{"application/json":{"schema":{"type":"object","properties":{"success":{"const":true}},"required":["success"]}}}},"404":{"description":"404","content":{"application/json":{"schema":{"oneOf":[{"type":"object","properties":{"defined":{"const":true},"code":{"const":"NOT_FOUND"},"status":{"const":404},"message":{"type":"string","default":"Not Found"},"data":{}},"required":["defined","code","status","message"]},{"type":"object","properties":{"defined":{"const":false},"code":{"type":"string"},"status":{"type":"number"},"message":{"type":"string"},"data":{}},"required":["defined","code","status","message"]}]}}}}}}},"/v1/projects":{"get":{"operationId":"projects.list.v1","summary":"List projects","description":"List all projects for a team","tags":["projects"],"parameters":[{"name":"teamId","in":"query","schema":{"type":"string"},"allowEmptyValue":true,"allowReserved":true}],"responses":{"200":{"description":"The list of projects","content":{"application/json":{"schema":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string"},"name":{"type":"string"},"teamId":{"type":"string"},"sourceRepository":{"anyOf":[{"type":"string"},{"type":"null"}]},"runtime":{"enum":["python3.13","python3.14","node22","node24"],"type":"string"},"transport":{"anyOf":[{"enum":["stdio","sse","streamablehttp"],"type":"string"},{"type":"null"}]},"rootDirectory":{"anyOf":[{"type":"string"},{"type":"null"}]},"buildCommand":{"anyOf":[{"type":"string"},{"type":"null"}]},"buildOutputDir":{"anyOf":[{"type":"string"},{"type":"null"}]},"installCommand":{"anyOf":[{"type":"string"},{"type":"null"}]},"startCommand":{"anyOf":[{"type":"string"},{"type":"null"}]},"createdAt":{"type":"string","format":"date-time","x-native-type":"date"},"productionEnvironment":{"anyOf":[{"type":"object","properties":{"id":{"type":"string"},"name":{"type":"string"},"mcpServerUrl":{"type":"string"},"domains":{"type":"array","items":{"type":"object","properties":{"domain":{"type":"string"},"status":{"enum":["ongoing","deployed","failed"],"type":"string"},"createdAt":{"type":"string","format":"date-time","x-native-type":"date"}},"required":["domain","status","createdAt"]}},"latestDeployment":{"anyOf":[{"type":"object","properties":{"id":{"type":"string"},"status":{"enum":["ongoing","deployed","failed","canceled"],"type":"string"},"sourceCommitId":{"anyOf":[{"type":"string"},{"type":"null"}]},"sourceCommitMessage":{"anyOf":[{"type":"string"},{"type":"null"}]},"completedAt":{"anyOf":[{"type":"string","format":"date-time","x-native-type":"date"},{"type":"null"}]}},"required":["id","status","sourceCommitId","sourceCommitMessage","completedAt"]},{"type":"null"}]}},"required":["id","name","mcpServerUrl","domains","latestDeployment"]},{"type":"null"}]},"environments":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string"},"name":{"type":"string"},"sourceBranch":{"anyOf":[{"type":"string"},{"type":"null"}]},"mcpServerUrl":{"type":"string"},"createdAt":{"type":"string","format":"date-time","x-native-type":"date"},"projectId":{"type":"string"},"latestDeployment":{"anyOf":[{"type":"object","properties":{"id":{"type":"string"},"status":{"enum":["ongoing","deployed","failed","canceled"],"type":"string"},"sourceCommitId":{"anyOf":[{"type":"string"},{"type":"null"}]},"sourceCommitMessage":{"anyOf":[{"type":"string"},{"type":"null"}]},"completedAt":{"anyOf":[{"type":"string","format":"date-time","x-native-type":"date"},{"type":"null"}]}},"required":["id","status","sourceCommitId","sourceCommitMessage","completedAt"]},{"type":"null"}]}},"required":["id","name","sourceBranch","mcpServerUrl","createdAt","projectId","latestDeployment"]}}},"required":["id","name","teamId","sourceRepository","runtime","transport","rootDirectory","buildCommand","buildOutputDir","installCommand","startCommand","createdAt","productionEnvironment","environments"]}}}}},"400":{"description":"400","content":{"application/json":{"schema":{"oneOf":[{"type":"object","properties":{"defined":{"const":true},"code":{"const":"BAD_REQUEST"},"status":{"const":400},"message":{"type":"string","default":"Bad Request"},"data":{}},"required":["defined","code","status","message"]},{"type":"object","properties":{"defined":{"const":false},"code":{"type":"string"},"status":{"type":"number"},"message":{"type":"string"},"data":{}},"required":["defined","code","status","message"]}]}}}},"404":{"description":"404","content":{"application/json":{"schema":{"oneOf":[{"type":"object","properties":{"defined":{"const":true},"code":{"const":"NOT_FOUND"},"status":{"const":404},"message":{"type":"string","default":"Not Found"},"data":{}},"required":["defined","code","status","message"]},{"type":"object","properties":{"defined":{"const":false},"code":{"type":"string"},"status":{"type":"number"},"message":{"type":"string"},"data":{}},"required":["defined","code","status","message"]}]}}}}}},"post":{"operationId":"projects.create.v1","summary":"Create a project","description":"Create a project for a team","tags":["projects"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"teamId":{"type":"string"},"name":{"type":"string","minLength":1,"maxLength":100},"sourceRepository":{"type":"string"},"branchName":{"type":"string","minLength":1},"runtime":{"enum":["python3.13","python3.14","node22","node24"],"type":"string"},"transport":{"enum":["stdio","sse","streamablehttp"],"type":"string"},"rootDirectory":{"type":"string"},"settings":{"type":"object","properties":{"installCommand":{"type":"string"},"buildCommand":{"type":"string"},"buildOutputDir":{"type":"string"},"startCommand":{"type":"string"}},"default":{}},"environmentVariables":{"type":"array","items":{"type":"object","properties":{"key":{"type":"string","minLength":2,"pattern":"^[a-zA-Z]([a-zA-Z0-9_])+$"},"value":{"type":"string","minLength":1},"isSecret":{"type":"boolean","default":false}},"required":["key","value"]},"default":[]}},"required":["name","runtime"]}}}},"responses":{"200":{"description":"The project has been created successfully","content":{"application/json":{"schema":{"type":"object","properties":{"id":{"type":"string"},"name":{"type":"string"},"teamId":{"type":"string"},"environments":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string"},"name":{"type":"string"}},"required":["id","name"]}},"productionEnvironment":{"anyOf":[{"type":"object","properties":{"id":{"type":"string"},"name":{"type":"string"}},"required":["id","name"]},{"type":"null"}]},"sourceRepository":{"anyOf":[{"type":"string"},{"type":"null"}]},"runtime":{"enum":["python3.13","python3.14","node22","node24"],"type":"string"},"transport":{"anyOf":[{"enum":["stdio","sse","streamablehttp"],"type":"string"},{"type":"null"}]},"rootDirectory":{"anyOf":[{"type":"string"},{"type":"null"}]},"buildCommand":{"anyOf":[{"type":"string"},{"type":"null"}]},"buildOutputDir":{"anyOf":[{"type":"string"},{"type":"null"}]},"installCommand":{"anyOf":[{"type":"string"},{"type":"null"}]},"startCommand":{"anyOf":[{"type":"string"},{"type":"null"}]},"createdAt":{"type":"string","format":"date-time","x-native-type":"date"}},"required":["id","name","teamId","environments","productionEnvironment","sourceRepository","runtime","transport","rootDirectory","buildCommand","buildOutputDir","installCommand","startCommand","createdAt"]}}}},"400":{"description":"400","content":{"application/json":{"schema":{"oneOf":[{"type":"object","properties":{"defined":{"const":true},"code":{"const":"BAD_REQUEST"},"status":{"const":400},"message":{"type":"string","default":"Bad Request"},"data":{}},"required":["defined","code","status","message"]},{"type":"object","properties":{"defined":{"const":false},"code":{"type":"string"},"status":{"type":"number"},"message":{"type":"string"},"data":{}},"required":["defined","code","status","message"]}]}}}},"403":{"description":"403","content":{"application/json":{"schema":{"oneOf":[{"type":"object","properties":{"defined":{"const":true},"code":{"const":"FORBIDDEN"},"status":{"const":403},"message":{"type":"string","default":"Forbidden"},"data":{}},"required":["defined","code","status","message"]},{"type":"object","properties":{"defined":{"const":false},"code":{"type":"string"},"status":{"type":"number"},"message":{"type":"string"},"data":{}},"required":["defined","code","status","message"]}]}}}},"404":{"description":"404","content":{"application/json":{"schema":{"oneOf":[{"type":"object","properties":{"defined":{"const":true},"code":{"const":"NOT_FOUND"},"status":{"const":404},"message":{"type":"string","default":"Not Found"},"data":{}},"required":["defined","code","status","message"]},{"type":"object","properties":{"defined":{"const":false},"code":{"type":"string"},"status":{"type":"number"},"message":{"type":"string"},"data":{}},"required":["defined","code","status","message"]}]}}}}}}},"/v1/environments/{environmentId}/playground":{"get":{"operationId":"playground.get.v1","summary":"Get playground configuration","description":"Get the playground configuration for an environment","tags":["environments"],"parameters":[{"name":"environmentId","in":"path","required":true,"schema":{"type":"string","description":"The ID of the environment"}}],"responses":{"200":{"description":"The playground configuration","content":{"application/json":{"schema":{"type":"object","properties":{"isPlaygroundEnabled":{"type":"boolean"},"serverMetadata":{"anyOf":[{"type":"object","properties":{"name":{"type":"string"},"description":{"type":"string"},"headers":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string"},"description":{"type":"string"},"isRequired":{"type":"boolean"},"isSecret":{"type":"boolean"}},"required":["name","description","isRequired","isSecret"]}},"examplePrompts":{"type":"array","items":{"type":"object","properties":{"title":{"type":"string","minLength":1,"maxLength":100},"prompt":{"type":"string","minLength":1,"maxLength":500}},"required":["title","prompt"]}}},"required":["name","description","headers","examplePrompts"]},{"type":"null"}]}},"required":["isPlaygroundEnabled","serverMetadata"]}}}},"404":{"description":"404","content":{"application/json":{"schema":{"oneOf":[{"type":"object","properties":{"defined":{"const":true},"code":{"const":"NOT_FOUND"},"status":{"const":404},"message":{"type":"string","default":"Not Found"},"data":{}},"required":["defined","code","status","message"]},{"type":"object","properties":{"defined":{"const":false},"code":{"type":"string"},"status":{"type":"number"},"message":{"type":"string"},"data":{}},"required":["defined","code","status","message"]}]}}}}}},"put":{"operationId":"playground.upsert.v1","summary":"Update playground configuration","description":"Update the playground configuration for an environment. All fields are optional — only provided fields are updated.","tags":["environments"],"parameters":[{"name":"environmentId","in":"path","required":true,"schema":{"type":"string","description":"The ID of the environment"}}],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"isPlaygroundEnabled":{"type":"boolean"},"name":{"type":"string","minLength":1,"maxLength":100},"description":{"type":"string","minLength":1,"maxLength":500},"headers":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string","minLength":1,"maxLength":100},"description":{"type":"string","maxLength":200},"isRequired":{"type":"boolean","default":false},"isSecret":{"type":"boolean","default":false}},"required":["name","description"]}},"examplePrompts":{"type":"array","maxItems":5,"items":{"type":"object","properties":{"title":{"type":"string","minLength":1,"maxLength":100},"prompt":{"type":"string","minLength":1,"maxLength":500}},"required":["title","prompt"]}}}}}}},"responses":{"200":{"description":"The updated playground configuration","content":{"application/json":{"schema":{"type":"object","properties":{"isPlaygroundEnabled":{"type":"boolean"},"serverMetadata":{"anyOf":[{"type":"object","properties":{"name":{"type":"string"},"description":{"type":"string"},"headers":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string"},"description":{"type":"string"},"isRequired":{"type":"boolean"},"isSecret":{"type":"boolean"}},"required":["name","description","isRequired","isSecret"]}},"examplePrompts":{"type":"array","items":{"type":"object","properties":{"title":{"type":"string","minLength":1,"maxLength":100},"prompt":{"type":"string","minLength":1,"maxLength":500}},"required":["title","prompt"]}}},"required":["name","description","headers","examplePrompts"]},{"type":"null"}]}},"required":["isPlaygroundEnabled","serverMetadata"]}}}},"400":{"description":"400","content":{"application/json":{"schema":{"oneOf":[{"type":"object","properties":{"defined":{"const":true},"code":{"const":"BAD_REQUEST"},"status":{"const":400},"message":{"type":"string","default":"Bad Request"},"data":{}},"required":["defined","code","status","message"]},{"type":"object","properties":{"defined":{"const":false},"code":{"type":"string"},"status":{"type":"number"},"message":{"type":"string"},"data":{}},"required":["defined","code","status","message"]}]}}}},"404":{"description":"404","content":{"application/json":{"schema":{"oneOf":[{"type":"object","properties":{"defined":{"const":true},"code":{"const":"NOT_FOUND"},"status":{"const":404},"message":{"type":"string","default":"Not Found"},"data":{}},"required":["defined","code","status","message"]},{"type":"object","properties":{"defined":{"const":false},"code":{"type":"string"},"status":{"type":"number"},"message":{"type":"string"},"data":{}},"required":["defined","code","status","message"]}]}}}}}}},"/v1/tunnels/ticket":{"get":{"operationId":"tunnels.getTicket.v1","summary":"Get a tunnel ticket","description":"Get a signed ticket for establishing a tunnel connection. Requires user authentication (API keys are not supported).","tags":["tunnels"],"responses":{"200":{"description":"The tunnel ticket","content":{"application/json":{"schema":{"type":"object","properties":{"subdomain":{"type":"string","description":"The subdomain assigned to the user"},"ticket":{"type":"string","description":"The signed tunnel ticket"},"tunnelHost":{"type":"string","description":"The tunnel host to connect to"}},"required":["subdomain","ticket","tunnelHost"]}}}},"403":{"description":"403","content":{"application/json":{"schema":{"oneOf":[{"type":"object","properties":{"defined":{"const":true},"code":{"const":"FORBIDDEN"},"status":{"const":403},"message":{"type":"string","default":"Forbidden"},"data":{}},"required":["defined","code","status","message"]},{"type":"object","properties":{"defined":{"const":false},"code":{"type":"string"},"status":{"type":"number"},"message":{"type":"string"},"data":{}},"required":["defined","code","status","message"]}]}}}}}}},"/v1/distribution/publish":{"post":{"operationId":"distribution.publish.v1","summary":"Publish a server to the MCP registry","tags":["distribution"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"projectId":{"type":"string"},"domain":{"type":"string"},"title":{"type":"string","minLength":1,"maxLength":100},"description":{"type":"string","minLength":1,"maxLength":100},"websiteUrl":{"type":"string","maxLength":255,"format":"uri"},"iconSrc":{"type":"string","maxLength":255,"format":"uri"},"dryRun":{"type":"boolean"}},"required":["projectId","domain","title","description"]}}}},"responses":{"200":{"description":"The server has been published successfully","content":{"application/json":{"schema":{"type":"object","properties":{"serverFields":{"type":"object","properties":{"$schema":{"type":"string"},"name":{"type":"string"},"description":{"type":"string"},"version":{"type":"string"},"title":{"type":"string"},"websiteUrl":{"type":"string","format":"uri"},"icons":{"type":"array","items":{"type":"object","properties":{"src":{"type":"string","format":"uri"},"mimeType":{"type":"string"},"sizes":{"type":"array","items":{"type":"string"}}},"required":["src"]}},"remotes":{"type":"array","items":{"type":"object","properties":{"type":{"type":"string"},"url":{"type":"string","format":"uri"},"headers":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string"},"description":{"type":"string"},"isRequired":{"type":"boolean"},"isSecret":{"type":"boolean"}},"required":["name","description"]}}},"required":["type"]}}},"required":["$schema","name","description"]}},"required":["serverFields"]}}}},"400":{"description":"400","content":{"application/json":{"schema":{"oneOf":[{"type":"object","properties":{"defined":{"const":true},"code":{"const":"BAD_REQUEST"},"status":{"const":400},"message":{"type":"string","default":"Bad Request"},"data":{}},"required":["defined","code","status","message"]},{"type":"object","properties":{"defined":{"const":false},"code":{"type":"string"},"status":{"type":"number"},"message":{"type":"string"},"data":{}},"required":["defined","code","status","message"]}]}}}},"404":{"description":"404","content":{"application/json":{"schema":{"oneOf":[{"type":"object","properties":{"defined":{"const":true},"code":{"const":"NOT_FOUND"},"status":{"const":404},"message":{"type":"string","default":"Not Found"},"data":{}},"required":["defined","code","status","message"]},{"type":"object","properties":{"defined":{"const":false},"code":{"type":"string"},"status":{"type":"number"},"message":{"type":"string"},"data":{}},"required":["defined","code","status","message"]}]}}}}}}},"/v1/distribution/get":{"get":{"operationId":"distribution.get.v1","summary":"Get server info","description":"Get info about a server","tags":["distribution"],"parameters":[{"name":"projectId","in":"query","required":true,"schema":{"type":"string"},"allowEmptyValue":true,"allowReserved":true},{"name":"domain","in":"query","required":true,"schema":{"type":"string"},"allowEmptyValue":true,"allowReserved":true}],"responses":{"200":{"description":"The server info","content":{"application/json":{"schema":{"type":"object","properties":{"serverFields":{"type":"object","properties":{"$schema":{"type":"string"},"name":{"type":"string"},"description":{"type":"string"},"version":{"type":"string"},"title":{"type":"string"},"websiteUrl":{"type":"string","format":"uri"},"icons":{"type":"array","items":{"type":"object","properties":{"src":{"type":"string","format":"uri"},"mimeType":{"type":"string"},"sizes":{"type":"array","items":{"type":"string"}}},"required":["src"]}},"remotes":{"type":"array","items":{"type":"object","properties":{"type":{"type":"string"},"url":{"type":"string","format":"uri"},"headers":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string"},"description":{"type":"string"},"isRequired":{"type":"boolean"},"isSecret":{"type":"boolean"}},"required":["name","description"]}}},"required":["type"]}}},"required":["$schema","name","description"]}},"required":["serverFields"]}}}},"400":{"description":"400","content":{"application/json":{"schema":{"oneOf":[{"type":"object","properties":{"defined":{"const":true},"code":{"const":"BAD_REQUEST"},"status":{"const":400},"message":{"type":"string","default":"Bad Request"},"data":{}},"required":["defined","code","status","message"]},{"type":"object","properties":{"defined":{"const":false},"code":{"type":"string"},"status":{"type":"number"},"message":{"type":"string"},"data":{}},"required":["defined","code","status","message"]}]}}}},"404":{"description":"404","content":{"application/json":{"schema":{"oneOf":[{"type":"object","properties":{"defined":{"const":true},"code":{"const":"NOT_FOUND"},"status":{"const":404},"message":{"type":"string","default":"Not Found"},"data":{}},"required":["defined","code","status","message"]},{"type":"object","properties":{"defined":{"const":false},"code":{"type":"string"},"status":{"type":"number"},"message":{"type":"string"},"data":{}},"required":["defined","code","status","message"]}]}}}}}}},"/v1/beacon/audits":{"post":{"operationId":"beacon.create.v1","summary":"Create a beacon audit","description":"Audit an MCP server for spec compliance and AI client compatibility","tags":["beacon"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"targetUrl":{"type":"string","format":"uri","description":"The HTTPS URL of the MCP server to audit"},"teamId":{"type":"string","description":"The team ID to associate the audit with"},"projectId":{"type":"string","description":"The project ID to associate the audit with"},"excludeCategories":{"type":"array","items":{"enum":["connectivity","tool-metadata","resource-metadata","performance","e2e"],"type":"string"},"description":"Check categories to exclude from the audit"}},"required":["targetUrl"]}}}},"responses":{"200":{"description":"The audit has been created","content":{"application/json":{"schema":{"type":"object","properties":{"id":{"type":"string"}},"required":["id"]}}}},"400":{"description":"400","content":{"application/json":{"schema":{"oneOf":[{"type":"object","properties":{"defined":{"const":true},"code":{"const":"BAD_REQUEST"},"status":{"const":400},"message":{"type":"string","default":"Bad Request"},"data":{}},"required":["defined","code","status","message"]},{"type":"object","properties":{"defined":{"const":true},"code":{"const":"DNS_RESOLUTION_FAILED"},"status":{"const":400},"message":{"type":"string","default":"DNS_RESOLUTION_FAILED"},"data":{}},"required":["defined","code","status","message"]},{"type":"object","properties":{"defined":{"const":false},"code":{"type":"string"},"status":{"type":"number"},"message":{"type":"string"},"data":{}},"required":["defined","code","status","message"]}]}}}},"404":{"description":"404","content":{"application/json":{"schema":{"oneOf":[{"type":"object","properties":{"defined":{"const":true},"code":{"const":"NOT_FOUND"},"status":{"const":404},"message":{"type":"string","default":"Not Found"},"data":{}},"required":["defined","code","status","message"]},{"type":"object","properties":{"defined":{"const":false},"code":{"type":"string"},"status":{"type":"number"},"message":{"type":"string"},"data":{}},"required":["defined","code","status","message"]}]}}}}}}},"/v1/beacon/audits/{auditId}":{"get":{"operationId":"beacon.get.v1","summary":"Get a beacon audit","description":"Get a beacon audit by ID, including the report if completed","tags":["beacon"],"parameters":[{"name":"auditId","in":"path","required":true,"schema":{"type":"string","description":"The ID of the audit"}}],"responses":{"200":{"description":"The audit details","content":{"application/json":{"schema":{"type":"object","properties":{"id":{"type":"string"},"targetUrl":{"type":"string"},"status":{"enum":["pending","partial","completed","failed"],"type":"string"},"durationMs":{"anyOf":[{"type":"number"},{"type":"null"}]},"createdAt":{"type":"string","format":"date-time","x-native-type":"date"},"report":{"anyOf":[{"type":"object","properties":{"schemaVersion":{"type":"string"},"auditId":{"type":"string"},"targetUrl":{"type":"string"},"startedAt":{"type":"string"},"completedAt":{"type":"string"},"durationMs":{"type":"number"},"results":{"type":"array","items":{"type":"object","properties":{"checkId":{"type":"string"},"checkName":{"type":"string"},"description":{"type":"string"},"status":{"enum":["pass","fail","skip","pending"],"type":"string"},"message":{"type":"string"},"skipReason":{"type":"string"},"severity":{"enum":["error","warning","info"],"type":"string"},"category":{"enum":["connectivity","tool-metadata","resource-metadata","performance","e2e"],"type":"string"},"scope":{"enum":["server","view"],"type":"string"},"platforms":{"type":"array","items":{"enum":["chatgpt","claudeai"],"type":"string"},"readOnly":true},"durationMs":{"type":"number"},"details":{"type":"array","items":{"type":"object","properties":{"label":{"type":"string"},"value":{"type":"string"}},"required":["label"]}},"hint":{"type":"object","properties":{"text":{"type":"string"}},"required":["text"]}},"required":["checkId","checkName","description","status","message","severity","category","scope","durationMs"]}},"requiresAuth":{"type":"boolean"},"hasViewSupport":{"type":"boolean"},"viewPlatforms":{"type":"array","items":{"enum":["chatgpt","claudeai"],"type":"string"},"readOnly":true},"isReadyForPlatform":{"type":"object","propertyNames":{"enum":["chatgpt","claudeai"],"type":"string"},"additionalProperties":{"type":"boolean"}},"widgetScreenshotKeys":{"type":"object","properties":{"chatgpt":{"type":"string"},"claudeai":{"type":"string"}}},"widgetScreenshots":{"type":"object","properties":{"chatgpt":{"type":"object","properties":{"url":{"type":"string"}},"required":["url"]},"claudeai":{"type":"object","properties":{"url":{"type":"string"}},"required":["url"]}}}},"required":["schemaVersion","auditId","targetUrl","startedAt","completedAt","durationMs","results","requiresAuth","hasViewSupport","isReadyForPlatform","widgetScreenshotKeys","widgetScreenshots"]},{"type":"null"}]}},"required":["id","targetUrl","status","durationMs","createdAt","report"]}}}},"404":{"description":"404","content":{"application/json":{"schema":{"oneOf":[{"type":"object","properties":{"defined":{"const":true},"code":{"const":"NOT_FOUND"},"status":{"const":404},"message":{"type":"string","default":"Not Found"},"data":{}},"required":["defined","code","status","message"]},{"type":"object","properties":{"defined":{"const":false},"code":{"type":"string"},"status":{"type":"number"},"message":{"type":"string"},"data":{}},"required":["defined","code","status","message"]}]}}}}}}}}}