Every API here is available over the APIs.io API and to AI agents over MCP.
openapi: 3.2.0
info:
title: E2B Teams API
version: 0.1.0
description: Complete E2B developer API. Platform endpoints are served on api.e2b.app. Sandbox endpoints (envd) are served on the shared sandbox host (sandbox.e2b.app); target a specific sandbox with the E2b-Sandbox-Id and E2b-Sandbox-Port headers.
servers:
- url: https://api.e2b.app
description: E2B Platform API
security: []
tags:
- name: Teams
paths:
/teams/{teamID}/metrics:
servers:
- url: https://api.e2b.app
description: E2B Platform API
get:
summary: Get team metrics
description: Get metrics for the team
tags:
- Teams
security:
- ApiKeyAuth: []
parameters:
- $ref: '#/components/parameters/teamID'
- in: query
name: start
schema:
type: integer
format: int64
minimum: 0
description: Unix timestamp for the start of the interval, in seconds, for which the metrics are returned.
- in: query
name: end
schema:
type: integer
format: int64
minimum: 0
description: Unix timestamp for the end of the interval, in seconds, for which the metrics are returned.
responses:
'200':
description: Successfully returned the team metrics
content:
application/json:
schema:
type: array
items:
$ref: '#/components/schemas/TeamMetric'
'400':
description: Bad request
content:
application/json:
schema:
required:
- code
- message
properties:
code:
type: integer
format: int32
description: Error code
example: 400
error_code:
type: string
description: 'Machine-readable semantic error code. Not a closed set; initial values: sandbox_capacity_unavailable, sandbox_placement_timeout, sandbox_no_compatible_node, sandbox_create_failed (a node could not create the sandbox this time; retry), sandbox_create_refused (a node refused the sandbox for a reason no retry changes, such as a vcpu count out of bounds in the stored build; a server error, since no request field reaches that check), internal_server_error, secret_limit_reached, idempotency_request_mismatch, idempotency_in_progress, idempotency_outcome_unknown.'
message:
type: string
description: Error
type: object
examples:
invalidTimeRange:
summary: The start timestamp is later than the end timestamp
value:
code: 400
message: start time cannot be after end time
'401':
description: Authentication error
content:
application/json:
schema:
required:
- code
- message
properties:
code:
type: integer
format: int32
description: Error code
example: 401
error_code:
type: string
description: 'Machine-readable semantic error code. Not a closed set; initial values: sandbox_capacity_unavailable, sandbox_placement_timeout, sandbox_no_compatible_node, sandbox_create_failed (a node could not create the sandbox this time; retry), sandbox_create_refused (a node refused the sandbox for a reason no retry changes, such as a vcpu count out of bounds in the stored build; a server error, since no request field reaches that check), internal_server_error, secret_limit_reached, idempotency_request_mismatch, idempotency_in_progress, idempotency_outcome_unknown.'
message:
type: string
description: Error
type: object
examples:
missingAuthentication:
summary: No supported authentication header was supplied
value:
code: 401
message: authorization header is missing
'403':
description: Forbidden
content:
application/json:
schema:
required:
- code
- message
properties:
code:
type: integer
format: int32
description: Error code
example: 403
error_code:
type: string
description: 'Machine-readable semantic error code. Not a closed set; initial values: sandbox_capacity_unavailable, sandbox_placement_timeout, sandbox_no_compatible_node, sandbox_create_failed (a node could not create the sandbox this time; retry), sandbox_create_refused (a node refused the sandbox for a reason no retry changes, such as a vcpu count out of bounds in the stored build; a server error, since no request field reaches that check), internal_server_error, secret_limit_reached, idempotency_request_mismatch, idempotency_in_progress, idempotency_outcome_unknown.'
message:
type: string
description: Error
type: object
examples:
teamBanned:
summary: The team is banned at authentication
value:
code: 403
message: team is banned
'429':
description: Too many requests
headers:
Retry-After:
description: When present, the number of seconds to wait before retrying the request.
required: false
schema:
type: integer
minimum: 0
example: 30
RateLimit-Limit:
description: Configured rate-limit burst size.
schema:
type: integer
RateLimit-Remaining:
description: Requests remaining in the rate-limit window.
schema:
type: integer
RateLimit-Reset:
description: Seconds until the rate-limit window resets.
schema:
type: integer
content:
application/json:
schema:
required:
- code
- message
properties:
code:
type: integer
format: int32
description: Error code
example: 429
error_code:
type: string
description: 'Machine-readable semantic error code. Not a closed set; initial values: sandbox_capacity_unavailable, sandbox_placement_timeout, sandbox_no_compatible_node, sandbox_create_failed (a node could not create the sandbox this time; retry), sandbox_create_refused (a node refused the sandbox for a reason no retry changes, such as a vcpu count out of bounds in the stored build; a server error, since no request field reaches that check), internal_server_error, secret_limit_reached, idempotency_request_mismatch, idempotency_in_progress, idempotency_outcome_unknown.'
message:
type: string
description: Error
type: object
examples:
rateLimitExceeded:
summary: A configured API rate limit was exceeded
value:
code: 429
message: Rate limit exceeded
'500':
description: 'The team-metrics query failed. The message starts with `error querying team metrics: ` followed by the underlying query error.'
content:
application/json:
schema:
required:
- code
- message
properties:
code:
type: integer
format: int32
description: Error code
example: 500
error_code:
type: string
description: 'Machine-readable semantic error code. Not a closed set; initial values: sandbox_capacity_unavailable, sandbox_placement_timeout, sandbox_no_compatible_node, sandbox_create_failed (a node could not create the sandbox this time; retry), sandbox_create_refused (a node refused the sandbox for a reason no retry changes, such as a vcpu count out of bounds in the stored build; a server error, since no request field reaches that check), internal_server_error, secret_limit_reached, idempotency_request_mismatch, idempotency_in_progress, idempotency_outcome_unknown.'
message:
type: string
description: Error
type: object
operationId: getTeamMetrics
/teams/{teamID}/metrics/max:
servers:
- url: https://api.e2b.app
description: E2B Platform API
get:
summary: Get team metrics max
description: Get the maximum metrics for the team in the given interval
tags:
- Teams
security:
- ApiKeyAuth: []
parameters:
- $ref: '#/components/parameters/teamID'
- in: query
name: start
schema:
type: integer
format: int64
minimum: 0
description: Unix timestamp for the start of the interval, in seconds, for which the metrics are returned.
- in: query
name: end
schema:
type: integer
format: int64
minimum: 0
description: Unix timestamp for the end of the interval, in seconds, for which the metrics are returned.
- in: query
name: metric
required: true
schema:
type: string
enum:
- concurrent_sandboxes
- sandbox_start_rate
description: Metric to retrieve the maximum value for
responses:
'200':
description: Successfully returned the team metrics
content:
application/json:
schema:
$ref: '#/components/schemas/MaxTeamMetric'
'400':
description: Bad request
content:
application/json:
schema:
required:
- code
- message
properties:
code:
type: integer
format: int32
description: Error code
example: 400
error_code:
type: string
description: 'Machine-readable semantic error code. Not a closed set; initial values: sandbox_capacity_unavailable, sandbox_placement_timeout, sandbox_no_compatible_node, sandbox_create_failed (a node could not create the sandbox this time; retry), sandbox_create_refused (a node refused the sandbox for a reason no retry changes, such as a vcpu count out of bounds in the stored build; a server error, since no request field reaches that check), internal_server_error, secret_limit_reached, idempotency_request_mismatch, idempotency_in_progress, idempotency_outcome_unknown.'
message:
type: string
description: Error
type: object
examples:
invalidTimeRange:
summary: The start timestamp is later than the end timestamp
value:
code: 400
message: start time cannot be after end time
'401':
description: Authentication error
content:
application/json:
schema:
required:
- code
- message
properties:
code:
type: integer
format: int32
description: Error code
example: 401
error_code:
type: string
description: 'Machine-readable semantic error code. Not a closed set; initial values: sandbox_capacity_unavailable, sandbox_placement_timeout, sandbox_no_compatible_node, sandbox_create_failed (a node could not create the sandbox this time; retry), sandbox_create_refused (a node refused the sandbox for a reason no retry changes, such as a vcpu count out of bounds in the stored build; a server error, since no request field reaches that check), internal_server_error, secret_limit_reached, idempotency_request_mismatch, idempotency_in_progress, idempotency_outcome_unknown.'
message:
type: string
description: Error
type: object
examples:
missingAuthentication:
summary: No supported authentication header was supplied
value:
code: 401
message: authorization header is missing
'403':
description: Forbidden
content:
application/json:
schema:
required:
- code
- message
properties:
code:
type: integer
format: int32
description: Error code
example: 403
error_code:
type: string
description: 'Machine-readable semantic error code. Not a closed set; initial values: sandbox_capacity_unavailable, sandbox_placement_timeout, sandbox_no_compatible_node, sandbox_create_failed (a node could not create the sandbox this time; retry), sandbox_create_refused (a node refused the sandbox for a reason no retry changes, such as a vcpu count out of bounds in the stored build; a server error, since no request field reaches that check), internal_server_error, secret_limit_reached, idempotency_request_mismatch, idempotency_in_progress, idempotency_outcome_unknown.'
message:
type: string
description: Error
type: object
examples:
teamBanned:
summary: The team is banned at authentication
value:
code: 403
message: team is banned
'429':
description: Too many requests
headers:
Retry-After:
description: When present, the number of seconds to wait before retrying the request.
required: false
schema:
type: integer
minimum: 0
example: 30
RateLimit-Limit:
description: Configured rate-limit burst size.
schema:
type: integer
RateLimit-Remaining:
description: Requests remaining in the rate-limit window.
schema:
type: integer
RateLimit-Reset:
description: Seconds until the rate-limit window resets.
schema:
type: integer
content:
application/json:
schema:
required:
- code
- message
properties:
code:
type: integer
format: int32
description: Error code
example: 429
error_code:
type: string
description: 'Machine-readable semantic error code. Not a closed set; initial values: sandbox_capacity_unavailable, sandbox_placement_timeout, sandbox_no_compatible_node, sandbox_create_failed (a node could not create the sandbox this time; retry), sandbox_create_refused (a node refused the sandbox for a reason no retry changes, such as a vcpu count out of bounds in the stored build; a server error, since no request field reaches that check), internal_server_error, secret_limit_reached, idempotency_request_mismatch, idempotency_in_progress, idempotency_outcome_unknown.'
message:
type: string
description: Error
type: object
examples:
rateLimitExceeded:
summary: A configured API rate limit was exceeded
value:
code: 429
message: Rate limit exceeded
'500':
description: Server error
content:
application/json:
schema:
required:
- code
- message
properties:
code:
type: integer
format: int32
description: Error code
example: 500
error_code:
type: string
description: 'Machine-readable semantic error code. Not a closed set; initial values: sandbox_capacity_unavailable, sandbox_placement_timeout, sandbox_no_compatible_node, sandbox_create_failed (a node could not create the sandbox this time; retry), sandbox_create_refused (a node refused the sandbox for a reason no retry changes, such as a vcpu count out of bounds in the stored build; a server error, since no request field reaches that check), internal_server_error, secret_limit_reached, idempotency_request_mismatch, idempotency_in_progress, idempotency_outcome_unknown.'
message:
type: string
description: Error
type: object
examples:
operationFailed:
summary: The maximum-metrics query fails
value:
code: 500
message: Error querying max team metrics
operationId: getTeamMetricsMax
components:
schemas:
MaxTeamMetric:
description: Team metric with timestamp
required:
- timestamp
- timestampUnix
- value
properties:
timestamp:
type: string
format: date-time
deprecated: true
description: Timestamp of the metric entry
timestampUnix:
type: integer
format: int64
description: Timestamp of the metric entry in Unix time (seconds since epoch)
value:
type: number
description: The maximum value of the requested metric in the given interval
type: object
TeamMetric:
description: Team metric with timestamp
required:
- timestamp
- timestampUnix
- concurrentSandboxes
- sandboxStartRate
properties:
timestamp:
type: string
format: date-time
deprecated: true
description: Timestamp of the metric entry
timestampUnix:
type: integer
format: int64
description: Timestamp of the metric entry in Unix time (seconds since epoch)
concurrentSandboxes:
type: integer
format: int32
description: The number of concurrent sandboxes for the team
sandboxStartRate:
type: number
format: float
description: Number of sandboxes started per second
type: object
parameters:
teamID:
name: teamID
in: path
required: true
description: Identifier of the team, as its UUID or its public project ID (prj_)
schema:
type: string
securitySchemes:
AccessTokenAuth:
type: http
scheme: bearer
ApiKeyAuth:
type: apiKey
in: header
name: X-API-Key
SandboxAccessTokenAuth:
type: apiKey
in: header
name: X-Access-Token
description: 'Sandbox access token (`envdAccessToken`) for authenticating requests to a running sandbox. Returned by: [POST /sandboxes](/api-reference/sandboxes/create-sandbox) (on create), [POST /sandboxes/{sandboxID}/connect](/api-reference/sandboxes/connect-to-sandbox) (on connect), [POST /sandboxes/{sandboxID}/resume](/api-reference/sandboxes/resume-sandbox) (on resume), and [GET /sandboxes/{sandboxID}](/api-reference/sandboxes/get-sandbox) (for running or paused sandboxes).'
SandboxUserAuth:
type: http
scheme: basic
description: Optional system user for the operation. Sets file ownership and resolves relative paths. Pass the desired username with no password. Defaults to the sandbox's default user when omitted.
x-provenance:
method: harvested
publisher: E2B
source: https://e2b.dev/openapi.json
note: split by refine-openapis from the provider's own published document, verified by fetch (openapi/_original/*.fetch.json);
stamped by stamp-openapi-provenance.py (roadmap#793)