Sandbox API
Sandbox API
COMMUNITYAPI KEY0 INSTALLS
OpenAPI Specificationv3.0
{
"swagger": "2.0",
"schemes": [
"https"
],
"host": "getsandbox.com",
"basePath": "/api/",
"info": {
"contact": {
"email": "hello@getsandbox.com",
"name": "Sandbox Support",
"url": "https://getsandbox.com"
},
"description": "Sandbox API",
"termsOfService": "https://getsandbox.com/policy/customer-agreement",
"title": "Sandbox API",
"version": "v1",
"x-apisguru-categories": [
"developer_tools"
],
"x-logo": {
"backgroundColor": "#161924",
"url": "https://api.apis.guru/v2/cache/logo/https_getsandbox.com_lib_img_logo-white-72dpi.png"
},
"x-origin": [
{
"format": "swagger",
"url": "https://getsandbox.com/lib/js/vendor/swagger/swagger.json",
"version": "2.0"
}
],
"x-providerName": "getsandbox.com",
"x-tags": [
"sandbox",
"API",
"REST",
"SOAP",
"Swagger",
"OpenAPI"
]
},
"externalDocs": {
"url": "https://getsandbox.com/docs/api/overview"
},
"securityDefinitions": {
"api_key": {
"in": "header",
"name": "API_Key",
"type": "apiKey"
}
},
"tags": [
{
"name": "Activity"
},
{
"name": "Sandbox"
}
],
"paths": {
"/1/activity/search": {
"get": {
"consumes": [
"application/json"
],
"description": "",
"operationId": "getSandboxesActivity",
"parameters": [
{
"description": "Timestamp to start search from, epoch time in milliseconds.",
"format": "int64",
"in": "query",
"name": "fromTimestamp",
"required": false,
"type": "integer"
},
{
"description": "Comma-separated list of Sandbox names to search.",
"in": "query",
"name": "sourceSandboxes",
"required": false,
"type": "string"
},
{
"description": "A keyword to search activities by, will match any part of the ActivityMessage.",
"in": "query",
"name": "keyword",
"required": false,
"type": "string"
},
{
"description": "Flag to return all types of activity, defaults to just Requests",
"in": "query",
"name": "allTypes",
"required": false,
"type": "boolean"
},
{
"description": "Maximum number of results to return",
"format": "int32",
"in": "query",
"name": "maxResults",
"required": false,
"type": "integer"
}
],
"produces": [
"application/json"
],
"responses": {
"200": {
"description": "successful operation",
"examples": {
"application/json": "[\n {\n \"createdTimestamp\": 1464829513623,\n \"messageType\": \"request\",\n \"sandboxId\": \"s-328f0d3a-7cf8-400c-a5e8-dc0e84b737b3\",\n \"messageObject\": {\n \"request\": {\n \"transport\": \"HTTP\",\n \"sandboxId\": \"s-328f0d3a-7cf8-400c-a5e8-dc0e84b737b3\",\n \"sandboxName\": \"testbox\",\n \"fullSandboxName\": \"testbox\",\n \"fullSandboxId\": \"s-328f0d3a-7cf8-400c-a5e8-dc0e84b737b3\",\n \"headers\": {\n \"Accept\": \"*/*\",\n \"Host\": \"testbox.getsandbox.com\",\n \"User-Agent\": \"curl/7.43.0\",\n \"X-Forwarded-For\": \"10.0.2.2\"\n },\n \"properties\": {},\n \"body\": \"\",\n \"ip\": \"10.0.2.2\",\n \"cookies\": {},\n \"query\": {},\n \"accepted\": [\"*/*\"],\n \"url\": \"/hello\",\n \"params\": {},\n \"method\": \"GET\",\n \"path\": \"/hello\",\n \"rawUrl\": \"/hello\",\n \"received_timestamp\": 1464829513575\n },\n \"responses\": [\n {\n \"transport\": \"HTTP\",\n \"body\": \"[\\n \\\"hello\\\"\\n]\",\n \"headers\": {\n \"Content-Type\": \"application/json\"\n },\n \"cookies\": [],\n \"responded_timestamp\": 1464829513609,\n \"duration_ms\": 34,\n \"status\": 200\n }\n ]\n }\n },\n {\n \"createdTimestamp\": 1464829507925,\n \"messageType\": \"request\",\n \"sandboxId\": \"s-328f0d3a-7cf8-400c-a5e8-dc0e84b737b3\",\n \"messageObject\": {\n \"request\": {\n \"transport\": \"HTTP\",\n \"sandboxId\": \"s-328f0d3a-7cf8-400c-a5e8-dc0e84b737b3\",\n \"sandboxName\": \"testbox\",\n \"fullSandboxName\": \"testbox\",\n \"fullSandboxId\": \"s-328f0d3a-7cf8-400c-a5e8-dc0e84b737b3\",\n \"headers\": {\n \"Accept\": \"*/*\",\n \"Host\": \"testbox.getsandbox.com\",\n \"User-Agent\": \"curl/7.43.0\",\n \"X-Forwarded-For\": \"10.0.2.2\"\n },\n \"properties\": {},\n \"body\": \"\",\n \"ip\": \"10.0.2.2\",\n \"cookies\": {},\n \"query\": {},\n \"accepted\": [\"*/*\"],\n \"url\": \"/hello\",\n \"params\": {},\n \"method\": \"GET\",\n \"path\": \"/hello\",\n \"rawUrl\": \"/hello\",\n \"received_timestamp\": 1464829507856\n },\n \"responses\": [\n {\n \"transport\": \"HTTP\",\n \"body\": \"[\\n \\\"hello\\\",\\n \\\"hello\\\",\\n \\\"hello\\\",\\n \\\"hello\\\",\\n \\\"hello\\\",\\n \\\"hello\\\"\\n]\",\n \"headers\": {\n \"Content-Type\": \"application/json\"\n },\n \"cookies\": [],\n \"responded_timestamp\": 1464829507885,\n \"duration_ms\": 29,\n \"status\": 200\n }\n ]\n }\n }\n]"
},
"schema": {
"items": {
"$ref": "#/definitions/ActivityMessage"
},
"type": "array"
}
}
},
"summary": "searchActivity",
"tags": [
"Activity"
]
}
},
"/1/sandboxes": {
"get": {
"consumes": [
"application/json"
],
"description": "",
"operationId": "getSandboxes",
"parameters": [
{
"in": "query",
"name": "filterType",
"required": false,
"type": "string"
}
],
"produces": [
"application/json"
],
"responses": {
"200": {
"description": "successful operation",
"examples": {
"application/json": "[\n {\n \"id\": \"s-328f0d3a-7cf8-400c-a5e8-dc0e84b737b3\",\n \"name\": \"testbox\",\n \"description\": \"\",\n \"configuredRoutes\": [],\n \"hasRepository\": true,\n \"apiDefinition\": \"None\",\n \"stackType\": \"JavaScript\",\n \"runtimeVersion\": \"VERSION_2\",\n \"proxyStatus\": \"STARTED\",\n \"transportType\": \"HTTP\",\n \"properties\": {},\n \"gitUrl\": \"http://git.getsandbox.com/testbox.git\",\n \"sandboxUrl\": \"http://testbox.getsandbox.com\"\n }\n]"
},
"schema": {
"items": {
"$ref": "#/definitions/Sandbox"
},
"type": "array"
}
}
},
"summary": "getSandboxes",
"tags": [
"Sandbox"
]
},
"post": {
"consumes": [
"application/json"
],
"description": "",
"operationId": "createSandbox",
"parameters": [
{
"description": "Sandbox to be created",
"in": "body",
"name": "body",
"required": true,
"schema": {
"$ref": "#/definitions/CreateSandbox"
}
}
],
"produces": [
"application/json"
],
"responses": {
"200": {
"description": "successful operation",
"examples": {
"application/json": "{\n \"id\": \"s-328f0d3a-7cf8-400c-a5e8-dc0e84b737b3\",\n \"name\": \"testbox\",\n \"description\": \"\",\n \"configuredRoutes\": [],\n \"hasRepository\": true,\n \"apiDefinition\": \"None\",\n \"stackType\": \"JavaScript\",\n \"runtimeVersion\": \"VERSION_2\",\n \"proxyStatus\": \"STARTED\",\n \"transportType\": \"HTTP\",\n \"properties\": {},\n \"gitUrl\": \"http://git.getsandbox.com/testbox.git\",\n \"sandboxUrl\": \"http://testbox.getsandbox.com\"\n}"
},
"schema": {
"$ref": "#/definitions/Sandbox"
}
}
},
"summary": "createSandbox",
"tags": [
"Sandbox"
]
}
},
"/1/sandboxes/{sandboxName}": {
"delete": {
"consumes": [
"application/json"
],
"description": "",
"operationId": "deleteSandbox",
"parameters": [
{
"description": "Name of the Sandbox",
"in": "path",
"name": "sandboxName",
"required": true,
"type": "string"
}
],
"produces": [
"application/json"
],
"responses": {
"default": {
"description": "successful operation"
}
},
"summary": "deleteSandbox",
"tags": [
"Sandbox"
]
},
"get": {
"consumes": [
"application/json"
],
"description": "",
"operationId": "getSandbox",
"parameters": [
{
"description": "Name of the Sandbox",
"in": "path",
"name": "sandboxName",
"required": true,
"type": "string"
}
],
"produces": [
"application/json"
],
"responses": {
"200": {
"description": "successful operation",
"examples": {
"application/json": "{\n \"id\": \"s-328f0d3a-7cf8-400c-a5e8-dc0e84b737b3\",\n \"name\": \"testbox\",\n \"description\": \"\",\n \"configuredRoutes\": [],\n \"hasRepository\": true,\n \"apiDefinition\": \"None\",\n \"stackType\": \"JavaScript\",\n \"runtimeVersion\": \"VERSION_2\",\n \"proxyStatus\": \"STARTED\",\n \"transportType\": \"HTTP\",\n \"properties\": {},\n \"gitUrl\": \"http://git.getsandbox.com/testbox.git\",\n \"sandboxUrl\": \"http://testbox.getsandbox.com\"\n}"
},
"schema": {
"$ref": "#/definitions/Sandbox"
}
}
},
"summary": "getSandbox",
"tags": [
"Sandbox"
]
},
"put": {
"consumes": [
"application/json"
],
"description": "",
"operationId": "updateSandbox",
"parameters": [
{
"description": "Name of the Sandbox",
"in": "path",
"name": "sandboxName",
"required": true,
"type": "string"
},
{
"description": "Fields to updated on given Sandbox",
"in": "body",
"name": "body",
"required": true,
"schema": {
"$ref": "#/definitions/Sandbox"
}
}
],
"produces": [
"application/json"
],
"responses": {
"200": {
"description": "successful operation",
"examples": {
"application/json": "{\n \"id\": \"s-328f0d3a-7cf8-400c-a5e8-dc0e84b737b3\",\n \"name\": \"testbox\",\n \"description\": \"\",\n \"configuredRoutes\": [],\n \"hasRepository\": true,\n \"apiDefinition\": \"None\",\n \"stackType\": \"JavaScript\",\n \"runtimeVersion\": \"VERSION_2\",\n \"proxyStatus\": \"STARTED\",\n \"transportType\": \"HTTP\",\n \"properties\": {},\n \"gitUrl\": \"http://git.getsandbox.com/testbox.git\",\n \"sandboxUrl\": \"http://testbox.getsandbox.com\"\n}"
},
"schema": {
"$ref": "#/definitions/Sandbox"
}
}
},
"summary": "updateSandbox",
"tags": [
"Sandbox"
]
}
},
"/1/sandboxes/{sandboxName}/fork": {
"get": {
"consumes": [
"application/json"
],
"description": "",
"operationId": "forkSandbox",
"parameters": [
{
"description": "Name of the Sandbox",
"in": "path",
"name": "sandboxName",
"required": true,
"type": "string"
}
],
"produces": [
"application/json"
],
"responses": {
"200": {
"description": "successful operation",
"examples": {
"application/json": "{\n \"id\": \"s-328f0d3a-7cf8-400c-a5e8-dc0e84b737b3\",\n \"name\": \"testbox\",\n \"description\": \"\",\n \"configuredRoutes\": [],\n \"hasRepository\": true,\n \"apiDefinition\": \"None\",\n \"stackType\": \"JavaScript\",\n \"runtimeVersion\": \"VERSION_2\",\n \"proxyStatus\": \"STARTED\",\n \"transportType\": \"HTTP\",\n \"properties\": {},\n \"gitUrl\": \"http://git.getsandbox.com/testbox.git\",\n \"sandboxUrl\": \"http://testbox.getsandbox.com\"\n}"
},
"schema": {
"$ref": "#/definitions/Sandbox"
}
}
},
"summary": "forkSandbox",
"tags": [
"Sandbox"
]
}
},
"/1/sandboxes/{sandboxName}/state": {
"delete": {
"consumes": [
"application/json"
],
"description": "",
"operationId": "deleteSandboxState",
"parameters": [
{
"description": "Name of the Sandbox",
"in": "path",
"name": "sandboxName",
"required": true,
"type": "string"
}
],
"produces": [
"application/json"
],
"responses": {
"default": {
"description": "successful operation"
}
},
"summary": "deleteSandboxState",
"tags": [
"Sandbox"
]
},
"get": {
"consumes": [
"application/json"
],
"description": "",
"operationId": "getSandboxState",
"parameters": [
{
"description": "Name of the Sandbox",
"in": "path",
"name": "sandboxName",
"required": true,
"type": "string"
}
],
"produces": [
"application/json"
],
"responses": {
"default": {
"description": "successful operation"
}
},
"summary": "getSandboxState",
"tags": [
"Sandbox"
]
}
}
},
"definitions": {
"ActivityMessage": {
"properties": {
"createdTimestamp": {
"description": "Epoch time in milliseconds when the message was created",
"format": "int64",
"type": "integer"
},
"message": {
"description": "The details of the message when type is 'log'",
"type": "string"
},
"messageObject": {
"$ref": "#/definitions/RuntimeTransaction",
"description": "The details of the message when type is 'request'"
},
"messageType": {
"enum": [
"request",
"log"
],
"type": "string"
},
"sandboxId": {
"description": "The ID of the sandbox that generated this message",
"type": "string"
}
},
"type": "object"
},
"ConfiguredRouteDetails": {
"properties": {
"activeErrorOverride": {
"description": "Whether error overrides are enabled or not.",
"type": "boolean"
},
"activeLatency": {
"description": "Whether latency delays are enabled or not.",
"type": "boolean"
},
"defaultLatency": {
"description": "A delay in milliseconds applied to requests at a 'normal' level.",
"format": "int32",
"maximum": 30000,
"minimum": 0,
"type": "integer"
},
"errorOverrideType": {
"description": "The type of error override applied to this route.",
"enum": [
"NONE",
"TIMEOUT",
"SERVICE_DOWN"
],
"type": "string"
},
"loadLatency": {
"description": "A delay in milliseconds applied to requests at a 'high' level.",
"format": "int32",
"maximum": 30000,
"minimum": 0,
"type": "integer"
},
"loadThreshold": {
"description": "The threshold in transactions/second to signify 'high' load",
"format": "int32",
"maximum": 100,
"minimum": 0,
"type": "integer"
},
"method": {
"type": "string"
},
"path": {
"type": "string"
},
"properties": {
"additionalProperties": {
"type": "string"
},
"type": "object"
},
"routeConfig": {
"$ref": "#/definitions/RouteConfig"
},
"transport": {
"type": "string"
}
},
"required": [
"errorOverrideType"
],
"type": "object"
},
"CreateSandbox": {
"properties": {
"commitBaseTemplate": {
"description": "Whether to commit the example Sandbox definition upon creation.",
"type": "boolean"
},
"description": {
"description": "Text describing this Sandbox.",
"maxLength": 255,
"minLength": 0,
"pattern": "^[A-Za-z-_ 0-9]*$",
"type": "string"
},
"name": {
"description": "Optional name to give the Sandbox, will be generated if omitted.",
"pattern": "^[A-Za-z-_ 0-9]*$",
"type": "string"
},
"ownerOrganisationName": {
"description": "Name of the team this Sandbox should be created under.",
"maxLength": 36,
"minLength": 2,
"pattern": "^[a-zA-Z-_0-9]*$",
"type": "string"
},
"parentSandboxName": {
"description": "Name of the Sandbox this should be created under, if exists will be a 'clone'.",
"pattern": "^[A-Za-z-_ 0-9]*$",
"type": "string"
},
"transportType": {
"enum": [
"HTTP"
],
"type": "string"
}
},
"type": "object"
},
"Error": {
"properties": {
"code": {
"type": "string"
},
"detailedMessage": {
"description": "Longer message describing the error.",
"type": "string"
},
"field": {
"description": "Message describing which field the error relates to.",
"type": "string"
},
"message": {
"description": "Short message describing the error.",
"type": "string"
}
},
"type": "object"
},
"RouteConfig": {
"properties": {
"errorStrategy": {
"enum": [
"NONE",
"TIMEOUT",
"SERVICE_DOWN"
],
"type": "string"
},
"latencyMs": {
"format": "int32",
"type": "integer"
},
"latencyMultiplier": {
"format": "int32",
"type": "integer"
},
"latencyType": {
"enum": [
"NONE",
"CONSTANT",
"LINEAR"
],
"type": "string"
},
"method": {
"type": "string"
},
"path": {
"type": "string"
}
},
"type": "object"
},
"RuntimeRequest": {
"properties": {
"body": {
"description": "The body of the given request.",
"type": "string"
},
"contentType": {
"description": "The content type of the body, for example 'application/json'.",
"type": "string"
},
"fullSandboxId": {
"description": "The parent ID of the Sandbox that received the request.",
"type": "string"
},
"fullSandboxName": {
"description": "The parent name of the Sandbox that received the request.",
"type": "string"
},
"headers": {
"additionalProperties": {
"type": "string"
},
"description": "Transport headers for the given request.",
"type": "object"
},
"ip": {
"description": "The requestor IP address.",
"type": "string"
},
"properties": {
"additionalProperties": {
"type": "string"
},
"type": "object"
},
"receivedTimestamp": {
"description": "The epoch time in milliseconds when the request was received.",
"format": "int64",
"type": "integer"
},
"sandboxId": {
"description": "The ID of the Sandbox that received the request.",
"type": "string"
},
"sandboxName": {
"description": "The name of the Sandbox that received the request.",
"type": "string"
},
"transport": {
"description": "Which transport the request was for, 'HTTP'.",
"type": "string"
}
},
"type": "object"
},
"RuntimeResponse": {
"properties": {
"body": {
"description": "The body of the given response.",
"type": "string"
},
"durationMillis": {
"description": "Duration in milliseconds of the processing time in Sandbox.",
"format": "int64",
"type": "integer"
},
"error": {
"$ref": "#/definitions/Error",
"description": "Error if there is a problem during Sandbox execution."
},
"headers": {
"additionalProperties": {
"type": "string"
},
"description": "Transport headers for the given response.",
"type": "object"
},
"respondedTimestamp": {
"description": "The epoch time in milliseconds when the response was sent.",
"format": "int64",
"type": "integer"
},
"responseDelay": {
"description": "Duration in milliseconds of the response delay.",
"format": "int32",
"type": "integer"
},
"transport": {
"description": "Which transport the request was for, 'HTTP'.",
"type": "string"
}
},
"type": "object"
},
"RuntimeTransaction": {
"properties": {
"request": {
"$ref": "#/definitions/RuntimeRequest"
},
"responses": {
"items": {
"$ref": "#/definitions/RuntimeResponse"
},
"type": "array"
},
"sandboxName": {
"description": "The source sandbox name.",
"type": "string"
}
},
"type": "object"
},
"Sandbox": {
"properties": {
"apiDefinition": {
"description": "The import source of this Sandbox.",
"enum": [
"None",
"Apiary",
"Swagger_V2_Json",
"RAML_V08",
"WSDL"
],
"type": "string"
},
"childSandboxes": {
"description": "Clones of this Sandbox.",
"items": {
"$ref": "#/definitions/Sandbox"
},
"type": "array",
"uniqueItems": true
},
"configuredRoutes": {
"description": "Extra configuration applied to some routes, delays, overrides etc.",
"items": {
"$ref": "#/definitions/ConfiguredRouteDetails"
},
"type": "array",
"uniqueItems": true
},
"description": {
"maxLength": 255,
"minLength": 0,
"pattern": "^[A-Za-z0-9 _\\-]*$",
"type": "string"
},
"gitAccessToken": {
"type": "string"
},
"gitUrl": {
"description": "The git clone URL.",
"type": "string"
},
"hasRepository": {
"description": "Whether this Sandbox has a git repository or not.",
"type": "boolean"
},
"id": {
"description": "The ID of the Sandbox.",
"type": "string"
},
"ipWhitelist": {
"description": "The list of IPs allowed to make requests, all allowed if omitted.",
"items": {
"type": "string"
},
"type": "array",
"uniqueItems": true
},
"name": {
"pattern": "^[a-z0-9\\-]*$",
"type": "string"
},
"parentSandbox": {
"$ref": "#/definitions/Sandbox",
"description": "If the Sandbox is a clone, which is it a clone of."
},
"properties": {
"additionalProperties": {
"type": "object"
},
"type": "object"
},
"proxyStatus": {
"description": "The listener status.",
"enum": [
"STARTED",
"STOPPED"
],
"type": "string"
},
"runtimeVersion": {
"description": "The library version of this Sandbox.",
"enum": [
"VERSION_1",
"VERSION_2"
],
"type": "string"
},
"sandboxUrl": {
"description": "The request URL for this Sandbox.",
"type": "string"
},
"stackType": {
"enum": [
"JavaScript"
],
"type": "string"
},
"transportType": {
"description": "The listener transport.",
"enum": [
"HTTP"
],
"type": "string"
}
},
"required": [
"name"
],
"type": "object"
}
}
}