POST
/
v1
/
collections
/
create
curl --request POST \
  --url https://api.mixpeek.com/v1/collections/create \
  --header 'Content-Type: application/json' \
  --data '{
  "collection_name": "<string>",
  "description": "<string>",
  "source": {
    "type": "bucket",
    "bucket_id": "<string>",
    "prefix_key": "<string>",
    "collection_id": "<string>",
    "filters": {
      "AND": [
        {
          "field": "name",
          "operator": "eq",
          "value": "John"
        },
        {
          "field": "age",
          "operator": "gte",
          "value": 30
        }
      ],
      "OR": [
        {
          "field": "status",
          "operator": "eq",
          "value": "active"
        },
        {
          "field": "role",
          "operator": "eq",
          "value": "admin"
        }
      ],
      "NOT": [
        {
          "field": "department",
          "operator": "eq",
          "value": "HR"
        },
        {
          "field": "location",
          "operator": "eq",
          "value": "remote"
        }
      ],
      "case_sensitive": true
    }
  },
  "feature_extractors": [
    {
      "feature_extractor_name": "<string>",
      "version": "<string>",
      "parameters": {},
      "input_mapping": {},
      "output_mapping": {},
      "document_output_type": "single",
      "document_input_handling": "individual",
      "document_output_handling": "create_new"
    }
  ],
  "taxonomy_applications": [
    {
      "taxonomy_id": "<string>",
      "output_collection": "<string>"
    }
  ],
  "enabled": true,
  "metadata": {},
  "document_handling": {
    "output_type": "single"
  },
  "cache_config": {
    "enabled": true,
    "ttl_seconds": 604800,
    "invalidation_strategy": "replace_if_better",
    "max_entries_per_key": 5,
    "score_threshold": 123,
    "invalidation_events": [
      {
        "collection": "<string>",
        "action": "<string>",
        "recompute_strategy": "background",
        "retriever_id": "<string>"
      }
    ],
    "retriever_configs": {}
  }
}'
{
  "collection_name": "<string>",
  "collection_id": "<string>",
  "description": "<string>",
  "metadata": {},
  "enabled": true,
  "source_lineage": [
    {
      "source_type": "bucket",
      "collection_id": "<string>",
      "bucket_id": "<string>",
      "bucket_config": {
        "type": "bucket",
        "bucket_id": "<string>",
        "prefix_key": "<string>",
        "collection_id": "<string>",
        "filters": {
          "AND": [
            {
              "field": "name",
              "operator": "eq",
              "value": "John"
            },
            {
              "field": "age",
              "operator": "gte",
              "value": 30
            }
          ],
          "OR": [
            {
              "field": "status",
              "operator": "eq",
              "value": "active"
            },
            {
              "field": "role",
              "operator": "eq",
              "value": "admin"
            }
          ],
          "NOT": [
            {
              "field": "department",
              "operator": "eq",
              "value": "HR"
            },
            {
              "field": "location",
              "operator": "eq",
              "value": "remote"
            }
          ],
          "case_sensitive": true
        }
      },
      "collection_config": {
        "type": "bucket",
        "bucket_id": "<string>",
        "prefix_key": "<string>",
        "collection_id": "<string>",
        "filters": {
          "AND": [
            {
              "field": "name",
              "operator": "eq",
              "value": "John"
            },
            {
              "field": "age",
              "operator": "gte",
              "value": 30
            }
          ],
          "OR": [
            {
              "field": "status",
              "operator": "eq",
              "value": "active"
            },
            {
              "field": "role",
              "operator": "eq",
              "value": "admin"
            }
          ],
          "NOT": [
            {
              "field": "department",
              "operator": "eq",
              "value": "HR"
            },
            {
              "field": "location",
              "operator": "eq",
              "value": "remote"
            }
          ],
          "case_sensitive": true
        }
      },
      "feature_extractors": [
        {
          "feature_extractor_name": "<string>",
          "version": "<string>",
          "parameters": {},
          "input_mapping": {},
          "output_mapping": {},
          "document_output_type": "single",
          "document_input_handling": "individual",
          "document_output_handling": "create_new"
        }
      ],
      "output_schema": {
        "properties": {}
      }
    }
  ],
  "feature_extractors": [
    {
      "feature_extractor_name": "<string>",
      "version": "<string>",
      "parameters": {},
      "input_mapping": {},
      "output_mapping": {},
      "document_output_type": "single",
      "document_input_handling": "individual",
      "document_output_handling": "create_new"
    }
  ],
  "status": "DONE",
  "output_schema": {
    "properties": {}
  },
  "taxonomy_applications": [
    {
      "taxonomy_id": "<string>",
      "output_collection": "<string>"
    }
  ],
  "cache_config": {
    "enabled": true,
    "ttl_seconds": 604800,
    "invalidation_strategy": "replace_if_better",
    "max_entries_per_key": 5,
    "score_threshold": 123,
    "invalidation_events": [
      {
        "collection": "<string>",
        "action": "<string>",
        "recompute_strategy": "background",
        "retriever_id": "<string>"
      }
    ],
    "retriever_configs": {}
  }
}

Headers

Authorization
string | null

Bearer token authentication using your API key. Format: 'Bearer your_api_key'. To get an API key, create an account at mixpeek.com/start and generate a key in your account settings. Example: 'Bearer sk_1234567890abcdef'

X-Namespace
string | null

Optional namespace for data isolation. This can be a namespace name or namespace ID. Example: 'netflix_prod' or 'ns_1234567890'. To create a namespace, use the /namespaces endpoint.

Body

application/json

Request model for creating a new collection

Response

200
application/json
Successful Response

Collection model defining the high-level structure and behavior of a collection. Collections are created and modified through feature extractors, which define their own document handling behavior (create/enrich/replace) through their document_output_handling settings.