QuantCDN AI Vector Database API

Vector database collections for RAG and semantic search

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-vector-database-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 email required.

A second provider on the same verified email joins the account you already have.

OpenAPI Specification

quantcdn-ai-vector-database-api-openapi.yml Raw ↑
openapi: 3.0.0
info:
  description: Unified API for QuantCDN Admin and QuantCloud Platform services
  title: QuantCDN AI Agents AI Vector Database 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: Vector database collections for RAG and semantic search
  name: AI Vector Database
paths:
  /api/v3/organizations/{organisation}/ai/vector-db/collections:
    get:
      description: Lists all vector database collections (knowledge bases) for an organization.
      operationId: listVectorCollections
      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/listVectorCollections_200_response'
          description: Collections retrieved successfully
        '403':
          description: Access denied
        '500':
          description: Failed to retrieve collections
      summary: List Vector Database Collections
      tags:
      - AI Vector Database
    post:
      description: "Creates a new vector database collection (knowledge base category) for semantic search. Collections store documents with embeddings for RAG (Retrieval Augmented Generation).\n     *\n     * **Use Cases:**\n     * - Product documentation ('docs')\n     * - Company policies ('policies')\n     * - Support knowledge base ('support')\n     * - Technical specifications ('specs')"
      operationId: createVectorCollection
      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/createVectorCollection_request'
        required: true
      responses:
        '201':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/createVectorCollection_201_response'
          description: Collection created successfully
        '400':
          description: Invalid request parameters
        '403':
          description: Access denied
        '409':
          description: Collection with this name already exists
        '500':
          description: Failed to create collection
      summary: Create Vector Database Collection
      tags:
      - AI Vector Database
  /api/v3/organizations/{organisation}/ai/vector-db/collections/{collectionId}:
    delete:
      description: Deletes a vector database collection and all its documents. This action cannot be undone.
      operationId: deleteVectorCollection
      parameters:
      - description: The organisation ID
        explode: false
        in: path
        name: organisation
        required: true
        schema:
          type: string
        style: simple
      - description: The collection ID
        explode: false
        in: path
        name: collectionId
        required: true
        schema:
          format: uuid
          type: string
        style: simple
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/deleteSkillCollection_200_response'
          description: Collection deleted successfully
        '403':
          description: Access denied
        '404':
          description: Collection not found
        '500':
          description: Failed to delete collection
      summary: Delete Collection
      tags:
      - AI Vector Database
    get:
      description: Get detailed information about a specific vector database collection.
      operationId: getVectorCollection
      parameters:
      - description: The organisation ID
        explode: false
        in: path
        name: organisation
        required: true
        schema:
          type: string
        style: simple
      - description: The collection ID
        explode: false
        in: path
        name: collectionId
        required: true
        schema:
          format: uuid
          type: string
        style: simple
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/getVectorCollection_200_response'
          description: Collection details retrieved successfully
        '403':
          description: Access denied
        '404':
          description: Collection not found
        '500':
          description: Failed to retrieve collection
      summary: Get Collection Details
      tags:
      - AI Vector Database
  /api/v3/organizations/{organisation}/ai/vector-db/collections/{collectionId}/documents:
    delete:
      description: "Delete documents from a collection. Supports three deletion modes:\n     *\n     * 1. **Purge All** - Set `purgeAll: true` to delete ALL documents in the collection\n     *\n     * 2. **By Document IDs** - Provide `documentIds` array with specific document UUIDs\n     *\n     * 3. **By Metadata** - Provide `metadata` object with `field` and `values` to delete documents where the metadata field matches any of the values\n     *\n     * **Drupal Integration:**\n     * When using with Drupal AI Search, use metadata deletion with:\n     * - `field: 'drupal_entity_id'` to delete all chunks for specific entities\n     * - `field: 'drupal_long_id'` to delete specific chunks"
      operationId: deleteVectorDocuments
      parameters:
      - description: Organisation machine name
        explode: false
        in: path
        name: organisation
        required: true
        schema:
          type: string
        style: simple
      - description: Collection UUID
        explode: false
        in: path
        name: collectionId
        required: true
        schema:
          format: uuid
          type: string
        style: simple
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/deleteVectorDocuments_request'
        required: true
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/deleteVectorDocuments_200_response'
          description: Documents deleted successfully
        '400':
          description: Invalid request - must specify purgeAll, documentIds, or metadata
        '403':
          description: Access denied
        '404':
          description: Collection not found
        '500':
          description: Failed to delete documents
      summary: Delete Documents from Collection
      tags:
      - AI Vector Database
    get:
      description: Lists documents in a collection with pagination. Supports filtering by document key.
      operationId: listVectorDocuments
      parameters:
      - explode: false
        in: path
        name: organisation
        required: true
        schema:
          type: string
        style: simple
      - explode: false
        in: path
        name: collectionId
        required: true
        schema:
          format: uuid
          type: string
        style: simple
      - description: Filter by document key
        explode: true
        in: query
        name: key
        required: false
        schema:
          type: string
        style: form
      - explode: true
        in: query
        name: limit
        required: false
        schema:
          default: 50
          maximum: 100
          type: integer
        style: form
      - explode: true
        in: query
        name: offset
        required: false
        schema:
          default: 0
          type: integer
        style: form
      responses:
        '200':
          description: Documents retrieved successfully
        '403':
          description: Access denied
        '404':
          description: Collection not found
        '500':
          description: Failed to list documents
      summary: List Documents in Collection
      tags:
      - AI Vector Database
    post:
      description: "Uploads documents to a vector database collection with automatic embedding generation. Documents are chunked (if needed), embedded using the collection's embedding model, and stored.\n     *\n     * **Supported Content:**\n     * - Plain text content\n     * - URLs to fetch content from\n     * - Markdown documents\n     *\n     * **Metadata:**\n     * Each document can include metadata (title, source_url, section, tags) that is returned with search results."
      operationId: uploadVectorDocuments
      parameters:
      - description: The organisation ID
        explode: false
        in: path
        name: organisation
        required: true
        schema:
          type: string
        style: simple
      - description: The collection ID
        explode: false
        in: path
        name: collectionId
        required: true
        schema:
          format: uuid
          type: string
        style: simple
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/uploadVectorDocuments_request'
        required: true
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/uploadVectorDocuments_200_response'
          description: Documents uploaded successfully
        '400':
          description: Invalid request parameters
        '403':
          description: Access denied
        '404':
          description: Collection not found
        '500':
          description: Failed to upload documents
      summary: Upload Documents to Collection
      tags:
      - AI Vector Database
  /api/v3/organizations/{organisation}/ai/vector-db/collections/{collectionId}/query:
    post:
      description: "Performs semantic search on a collection using vector similarity. Returns the most relevant documents based on meaning, not keyword matching.\n     *\n     * **Three Search Modes:**\n     *\n     * 1. **Text Query** - Provide `query` string, server generates embedding\n     *    - Query text is embedded using the collection's embedding model\n     *    - Embeddings are cached for repeated queries\n     *\n     * 2. **Vector Query** - Provide pre-computed `vector` array\n     *    - Skip embedding generation (faster)\n     *    - Useful when you've already embedded the query elsewhere\n     *    - Vector dimension must match collection (e.g., 1024 for Titan v2)\n     *\n     * 3. **Metadata List** - Set `listByMetadata: true` with `filter`\n     *    - Skip semantic search entirely\n     *    - Return all documents matching the filter\n     *    - Supports cursor-based pagination for large datasets\n     *    - Results ordered by sortBy/sortOrder (default: created_at DESC)\n     *\n     * **Filtering:**\n     * - `filter.exact`: Exact match on metadata fields (AND logic)\n     * - `filter.contains`: Array contains filter for tags (ANY match)\n     * - Filters can be combined with semantic search or used alone with listByMetadata\n     *\n     * **Pagination (listByMetadata mode only):**\n     * - Use `cursor` from previous response's `nextCursor` to get next page\n     * - Uses keyset pagination for efficient traversal of large datasets\n     * - Control sort with `sortBy` and `sortOrder`\n     *\n     * **Use Cases:**\n     * - Find relevant documentation for user questions\n     * - Power RAG (Retrieval Augmented Generation) in AI assistants\n     * - Semantic search across knowledge bases\n     * - List all artifacts by building/worker/tag"
      operationId: queryVectorCollection
      parameters:
      - description: The organisation ID
        explode: false
        in: path
        name: organisation
        required: true
        schema:
          type: string
        style: simple
      - description: The collection ID
        explode: false
        in: path
        name: collectionId
        required: true
        schema:
          format: uuid
          type: string
        style: simple
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/queryVectorCollection_request'
        required: true
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/queryVectorCollection_200_response'
          description: Search completed successfully
        '400':
          description: Invalid request parameters
        '403':
          description: Access denied
        '404':
          description: Collection not found
        '500':
          description: Failed to perform search
      summary: Semantic Search Query
      tags:
      - AI Vector Database
components:
  schemas:
    deleteSkillCollection_200_response:
      example:
        success: true
        message: Collection deleted successfully
      properties:
        success:
          example: true
          type: boolean
        message:
          example: Collection deleted successfully
          type: string
      type: object
    queryVectorCollection_200_response:
      example:
        filter: '{}'
        nextCursor: nextCursor
        pagination:
          sortOrder: asc
          limit: 5
          sortBy: created_at
        query: query
        executionTimeMs: 5
        searchMode: text
        count: 1
        hasMore: true
        results:
        - metadata:
            key: ''
          similarity: 0.08008282
          documentId: 046b6c7f-0b8a-43b9-b35d-6489e6daee91
          embedding:
          - 6.027456183070403
          - 6.027456183070403
          content: content
        - metadata:
            key: ''
          similarity: 0.08008282
          documentId: 046b6c7f-0b8a-43b9-b35d-6489e6daee91
          embedding:
          - 6.027456183070403
          - 6.027456183070403
          content: content
        collectionId: 046b6c7f-0b8a-43b9-b35d-6489e6daee91
      properties:
        results:
          items:
            $ref: '#/components/schemas/queryVectorCollection_200_response_results_inner'
          type: array
        query:
          description: Original query text (null if vector or metadata search was used)
          nullable: true
          type: string
        searchMode:
          description: 'Search mode used: text (query provided), vector (pre-computed), metadata (listByMetadata)'
          enum:
          - text
          - vector
          - metadata
          type: string
        filter:
          description: Filter that was applied (if any)
          nullable: true
          type: object
        count:
          description: Number of results returned
          type: integer
        executionTimeMs:
          description: Query execution time in milliseconds
          type: integer
        collectionId:
          format: uuid
          type: string
        hasMore:
          description: True if more results available (listByMetadata mode only)
          type: boolean
        nextCursor:
          description: Cursor for next page. Pass as cursor param to continue. Null when no more results. Only in listByMetadata mode.
          nullable: true
          type: string
        pagination:
          $ref: '#/components/schemas/queryVectorCollection_200_response_pagination'
      type: object
    deleteVectorDocuments_200_response:
      example:
        deletedCount: 0
        message: message
        collectionId: collectionId
      properties:
        message:
          type: string
        collectionId:
          type: string
        deletedCount:
          type: integer
      type: object
    queryVectorCollection_request_filter:
      description: Filter results by metadata fields. Applied AFTER semantic search (or alone in listByMetadata mode). All conditions use AND logic.
      properties:
        exact:
          additionalProperties: true
          description: Exact match on metadata fields. Keys are metadata field names, values are expected values.
          example:
            buildingId: building-123
            type: research-report
          type: object
        contains:
          additionalProperties:
            items:
              type: string
            type: array
          description: Array contains filter for array metadata fields (like tags). Returns documents where the metadata array contains ANY of the specified values.
          example:
            tags:
            - important
            - reviewed
          type: object
      type: object
    uploadVectorDocuments_200_response:
      example:
        chunksCreated: 0
        success: true
        message: message
        documentIds:
        - documentIds
        - documentIds
      properties:
        success:
          example: true
          type: boolean
        documentIds:
          items:
            type: string
          type: array
        chunksCreated:
          type: integer
        message:
          type: string
      type: object
    deleteVectorDocuments_request:
      properties:
        purgeAll:
          description: Delete ALL documents in collection
          type: boolean
        documentIds:
          description: Delete specific documents by UUID
          items:
            format: uuid
            type: string
          type: array
        keys:
          description: Delete documents by key
          items:
            maxLength: 512
            type: string
          type: array
        metadata:
          $ref: '#/components/schemas/deleteVectorDocuments_request_metadata'
      type: object
    deleteVectorDocuments_request_metadata:
      properties:
        field:
          description: Metadata field name (e.g., 'drupal_entity_id')
          type: string
        values:
          description: Values to match (OR logic)
          items:
            type: string
          type: array
      type: object
    listVectorCollections_200_response:
      example:
        collections:
        - documentCount: 0
          createdAt: 2000-01-23 04:56:07+00:00
          name: product-docs
          description: description
          embeddingModel: amazon.titan-embed-text-v2:0
          collectionId: 046b6c7f-0b8a-43b9-b35d-6489e6daee91
        - documentCount: 0
          createdAt: 2000-01-23 04:56:07+00:00
          name: product-docs
          description: description
          embeddingModel: amazon.titan-embed-text-v2:0
          collectionId: 046b6c7f-0b8a-43b9-b35d-6489e6daee91
        count: 6
      properties:
        collections:
          items:
            $ref: '#/components/schemas/listVectorCollections_200_response_collections_inner'
          type: array
        count:
          type: integer
      type: object
    queryVectorCollection_request:
      properties:
        query:
          description: Natural language search query (mutually exclusive with vector)
          example: How do I authenticate with the API?
          maxLength: 1000
          minLength: 3
          type: string
        vector:
          description: Pre-computed embedding vector (mutually exclusive with query). Array length must match collection dimension.
          example:
          - 0.0234
          - -0.0891
          - 0.0456
          items:
            format: float
            type: number
          type: array
        limit:
          default: 5
          description: Maximum number of results to return
          maximum: 20
          minimum: 1
          type: integer
        threshold:
          default: 0.7
          description: Minimum similarity score (0-1, higher = more relevant)
          format: float
          maximum: 1
          minimum: 0
          type: number
        includeEmbeddings:
          default: false
          description: Include embedding vectors in response (for debugging)
          type: boolean
        filter:
          $ref: '#/components/schemas/queryVectorCollection_request_filter'
        listByMetadata:
          default: false
          description: If true, skip semantic search and return all documents matching the filter. Requires filter. Supports cursor pagination.
          type: boolean
        cursor:
          description: Pagination cursor for listByMetadata mode. Use nextCursor from previous response. Opaque format - do not construct manually.
          type: string
        sortBy:
          default: created_at
          description: Field to sort by in listByMetadata mode
          enum:
          - created_at
          - document_id
          type: string
        sortOrder:
          default: desc
          description: Sort direction in listByMetadata mode
          enum:
          - asc
          - desc
          type: string
      type: object
    queryVectorCollection_200_response_pagination:
      description: Pagination info (listByMetadata mode only)
      example:
        sortOrder: asc
        limit: 5
        sortBy: created_at
      nullable: true
      properties:
        sortBy:
          enum:
          - created_at
          - document_id
          type: string
        sortOrder:
          enum:
          - asc
          - desc
          type: string
        limit:
          type: integer
      type: object
    listVectorCollections_200_response_collections_inner:
      example:
        documentCount: 0
        createdAt: 2000-01-23 04:56:07+00:00
        name: product-docs
        description: description
        embeddingModel: amazon.titan-embed-text-v2:0
        collectionId: 046b6c7f-0b8a-43b9-b35d-6489e6daee91
      properties:
        collectionId:
          format: uuid
          type: string
        name:
          example: product-docs
          type: string
        description:
          type: string
        documentCount:
          type: integer
        embeddingModel:
          example: amazon.titan-embed-text-v2:0
          type: string
        createdAt:
          format: date-time
          type: string
      type: object
    queryVectorCollection_200_response_results_inner:
      example:
        metadata:
          key: ''
        similarity: 0.08008282
        documentId: 046b6c7f-0b8a-43b9-b35d-6489e6daee91
        embedding:
        - 6.027456183070403
        - 6.027456183070403
        content: content
      properties:
        documentId:
          format: uuid
          type: string
        content:
          description: Document text content
          type: string
        similarity:
          description: Cosine similarity score (1.0 for metadata-only queries)
          format: float
          maximum: 1
          minimum: 0
          type: number
        metadata:
          additionalProperties: true
          type: object
        embedding:
          description: Vector embedding (only if includeEmbeddings=true)
          items:
            type: number
          type: array
      type: object
    uploadVectorDocuments_request_documents_inner_metadata:
      properties:
        title:
          type: string
        source_url:
          type: string
        section:
          type: string
        tags:
          items:
            type: string
          type: array
      type: object
    getVectorCollection_200_response_collection:
      example:
        documentCount: 0
        createdAt: 2000-01-23 04:56:07+00:00
        name: name
        description: description
        embeddingModel: embeddingModel
        collectionId: 046b6c7f-0b8a-43b9-b35d-6489e6daee91
        dimensions: 6
        updatedAt: 2000-01-23 04:56:07+00:00
      properties:
        collectionId:
          format: uuid
          type: string
        name:
          type: string
        description:
          type: string
        documentCount:
          type: integer
        embeddingModel:
          type: string
        dimensions:
          type: integer
        createdAt:
          format: date-time
          type: string
        updatedAt:
          format: date-time
          type: string
      type: object
    uploadVectorDocuments_request_documents_inner:
      properties:
        content:
          description: Document text content
          type: string
        key:
          description: Stable document key for upsert
          maxLength: 512
          type: string
        metadata:
          $ref: '#/components/schemas/uploadVectorDocuments_request_documents_inner_metadata'
      required:
      - content
      type: object
    getVectorCollection_200_response:
      example:
        collection:
          documentCount: 0
          createdAt: 2000-01-23 04:56:07+00:00
          name: name
          description: description
          embeddingModel: embeddingModel
          collectionId: 046b6c7f-0b8a-43b9-b35d-6489e6daee91
          dimensions: 6
          updatedAt: 2000-01-23 04:56:07+00:00
      properties:
        collection:
          $ref: '#/components/schemas/getVectorCollection_200_response_collection'
      type: object
    uploadVectorDocuments_request:
      properties:
        documents:
          items:
            $ref: '#/components/schemas/uploadVectorDocuments_request_documents_inner'
          type: array
      required:
      - documents
      type: object
    createVectorCollection_201_response_collection:
      example:
        name: name
        description: description
        embeddingModel: embeddingModel
        collectionId: 046b6c7f-0b8a-43b9-b35d-6489e6daee91
        dimensions: 0
      properties:
        collectionId:
          format: uuid
          type: string
        name:
          type: string
        description:
          type: string
        embeddingModel:
          type: string
        dimensions:
          type: integer
      type: object
    createVectorCollection_201_response:
      example:
        success: true
        collection:
          name: name
          description: description
          embeddingModel: embeddingModel
          collectionId: 046b6c7f-0b8a-43b9-b35d-6489e6daee91
          dimensions: 0
        message: Collection created successfully
      properties:
        success:
          example: true
          type: boolean
        collection:
          $ref: '#/components/schemas/createVectorCollection_201_response_collection'
        message:
          example: Collection created successfully
          type: string
      type: object
    createVectorCollection_request:
      properties:
        name:
          description: Collection name (used for reference)
          example: product-documentation
          type: string
        description:
          example: Product user guides and API documentation
          type: string
        embeddingModel:
          description: 'Embedding model to use. Supported: amazon.titan-embed-text-v2:0, cohere.embed-english-v3, cohere.embed-multilingual-v3'
          example: amazon.titan-embed-text-v2:0
          type: string
        dimensions:
          description: 'Embedding dimensions (default: 1024)'
          example: 1024
          type: integer
      required:
      - embeddingModel
      - name
      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