QuantCDN AI Custom Tools API

Custom tool definitions for AI function calling

Operations 4

GET /api/v3/organizations/{organisation}/ai/custom-tools List Custom Tools #
POST /api/v3/organizations/{organisation}/ai/custom-tools Register Custom Edge Function Tool #
DELETE /api/v3/organizations/{organisation}/ai/custom-tools/{toolName} Delete Custom Tool #
GET /api/v3/organizations/{organisation}/ai/custom-tools/{toolName} Get Custom Tool #

Work with this as data

Every API here is available over the APIs.io API and to AI agents over MCP.

MCP server

One button, every client — Claude, Cursor, VS Code and the rest.

https://apis.io/mcp

Tools for apis

7 MCP tools reach this
  • 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.
All 92 tools →

Call it yourself

curl for this page
This API
curl "https://apis.io/api/v1/apis/quantcdn-ai-custom-tools-api"
All apis
curl "https://apis.io/api/v1/apis?limit=25"

Discovery needs no key. Ratings and market analysis are Pro.

Get an API key

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 Specification

quantcdn-ai-custom-tools-api-openapi.yml Raw ↑
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