langchain/tests/unit_tests/tools/openapi/test_specs/urlbox/apispec.json

368 lines
13 KiB
JSON
Raw Normal View History

{
"openapi": "3.1.0",
"info": {
"title": "Urlbox API",
"description": "A plugin that allows the user to capture screenshots of a web page from a URL or HTML using ChatGPT.",
"version": "v1"
},
"servers": [
{
"url": "https://api.urlbox.io"
}
],
"paths": {
"/v1/render/sync": {
"post": {
"summary": "Render a URL as an image or video",
"operationId": "renderSync",
"security": [
{
"SecretKey": []
}
],
"requestBody": {
"required": true,
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/RenderRequest"
}
}
}
},
"responses": {
"200": {
"description": "Successful operation",
"headers": {
"x-renders-used": {
"schema": {
"type": "integer"
},
"description": "The number of renders used"
},
"x-renders-allowed": {
"schema": {
"type": "integer"
},
"description": "The number of renders allowed"
},
"x-renders-reset": {
"schema": {
"type": "string"
},
"description": "The date and time when the render count will reset"
},
"x-urlbox-cache-status": {
"schema": {
"type": "string"
},
"description": "The cache status of the response"
},
"x-urlbox-cachekey": {
"schema": {
"type": "string"
},
"description": "The cache key used by URLBox"
},
"x-urlbox-requestid": {
"schema": {
"type": "string"
},
"description": "The request ID assigned by URLBox"
},
"x-urlbox-acceptedby": {
"schema": {
"type": "string"
},
"description": "The server that accepted the request"
},
"x-urlbox-renderedby": {
"schema": {
"type": "string"
},
"description": "The server that rendered the response"
}
},
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/RenderResponse"
}
}
}
},
"307": {
"description": "Temporary Redirect",
"headers": {
"Location": {
"schema": {
"type": "string",
"format": "uri",
"description": "The URL to follow for the long running request"
}
}
},
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/RedirectResponse"
},
"example": {
"message": "Please follow the redirect to continue your long running request",
"location": "https://api.urlbox.io/v1/redirect/BQxxwO98uwkSsuJf/1dca9bae-c49d-42d3-8282-89450afb7e73/1"
}
}
}
},
"400": {
"description": "Bad request",
"headers": {
"x-urlbox-error-message": {
"schema": {
"type": "string"
},
"description": "An error message describing the reason the request failed"
}
},
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/ErrorResponse"
},
"example": {
"error": {
"message": "Api Key does not exist",
"code": "ApiKeyNotFound"
}
}
}
}
},
"401": {
"description": "Unauthorized",
"headers": {
"x-urlbox-error-message": {
"schema": {
"type": "string"
},
"description": "An error message describing the reason the request failed"
}
},
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/ErrorResponse"
},
"example": {
"error": {
"message": "Api Key does not exist",
"code": "ApiKeyNotFound"
}
}
}
}
},
"500": {
"description": "Internal server error",
"headers": {
"x-urlbox-error-message": {
"schema": {
"type": "string"
},
"description": "An error message describing the reason the request failed"
}
},
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/ErrorResponse"
},
"example": {
"error": {
"message": "Something went wrong rendering that",
"code": "ApiKeyNotFound"
}
}
}
}
}
}
}
}
},
"components": {
"schemas": {
"RenderRequest": {
"type": "object",
"oneOf": [
{
"required": [
"url"
]
},
{
"required": [
"html"
]
}
],
"properties": {
"format": {
"type": "string",
"description": "The format of the rendered output",
"enum": [
"png",
"jpg",
"pdf",
"svg",
"mp4",
"webp",
"webm",
"html"
]
},
"url": {
"type": "string",
"description": "The URL to render as an image or video"
},
"html": {
"type": "string",
"description": "The raw HTML to render as an image or video"
},
"width": {
"type": "integer",
"description": "The viewport width of the rendered output"
},
"height": {
"type": "integer",
"description": "The viewport height of the rendered output"
},
"block_ads": {
"type": "boolean",
"description": "Whether to block ads on the rendered page"
},
"hide_cookie_banners": {
"type": "boolean",
"description": "Whether to hide cookie banners on the rendered page"
},
"click_accept": {
"type": "boolean",
"description": "Whether to automatically click accept buttons on the rendered page"
},
"gpu": {
"type": "boolean",
"description": "Whether to enable GPU rendering"
},
"retina": {
"type": "boolean",
"description": "Whether to render the image in retina quality"
},
"thumb_width": {
"type": "integer",
"description": "The width of the thumbnail image"
},
"thumb_height": {
"type": "integer",
"description": "The height of the thumbnail image"
},
"full_page": {
"type": "boolean",
"description": "Whether to capture the full page"
},
"selector": {
"type": "string",
"description": "The CSS selector of an element you would like to capture"
},
"delay": {
"type": "string",
"description": "The amount of milliseconds to delay before taking a screenshot"
},
"wait_until": {
"type": "string",
"description": "When",
"enum": [
"requestsfinished",
"mostrequestsfinished",
"loaded",
"domloaded"
]
},
"metadata": {
"type": "boolean",
"description": "Whether to return metadata about the URL"
},
"wait_for": {
"type": "string",
"description": "CSS selector of an element to wait to be present in the web page before rendering"
},
"wait_to_leave": {
"type": "string",
"description": "CSS selector of an element, such as a loading spinner, to wait to leave the web page before rendering"
}
}
},
"RenderResponse": {
"type": "object",
"properties": {
"renderUrl": {
"type": "string",
"format": "uri",
"description": "The URL where the rendered output is stored"
},
"size": {
"type": "integer",
"format": "int64",
"description": "The size of the rendered output in bytes"
}
}
},
"ErrorResponse": {
"type": "object",
"properties": {
"error": {
"type": "object",
"properties": {
"message": {
"type": "string",
"description": "A human-readable error message"
},
"code": {
"type": "string",
"description": "A machine-readable error code"
}
}
}
},
"required": [
"error"
]
},
"RedirectResponse": {
"type": "object",
"properties": {
"message": {
"type": "string",
"description": "A human-readable message indicating the need to follow the redirect"
},
"location": {
"type": "string",
"format": "uri",
"description": "The URL to follow for the long running request"
}
},
"required": [
"message",
"location"
]
}
},
"securitySchemes": {
"SecretKey": {
"type": "http",
"scheme": "bearer",
"bearerFormat": "JWT",
"description": "The Urlbox API uses your secret API key to authenticate. To find your secret key, login to the Urlbox dashboard at https://urlbox.io/dashboard."
}
}
}
}