Every API here is available over the APIs.io API and to AI agents over MCP.
{"openapi":"3.0.0","info":{"title":"briq API","version":"0.0.0","description":"Services and sandboxes for AI agents."},"servers":[{"url":"https://api.briq.cloud"}],"components":{"securitySchemes":{"bearer":{"type":"http","scheme":"bearer","bearerFormat":"bq_live_…"}},"schemas":{"KeyPolicy":{"type":"object","properties":{"maxConcurrentBriqs":{"type":"integer","minimum":0,"default":5},"dailySpendCapCents":{"type":"integer","minimum":0,"default":1000},"allowedSizes":{"type":"array","items":{"type":"string","enum":["nano","small","medium","large"]},"default":["nano","small","medium"]},"allowedRegistries":{"type":"array","items":{"type":"string"},"default":["docker.io","ghcr.io","quay.io"]},"maxSleep":{"type":"string","pattern":"^(?:never|[1-9][0-9]{0,4}[mhd])$","default":"never","description":"The longest sleep this credential may give a briq, \"never\" included (\"never\": no bound of its own; the environment and the plan still apply)"},"expiresAt":{"type":"string","nullable":true,"format":"date-time","default":null}}},"Briq":{"type":"object","properties":{"id":{"type":"string"},"teamId":{"type":"string"},"stackId":{"type":"string"},"name":{"type":"string","minLength":1,"maxLength":32,"pattern":"^[a-z0-9]+(?:-[a-z0-9]+)*$"},"image":{"type":"string","minLength":3,"maxLength":255,"pattern":"^[a-z0-9][a-z0-9._\\/-]*(?::[\\w.-]+)?(?:@sha256:[a-f0-9]{64})?$"},"size":{"type":"string","enum":["nano","small","medium","large"]},"state":{"type":"string","enum":["creating","running","stopping","stopped","sleeping","starting","resizing","destroying","destroyed","error"]},"internalHost":{"type":"string","description":"Its address on the team's private network"},"endpoints":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string"},"port":{"type":"integer"},"protocol":{"type":"string","enum":["http","postgres","mysql","redis","mongodb","amqp","bolt","grpc"],"default":"http","description":"http: a URL; a database protocol (postgres, mysql, redis, mongodb, amqp, bolt, grpc): a TCP endpoint, reachable from outside over TLS, url is its address without the password"},"mode":{"type":"string","enum":["public","private"],"description":"public: anyone can open the URL; private: only whoever has the URL, which carries a secret checked before a request reaches the briq"},"url":{"type":"string","format":"uri"}},"required":["id","port","mode","url"]},"description":"Its URL, once published (one at most), and its TCP endpoint, once published"},"ports":{"type":"array","items":{"type":"integer"},"default":[]},"databasePorts":{"type":"array","items":{"type":"object","properties":{"port":{"type":"integer"},"protocol":{"type":"string","enum":["http","postgres","mysql","redis","mongodb","amqp","bolt","grpc"]}},"required":["port","protocol"]},"default":[],"description":"Its recipe's database ports: briq_expose one with its protocol for a TCP endpoint"},"expose":{"type":"integer","nullable":true,"default":null},"env":{"type":"object","additionalProperties":{"anyOf":[{"type":"string","maxLength":32768},{"type":"object","properties":{"secret":{"type":"string","minLength":1,"maxLength":128,"pattern":"^[A-Za-z_][A-Za-z0-9_.-]*$"},"value":{"type":"string","maxLength":32768},"scope":{"type":"string","enum":["boot","team"]},"hosts":{"type":"array","items":{"type":"string","minLength":1,"maxLength":253,"pattern":"^(\\*\\.)?[a-z0-9]([a-z0-9-]*[a-z0-9])?(\\.[a-z0-9]([a-z0-9-]*[a-z0-9])?)+$"},"minItems":1,"maxItems":20},"locations":{"type":"array","items":{"type":"string","enum":["header","body"]},"minItems":1}},"required":["secret"],"additionalProperties":false}]},"default":{},"description":"As declared: plain values, and { secret: NAME } for secrets, whose values never appear"},"createdAt":{"type":"string","format":"date-time"},"startedAt":{"type":"string","nullable":true,"format":"date-time","description":"When its current run started (its last run, while it is not running)"},"sleep":{"type":"string","pattern":"^(?:never|[1-9][0-9]{0,4}[mhd])$","description":"When the briq goes to sleep: after this long without use (agent calls, visits to its stack's URLs). A string: \"30m\", \"3h\", \"7d\" or \"never\", never a number. A sleeping briq keeps its disk, costs nothing for compute, and the next use wakes it. \"never\" keeps it always on (Pro plan and above)"},"sleepsAt":{"type":"string","nullable":true,"format":"date-time","description":"When it goes to sleep unless it is used before then: every use moves this later. Null when it is not running or never sleeps"},"lastUsedAt":{"type":"string","nullable":true,"format":"date-time"},"costCentsSoFar":{"type":"number","description":"Euro cents billed so far, fractions of a cent included"},"error":{"type":"string","nullable":true},"destroysAt":{"type":"string","nullable":true,"format":"date-time","default":null,"description":"When a briq in error is destroyed automatically; null in any other state"},"stoppedReason":{"type":"string","nullable":true,"enum":["idle","cap","credits","user","provider","exited"],"default":null,"description":"Why it is stopped or sleeping. idle and provider: asleep, the next call or visit wakes it. cap and credits: a limit, asleep again once it has cleared. user and exited: only briq_start runs it again"},"lastExit":{"type":"object","nullable":true,"properties":{"code":{"type":"integer"},"oomKilled":{"type":"boolean"},"at":{"type":"string","format":"date-time"}},"default":null,"required":["code","oomKilled","at"],"description":"The last time its process ended on its own: exit code (128 + n for signal n), whether it ran out of memory, and when"},"files":{"type":"array","items":{"type":"object","properties":{"path":{"type":"string"},"bytes":{"type":"integer"}},"required":["path","bytes"]},"default":[],"description":"Its boot files, by path and size; their content is not returned"},"forkedFrom":{"type":"string","nullable":true,"default":null},"volume":{"type":"object","nullable":true,"properties":{"mount":{"type":"string"},"gb":{"type":"integer"}},"default":null,"required":["mount","gb"],"description":"Its volume: where it is mounted and its size in GB; null without one"}},"required":["id","teamId","stackId","name","image","size","state","internalHost","endpoints","createdAt","startedAt","sleep","sleepsAt","lastUsedAt","costCentsSoFar","error"]},"RunResult":{"type":"object","properties":{"briqs":{"type":"array","items":{"$ref":"#/components/schemas/Briq"}},"outputs":{"type":"object","additionalProperties":{"type":"string"},"default":{},"description":"A recipe's connection strings, the secrets briq generated (never ones you passed in), and URL when published"},"recipe":{"type":"string","nullable":true},"costLine":{"type":"string"}},"required":["briqs","recipe","costLine"]},"BriqSpec":{"type":"object","properties":{"name":{"type":"string","minLength":1,"maxLength":32,"pattern":"^[a-z0-9]+(?:-[a-z0-9]+)*$"},"image":{"type":"string","minLength":3,"maxLength":255,"pattern":"^[a-z0-9][a-z0-9._\\/-]*(?::[\\w.-]+)?(?:@sha256:[a-f0-9]{64})?$"},"cmd":{"anyOf":[{"type":"string","minLength":1,"maxLength":8192},{"type":"array","items":{"type":"string","maxLength":8192},"maxItems":64}],"description":"The command: a string, run with sh -c (\"npm start\"), or the argv. Default: the image's"},"entrypoint":{"type":"array","items":{"type":"string","maxLength":8192},"maxItems":64},"env":{"type":"object","additionalProperties":{"anyOf":[{"type":"string","maxLength":32768},{"type":"object","properties":{"secret":{"type":"string","minLength":1,"maxLength":128,"pattern":"^[A-Za-z_][A-Za-z0-9_.-]*$"},"value":{"type":"string","maxLength":32768},"scope":{"type":"string","enum":["boot","team"]},"hosts":{"type":"array","items":{"type":"string","minLength":1,"maxLength":253,"pattern":"^(\\*\\.)?[a-z0-9]([a-z0-9-]*[a-z0-9])?(\\.[a-z0-9]([a-z0-9-]*[a-z0-9])?)+$"},"minItems":1,"maxItems":20},"locations":{"type":"array","items":{"type":"string","enum":["header","body"]},"minItems":1}},"required":["secret"],"additionalProperties":false}]},"default":{},"description":"A string; { secret: NAME } for a value briq generates; { secret: NAME, value } for a credential you have, stored encrypted and never returned. Plain values are shown in status. {{briq:NAME}} in a plain value becomes the address of briq NAME in the stack; {{self:host}}, the hostname of its own URL when it is published as it is created (localhost without one)"},"ports":{"type":"array","items":{"type":"integer","minimum":1,"maximum":65535},"maxItems":32,"default":[],"description":"The ports the image listens on"},"size":{"type":"string","enum":["nano","small","medium","large"],"default":"small"},"volume":{"type":"object","properties":{"mount":{"type":"string","maxLength":255},"gb":{"type":"integer","minimum":1,"maximum":500,"default":2},"copy":{"type":"string","enum":["never"],"description":"\"never\": no fork of the briq and no backup of the volume, for one that holds sign-ins"}},"required":["mount"]},"files":{"type":"object","additionalProperties":{"anyOf":[{"type":"string"},{"type":"object","properties":{"base64":{"type":"string"}},"required":["base64"]}]},"description":"Boot files, absolute path → text or { base64 }: written before the process starts and again whenever it starts over. At most 64 files and 256 KB in all"},"healthcheck":{"type":"object","properties":{"cmd":{"type":"array","items":{"type":"string","maxLength":8192},"minItems":1,"maxItems":64},"intervalMs":{"type":"integer","minimum":500,"default":2000},"timeoutMs":{"type":"integer","minimum":1000,"maximum":300000,"default":60000}},"required":["cmd"]},"sleep":{"type":"string","pattern":"^(?:never|[1-9][0-9]{0,4}[mhd])$","description":"When the briq goes to sleep: after this long without use (agent calls, visits to its stack's URLs). A string: \"30m\", \"3h\", \"7d\" or \"never\", never a number. A sleeping briq keeps its disk, costs nothing for compute, and the next use wakes it. \"never\" keeps it always on (Pro plan and above)"},"expose":{"type":"integer","minimum":1,"maximum":65535,"description":"The port a public URL delivers to, when the briq has several: its front door. Declaring it publishes nothing"}},"required":["name","image"]},"RunBody":{"anyOf":[{"type":"object","properties":{"spec":{"$ref":"#/components/schemas/BriqSpec"},"stack":{"type":"string"},"expose":{"type":"string","enum":["public","private"],"description":"Publish it as it is created: \"private\" for only whoever has the URL (it carries a secret), \"public\" for anyone. Left out, nothing is published. The URL comes back as outputs.URL. The port is spec.expose, or the only one in spec.ports"},"wait":{"type":"boolean","default":true,"description":"Answer once the briqs are ready (healthcheck passed, or process started)"},"waitTimeoutMs":{"type":"integer","maximum":300000,"default":120000,"description":"How long to wait; a briq still creating then is on its way"}},"required":["spec"]},{"type":"object","properties":{"image":{"type":"string","minLength":3,"maxLength":255,"pattern":"^[a-z0-9][a-z0-9._\\/-]*(?::[\\w.-]+)?(?:@sha256:[a-f0-9]{64})?$","description":"Another tag (postgres:17) or a compatible image (pgvector/pgvector:pg16). Default: the recipe's"},"env":{"type":"object","additionalProperties":{"anyOf":[{"type":"string","maxLength":32768},{"type":"object","properties":{"secret":{"type":"string","minLength":1,"maxLength":128,"pattern":"^[A-Za-z_][A-Za-z0-9_.-]*$"},"value":{"type":"string","maxLength":32768},"scope":{"type":"string","enum":["boot","team"]},"hosts":{"type":"array","items":{"type":"string","minLength":1,"maxLength":253,"pattern":"^(\\*\\.)?[a-z0-9]([a-z0-9-]*[a-z0-9])?(\\.[a-z0-9]([a-z0-9-]*[a-z0-9])?)+$"},"minItems":1,"maxItems":20},"locations":{"type":"array","items":{"type":"string","enum":["header","body"]},"minItems":1}},"required":["secret"],"additionalProperties":false}]},"description":"Added to the recipe's env, or replacing one of its values: a string, or { secret: NAME, value } for a credential"},"cmd":{"anyOf":[{"type":"string","minLength":1,"maxLength":8192},{"type":"array","items":{"type":"string","maxLength":8192},"maxItems":64}],"description":"The command: a string run with sh -c (\"npm start\"), or the argv. A language recipe's start command"},"size":{"type":"string","enum":["nano","small","medium","large"]},"volume":{"type":"object","properties":{"gb":{"type":"integer","minimum":1,"maximum":500}},"required":["gb"],"description":"The volume: { gb }"},"files":{"type":"object","additionalProperties":{"anyOf":[{"type":"string"},{"type":"object","properties":{"base64":{"type":"string"}},"required":["base64"]}]},"description":"Files, path → text or { base64 }: an app's code for a language recipe"},"ports":{"type":"array","items":{"type":"integer","minimum":1,"maximum":65535},"description":"A language recipe: the port the app listens on, [8080] by default"},"checkout":{"type":"object","properties":{"repo":{"type":"string"},"ref":{"type":"string"},"path":{"type":"string"},"token":{"type":"object","properties":{"secret":{"type":"string","minLength":1,"maxLength":128,"pattern":"^[A-Za-z_][A-Za-z0-9_.-]*$"},"value":{"type":"string"}},"required":["secret"]}},"required":["repo"],"description":"A language or static recipe: the code from a repo, as actions/checkout. { repo: \"github.com/owner/app\", ref?, path?, token? }"},"steps":{"type":"array","items":{"type":"object","properties":{"run":{"type":"string"}},"required":["run"]},"description":"A language recipe: shell commands run before the app starts, as GitHub Actions steps. [{ run: \"npm ci\" }, { run: \"npm run build\" }]"},"routes":{"type":"object","additionalProperties":{"type":"string"},"description":"The nginx recipe: path prefix → \"briq:port\", e.g. { \"/api/\": \"backend:8080\" }"},"recipe":{"type":"string","description":"A recipe (GET /v1/recipes). Beside it, the fields of the service it makes, as a GitHub Actions service: image, env, cmd, size, volume, files; a language recipe also takes checkout, steps and ports. GET /v1/recipes/{name} lists what each takes and its defaults"},"name":{"type":"string"},"stack":{"type":"string"},"expose":{"type":"string","enum":["public","private"],"description":"Publish the recipe's front door as it is created: \"private\" for only whoever has the URL (it carries a secret), \"public\" for anyone. Left out, nothing is published. The URL comes back as outputs.URL. A recipe with no front door (a database) refuses it"},"sleep":{"type":"string","pattern":"^(?:never|[1-9][0-9]{0,4}[mhd])$","description":"When the briq goes to sleep: after this long without use (agent calls, visits to its stack's URLs). A string: \"30m\", \"3h\", \"7d\" or \"never\", never a number. A sleeping briq keeps its disk, costs nothing for compute, and the next use wakes it. \"never\" keeps it always on (Pro plan and above). One window for every briq the recipe makes; left out, the environment's default"},"wait":{"type":"boolean","default":true,"description":"Answer once the briqs are ready (healthcheck passed, or process started)"},"waitTimeoutMs":{"type":"integer","maximum":300000,"default":120000,"description":"How long to wait; a briq still creating then is on its way"}},"required":["recipe"]}]},"Exec":{"type":"object","properties":{"id":{"type":"string"},"briqId":{"type":"string"},"cmd":{"type":"array","items":{"type":"string"}},"state":{"type":"string","enum":["running","exited","timed_out","stopped","lost"],"description":"running until it ends: exited (by itself, see exitCode), timed_out (stopped at deadlineAt), stopped (on request), lost (the machine restarted without it)"},"exitCode":{"type":"number","nullable":true},"startedAt":{"type":"string"},"deadlineAt":{"type":"string"},"finishedAt":{"type":"string","nullable":true},"outputDir":{"type":"string","description":"Where the whole output is, in the briq: files out and err"},"briqRunning":{"type":"boolean","description":"False when the briq is not running: the state is the last one seen, and output is absent until it starts"},"output":{"type":"object","properties":{"stdout":{"type":"string"},"stderr":{"type":"string"},"stdoutBytes":{"type":"number"},"stderrBytes":{"type":"number"}},"required":["stdout","stderr","stdoutBytes","stderrBytes"],"description":"The last 64 KB of each stream and their whole sizes; absent when the briq is not running, and with offset (read instead)"},"read":{"type":"object","properties":{"stream":{"type":"string","enum":["stdout","stderr"]},"offset":{"type":"number","description":"Where data starts, in bytes"},"data":{"type":"string","description":"Up to 256 KB from offset, cut at a whole UTF-8 character"},"nextOffset":{"type":"number","description":"The offset to read from next"},"bytes":{"type":"number","description":"The stream's whole size so far, in bytes"},"eof":{"type":"boolean","description":"The command ended and data reaches the end of the stream: nothing more comes"}},"required":["stream","offset","data","nextOffset","bytes","eof"],"description":"With offset: one stream from that byte offset"},"input":{"type":"object","properties":{"open":{"type":"boolean","description":"False once an eof was written"},"seq":{"type":"number","description":"The last write taken; the next one is seq + 1"}},"required":["open","seq"],"description":"Its standard input, when started with stdinOpen"}},"required":["id","briqId","cmd","state","exitCode","startedAt","deadlineAt","finishedAt","outputDir","briqRunning"]},"ExecStarted":{"type":"object","properties":{"exec":{"$ref":"#/components/schemas/Exec"},"costLine":{"type":"string"}},"required":["exec","costLine"]},"ExecList":{"type":"object","properties":{"execs":{"type":"array","items":{"$ref":"#/components/schemas/Exec"}}},"required":["execs"]},"ExecCheck":{"type":"object","properties":{"exec":{"$ref":"#/components/schemas/Exec"},"costLine":{"type":"string"}},"required":["exec","costLine"]},"ExecInputResult":{"type":"object","properties":{"seq":{"type":"number","description":"The number this write has"},"duplicate":{"type":"boolean","description":"True when that seq was already taken: nothing was written this time"},"costLine":{"type":"string"}},"required":["seq","duplicate","costLine"]},"ExecInputBody":{"type":"object","properties":{"data":{"type":"string","description":"Text to write, at most 64 KB as UTF-8"},"base64":{"type":"string","pattern":"^[A-Za-z0-9+/]*={0,2}$","description":"Bytes to write, as base64; instead of data"},"eof":{"type":"boolean","description":"Close the input after this write: the command reads end of file"},"seq":{"type":"integer","minimum":1,"description":"This write's number: the last one's plus one (input.seq of the exec, +1). The briq takes each number once, so a write sent again is not written twice. Without it, the next number"}}},"SleepBody":{"type":"object","properties":{"sleep":{"type":"string","pattern":"^(?:never|[1-9][0-9]{0,4}[mhd])$","description":"When the briq goes to sleep: after this long without use (agent calls, visits to its stack's URLs). A string: \"30m\", \"3h\", \"7d\" or \"never\", never a number. A sleeping briq keeps its disk, costs nothing for compute, and the next use wakes it. \"never\" keeps it always on (Pro plan and above)"},"stack":{"type":"boolean","default":false,"description":"true: give the same sleep to every briq of its stack, which sleeps and wakes together"}},"required":["sleep"]},"ForkResult":{"type":"object","properties":{"briqs":{"type":"array","items":{"$ref":"#/components/schemas/Briq"}},"copied":{"type":"object","additionalProperties":{"type":"string","enum":["memory","disk","config"]}},"outputs":{"type":"object","additionalProperties":{"type":"string"},"default":{}},"stack":{"type":"string"},"skipped":{"type":"array","items":{"type":"string"},"default":[]},"warning":{"type":"string"},"costLine":{"type":"string"}},"required":["briqs","copied","stack","costLine"]},"ForkBody":{"type":"object","properties":{"name":{"type":"string"},"stack":{"type":"string"},"sleep":{"type":"string","pattern":"^(?:never|[1-9][0-9]{0,4}[mhd])$","description":"When the briq goes to sleep: after this long without use (agent calls, visits to its stack's URLs). A string: \"30m\", \"3h\", \"7d\" or \"never\", never a number. A sleeping briq keeps its disk, costs nothing for compute, and the next use wakes it. \"never\" keeps it always on (Pro plan and above). Left out, the source's. A window longer than this key allows is refused"},"wait":{"type":"boolean","default":true},"waitTimeoutMs":{"type":"integer","maximum":300000,"default":120000}}},"ResizeBody":{"type":"object","properties":{"size":{"type":"string","enum":["nano","small","medium","large"],"description":"The new size. A running briq restarts at it"},"volume":{"type":"object","properties":{"gb":{"type":"integer","minimum":1,"maximum":500}},"required":["gb"],"description":"The volume, grown to { gb }: it only grows, and keeps what it holds"}}},"StackUpResult":{"type":"object","properties":{"stack":{"type":"string"},"briqs":{"type":"array","items":{"$ref":"#/components/schemas/Briq"},"description":"Every briq of the file's services, in file order: made now, or there already"},"created":{"type":"array","items":{"type":"string"},"description":"The services this up made"},"existing":{"type":"array","items":{"type":"string"},"description":"The services the stack had: left as they are"},"warnings":{"type":"array","items":{"type":"string"},"description":"An endpoint the file asks for that could not be opened yet; with `expose`, a briq not running whose outputs stay internal"},"outputs":{"type":"object","additionalProperties":{"type":"string"},"description":"Each recipe's connection strings, the secrets briq generated, and `<briq>:URL` for each published service. A key two services both have is `<briq>:<KEY>`"},"costLine":{"type":"string"}},"required":["stack","briqs","created","existing","outputs","costLine"]},"StackUpBody":{"type":"object","properties":{"file":{"type":"string","minLength":1,"description":"The stack file's content, YAML or JSON (briq.yaml)"},"stack":{"type":"string","description":"The stack to bring up instead of the file's `stack`: a branch's, a fork's"},"secrets":{"type":"object","additionalProperties":{"type":"string","maxLength":32768},"description":"Values for the secrets the file names as { secret: NAME }: an API key briq cannot generate. Never in the file. A secret without a value here is generated"},"expose":{"type":"boolean","description":"Reach the stack from outside briq: database ports get TLS endpoints, and outputs use them and the URLs the file publishes. Waits for the briqs. The file's own `expose` still decides each URL's mode"},"wait":{"type":"boolean","default":true,"description":"Answer once the briqs are ready (healthcheck passed, or process started)"},"waitTimeoutMs":{"type":"integer","maximum":300000,"default":120000,"description":"How long to wait; a briq still creating then is on its way"}},"required":["file"]},"StackForkBody":{"type":"object","properties":{"into":{"type":"string"},"expose":{"type":"string","enum":["public","private"],"description":"Reach the fork from outside briq: database ports get TLS endpoints, front doors a URL in this mode (\"private\": only whoever has it). Outputs then use them. Waits for the forks"},"sleep":{"type":"string","pattern":"^(?:never|[1-9][0-9]{0,4}[mhd])$","description":"When the briq goes to sleep: after this long without use (agent calls, visits to its stack's URLs). A string: \"30m\", \"3h\", \"7d\" or \"never\", never a number. A sleeping briq keeps its disk, costs nothing for compute, and the next use wakes it. \"never\" keeps it always on (Pro plan and above). Left out, the source's. A window longer than this key allows is refused"},"wait":{"type":"boolean","default":true},"waitTimeoutMs":{"type":"integer","maximum":300000,"default":120000}}},"RecipeParam":{"type":"object","properties":{"name":{"type":"string"},"type":{"type":"string"},"options":{"type":"array","nullable":true,"items":{"type":"string"},"description":"The allowed values, for an enum"},"defaultValue":{"type":"string","nullable":true,"description":"JSON of the default, when there is one"},"required":{"type":"boolean"},"description":{"type":"string","nullable":true},"format":{"type":"string","nullable":true,"description":"The shape of a record or object value, e.g. `{ url, ref?, dir?, token? }`"}},"required":["name","type","options","defaultValue","required","description"]}},"parameters":{}},"paths":{"/v1/auth/providers":{"get":{"tags":["account"],"summary":"Social sign-in providers this deployment offers","responses":{"200":{"description":"ok","content":{"application/json":{"schema":{"type":"object","properties":{"providers":{"type":"array","items":{"type":"string","enum":["google","github"]}}},"required":["providers"]}}}}}}},"/v1/me":{"get":{"tags":["account"],"summary":"Current user and teams","responses":{"200":{"description":"ok","content":{"application/json":{"schema":{"type":"object","properties":{"user":{"type":"object","properties":{"id":{"type":"string"},"email":{"type":"string"},"name":{"type":"string"},"emailVerified":{"type":"boolean"},"admin":{"type":"boolean"}},"required":["id","email","name","emailVerified","admin"]},"teams":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string"},"slug":{"type":"string"},"name":{"type":"string"},"personal":{"type":"boolean"},"plan":{"type":"string","enum":["hobby","pro","team"]},"region":{"type":"string"},"currency":{"type":"string","enum":["eur","usd"]},"role":{"type":"string"},"creditBalanceCents":{"type":"number"},"paysAsItGoes":{"type":"boolean"}},"required":["id","slug","name","personal","plan","region","currency","role","creditBalanceCents","paysAsItGoes"]}},"currentTeamId":{"type":"string"},"regions":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string","enum":["paris","virginia","singapore"]},"label":{"type":"string"},"country":{"type":"string"},"zone":{"type":"string"},"eu":{"type":"boolean"}},"required":["id","label","country","zone","eu"]}},"freeCreditsOnVerifyCents":{"type":"number"},"apiUrl":{"type":"string"},"payments":{"type":"boolean"},"maxSleep":{"type":"string"}},"required":["user","teams","currentTeamId","regions","freeCreditsOnVerifyCents","apiUrl","payments","maxSleep"]}}}},"401":{"description":"ok","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string"},"message":{"type":"string"},"details":{"nullable":true,"description":"More on the error. For invalid_state on a briq whose machine is not running: { machineState, lastExit, providerSaid }, or { lastExit } once it is stopped"},"requestId":{"type":"string"}},"required":["code","message"]}},"required":["error"]}}}}}},"patch":{"tags":["account"],"summary":"Update the current user (name)","requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"name":{"type":"string","minLength":1,"maxLength":80}},"required":["name"]}}}},"responses":{"200":{"description":"ok","content":{"application/json":{"schema":{"type":"object","properties":{"id":{"type":"string"},"name":{"type":"string"}},"required":["id","name"]}}}},"400":{"description":"validation","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string"},"message":{"type":"string"},"details":{"nullable":true,"description":"More on the error. For invalid_state on a briq whose machine is not running: { machineState, lastExit, providerSaid }, or { lastExit } once it is stopped"},"requestId":{"type":"string"}},"required":["code","message"]}},"required":["error"]}}}},"401":{"description":"unauthorized","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string"},"message":{"type":"string"},"details":{"nullable":true,"description":"More on the error. For invalid_state on a briq whose machine is not running: { machineState, lastExit, providerSaid }, or { lastExit } once it is stopped"},"requestId":{"type":"string"}},"required":["code","message"]}},"required":["error"]}}}},"403":{"description":"forbidden","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string"},"message":{"type":"string"},"details":{"nullable":true,"description":"More on the error. For invalid_state on a briq whose machine is not running: { machineState, lastExit, providerSaid }, or { lastExit } once it is stopped"},"requestId":{"type":"string"}},"required":["code","message"]}},"required":["error"]}}}},"404":{"description":"not found","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string"},"message":{"type":"string"},"details":{"nullable":true,"description":"More on the error. For invalid_state on a briq whose machine is not running: { machineState, lastExit, providerSaid }, or { lastExit } once it is stopped"},"requestId":{"type":"string"}},"required":["code","message"]}},"required":["error"]}}}},"409":{"description":"invalid state","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string"},"message":{"type":"string"},"details":{"nullable":true,"description":"More on the error. For invalid_state on a briq whose machine is not running: { machineState, lastExit, providerSaid }, or { lastExit } once it is stopped"},"requestId":{"type":"string"}},"required":["code","message"]}},"required":["error"]}}}}}}},"/v1/teams":{"post":{"tags":["account"],"summary":"Create a team","requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"name":{"type":"string","minLength":2,"maxLength":60},"region":{"type":"string","enum":["paris","virginia","singapore"]},"currency":{"type":"string","enum":["eur","usd"]}},"required":["name"]}}}},"responses":{"201":{"description":"ok","content":{"application/json":{"schema":{"type":"object","properties":{"team":{"type":"object","properties":{"id":{"type":"string"},"slug":{"type":"string"},"name":{"type":"string"},"personal":{"type":"boolean"},"plan":{"type":"string","enum":["hobby","pro","team"]},"region":{"type":"string"},"currency":{"type":"string","enum":["eur","usd"]},"role":{"type":"string"},"creditBalanceCents":{"type":"number"},"paysAsItGoes":{"type":"boolean"}},"required":["id","slug","name","personal","plan","region","currency","role","creditBalanceCents","paysAsItGoes"]}},"required":["team"]}}}},"400":{"description":"validation","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string"},"message":{"type":"string"},"details":{"nullable":true,"description":"More on the error. For invalid_state on a briq whose machine is not running: { machineState, lastExit, providerSaid }, or { lastExit } once it is stopped"},"requestId":{"type":"string"}},"required":["code","message"]}},"required":["error"]}}}},"401":{"description":"unauthorized","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string"},"message":{"type":"string"},"details":{"nullable":true,"description":"More on the error. For invalid_state on a briq whose machine is not running: { machineState, lastExit, providerSaid }, or { lastExit } once it is stopped"},"requestId":{"type":"string"}},"required":["code","message"]}},"required":["error"]}}}},"403":{"description":"forbidden","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string"},"message":{"type":"string"},"details":{"nullable":true,"description":"More on the error. For invalid_state on a briq whose machine is not running: { machineState, lastExit, providerSaid }, or { lastExit } once it is stopped"},"requestId":{"type":"string"}},"required":["code","message"]}},"required":["error"]}}}},"404":{"description":"not found","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string"},"message":{"type":"string"},"details":{"nullable":true,"description":"More on the error. For invalid_state on a briq whose machine is not running: { machineState, lastExit, providerSaid }, or { lastExit } once it is stopped"},"requestId":{"type":"string"}},"required":["code","message"]}},"required":["error"]}}}},"409":{"description":"invalid state","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string"},"message":{"type":"string"},"details":{"nullable":true,"description":"More on the error. For invalid_state on a briq whos
# --- truncated at 32 KB (323 KB total) ---
# Full source: https://artifacts.apis.io/briq-cloud/openapi/_original/briq-cloud-v1-openapi.json