QuantCDN AI Custom Tools API
Custom tool definitions for AI function calling
Operations 4
Documentation
Documentation
https://docs.quantcdn.io/
GettingStarted
https://docs.quantcdn.io/api/get-started-content/
Custom tool definitions for AI function calling
Every API here is available over the APIs.io API and to AI agents over MCP.
One button, every client — Claude, Cursor, VS Code and the rest.
https://apis.io/mcp
find_apisBrowse and filter every API in the catalog.get_api_artifactsOne API's artifacts, grouped by type.get_openapiThe primary OpenAPI for this API.find_similar_apisAPIs that look like this one.apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.resolveTurn a domain, URL or GitHub org into the provider it belongs to.find_cohortsEvery scored population of providers in the catalog.curl "https://apis.io/api/v1/apis/quantcdn-ai-custom-tools-api"
curl "https://apis.io/api/v1/apis?limit=25"
Discovery needs no key. Ratings and market analysis are Pro.
Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.
A second provider on the same verified email joins the account you already have.
openapi: 3.2.0
info:
description: Unified API for QuantCDN Admin and QuantCloud Platform services
title: QuantCDN AI Agents AI Custom Tools API
version: 4.15.8
servers:
- description: QuantCDN Public Cloud
url: https://dashboard.quantcdn.io
- description: QuantGov Cloud
url: https://dash.quantgov.cloud
security:
- BearerAuth: []
tags:
- description: Custom tool definitions for AI function calling
name: AI Custom Tools
paths:
/api/v3/organizations/{organisation}/ai/custom-tools:
get:
description: Lists all registered custom edge function tools for an organization.
operationId: listCustomTools
parameters:
- description: The organisation ID
explode: false
in: path
name: organisation
required: true
schema:
type: string
style: simple
responses:
'200':
content:
application/json:
schema:
$ref: '#/components/schemas/listCustomTools_200_response'
description: Custom tools retrieved successfully
'403':
description: Access denied
'500':
description: Failed to retrieve custom tools
summary: List Custom Tools
tags:
- AI Custom Tools
post:
description: "Registers a custom edge function as a tool that AI models can invoke. Provide `edgeFunctionCode` (JavaScript) and the API will deploy it to the CDN, compute the edge function URL, and register the tool.\n *\n * **Edge Function Contract:**\n * - Edge functions must accept POST requests with JSON payload\n * - Expected request format: `{ 'toolName': '...', 'input': {...}, 'orgId': '...' }`\n * - Must return JSON response with either `result` or `error` field\n *\n * **Idempotent Updates:**\n * POSTing with the same `name` will update the existing tool — the edge function code is redeployed to the same UUID and the tool registration is updated.\n *\n * **Async Tools:**\n * Set `isAsync: true` for operations >5 seconds. The edge function should return `{ executionId: '...' }` and the AI will poll for completion."
operationId: createCustomTool
parameters:
- description: The organisation ID
explode: false
in: path
name: organisation
required: true
schema:
type: string
style: simple
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/createCustomTool_request'
required: true
responses:
'201':
content:
application/json:
schema:
$ref: '#/components/schemas/createCustomTool_201_response'
description: Custom tool registered successfully
'400':
description: Invalid request parameters
'403':
description: Access denied
'500':
description: Failed to register custom tool
summary: Register Custom Edge Function Tool
tags:
- AI Custom Tools
/api/v3/organizations/{organisation}/ai/custom-tools/{toolName}:
delete:
description: Deletes a custom tool registration and its deployed edge function.
operationId: deleteCustomTool
parameters:
- description: The organisation ID
explode: false
in: path
name: organisation
required: true
schema:
type: string
style: simple
- description: The tool name to delete
explode: false
in: path
name: toolName
required: true
schema:
type: string
style: simple
responses:
'200':
content:
application/json:
schema:
$ref: '#/components/schemas/deleteCustomTool_200_response'
description: Custom tool deleted successfully
'403':
description: Access denied
'404':
description: Tool not found
'500':
description: Failed to delete custom tool
summary: Delete Custom Tool
tags:
- AI Custom Tools
get:
description: Retrieves a single registered custom tool by name.
operationId: getCustomTool
parameters:
- description: The organisation ID
explode: false
in: path
name: organisation
required: true
schema:
type: string
style: simple
- description: The tool name to retrieve
explode: false
in: path
name: toolName
required: true
schema:
type: string
style: simple
responses:
'200':
content:
application/json:
schema:
$ref: '#/components/schemas/getCustomTool_200_response'
description: Custom tool retrieved successfully
'403':
description: Access denied
'404':
description: Tool not found
'500':
description: Failed to retrieve custom tools
summary: Get Custom Tool
tags:
- AI Custom Tools
components:
schemas:
deleteCustomTool_200_response:
example:
success: true
message: Custom tool deleted successfully
properties:
success:
example: true
type: boolean
message:
example: Custom tool deleted successfully
type: string
type: object
getCustomTool_200_response:
example:
tool:
responseMode: llm
createdAt: 2000-01-23 04:56:07+00:00
outputSchema: '{}'
outputSchemaDescription: outputSchemaDescription
inputSchema: '{}'
isAsync: false
name: check_inventory
description: Check product inventory levels
edgeFunctionUrl: https://preview.quantcdn.io/_quant/ai-exec/org/project/uuid
category: category
edgeFunctionCode: edgeFunctionCode
properties:
tool:
$ref: '#/components/schemas/getCustomTool_200_response_tool'
type: object
createCustomTool_request:
properties:
name:
description: Unique tool name (alphanumeric and underscores only)
example: check_inventory
type: string
description:
description: Human-readable description of what the tool does
example: Check product inventory levels in warehouse
type: string
edgeFunctionCode:
description: JavaScript source code for the edge function
type: string
inputSchema:
description: JSON Schema defining the tool's input parameters
type: object
isAsync:
default: false
description: Whether this tool runs asynchronously (>5 seconds)
type: boolean
timeoutSeconds:
default: 30
description: Tool execution timeout
maximum: 300
minimum: 5
type: integer
outputSchema:
description: JSON Schema defining the tool's output structure
type:
- object
- 'null'
outputSchemaDescription:
description: Human-readable description of the tool's output
type:
- string
- 'null'
category:
description: Category to group related tools
maxLength: 100
type:
- string
- 'null'
responseMode:
description: 'How the tool response is handled: llm (passed back to model) or direct (returned to user)'
enum:
- llm
- direct
type:
- string
- 'null'
required:
- description
- edgeFunctionCode
- inputSchema
- name
type: object
getCustomTool_200_response_tool:
example:
responseMode: llm
createdAt: 2000-01-23 04:56:07+00:00
outputSchema: '{}'
outputSchemaDescription: outputSchemaDescription
inputSchema: '{}'
isAsync: false
name: check_inventory
description: Check product inventory levels
edgeFunctionUrl: https://preview.quantcdn.io/_quant/ai-exec/org/project/uuid
category: category
edgeFunctionCode: edgeFunctionCode
properties:
name:
example: check_inventory
type: string
description:
example: Check product inventory levels
type: string
edgeFunctionUrl:
example: https://preview.quantcdn.io/_quant/ai-exec/org/project/uuid
type: string
edgeFunctionCode:
description: The deployed edge function source code
type: string
isAsync:
example: false
type: boolean
inputSchema:
type: object
outputSchema:
type:
- object
- 'null'
outputSchemaDescription:
type:
- string
- 'null'
category:
type:
- string
- 'null'
responseMode:
enum:
- llm
- direct
type:
- string
- 'null'
createdAt:
format: date-time
type: string
type: object
listCustomTools_200_response_tools_inner:
example:
createdAt: 2000-01-23 04:56:07+00:00
inputSchema: '{}'
isAsync: false
name: check_inventory
description: Check product inventory levels
edgeFunctionUrl: https://my-edge-function.quant.cloud
properties:
name:
example: check_inventory
type: string
description:
example: Check product inventory levels
type: string
edgeFunctionUrl:
example: https://my-edge-function.quant.cloud
type: string
isAsync:
example: false
type: boolean
inputSchema:
type: object
createdAt:
format: date-time
type: string
type: object
createCustomTool_201_response:
example:
success: true
edgeFunctionUrl: https://preview.quantcdn.io/_quant/ai-exec/org/project/uuid
message: Custom tool deployed successfully
tool: '{}'
edgeFunctionCode: edgeFunctionCode
isUpdate: true
properties:
success:
example: true
type: boolean
tool:
type: object
edgeFunctionUrl:
description: Computed edge function URL (read-only)
example: https://preview.quantcdn.io/_quant/ai-exec/org/project/uuid
type: string
edgeFunctionCode:
description: The deployed edge function code
type: string
isUpdate:
description: Whether this was an update to an existing tool
type: boolean
message:
example: Custom tool deployed successfully
type: string
type: object
listCustomTools_200_response:
example:
count: 0
tools:
- createdAt: 2000-01-23 04:56:07+00:00
inputSchema: '{}'
isAsync: false
name: check_inventory
description: Check product inventory levels
edgeFunctionUrl: https://my-edge-function.quant.cloud
- createdAt: 2000-01-23 04:56:07+00:00
inputSchema: '{}'
isAsync: false
name: check_inventory
description: Check product inventory levels
edgeFunctionUrl: https://my-edge-function.quant.cloud
properties:
tools:
items:
$ref: '#/components/schemas/listCustomTools_200_response_tools_inner'
type: array
count:
type: integer
type: object
securitySchemes:
BearerAuth:
bearerFormat: JWT
description: 'Enter your Bearer token in the format: `Bearer <your-token-here>`. Obtain your API token from the QuantCDN dashboard under Profile > API Tokens.'
scheme: bearer
type: http