Skip to main content
POST
/
v1
/
collections
/
{collection_identifier}
/
trigger
Trigger Collection Processing
curl --request POST \
  --url https://api.mixpeek.com/v1/collections/{collection_identifier}/trigger \
  --header 'Authorization: Bearer <token>' \
  --header 'Content-Type: application/json' \
  --data '
{
  "include_buckets": [
    "<string>"
  ],
  "include_collections": [
    "<string>"
  ],
  "object_ids": [
    "<string>"
  ],
  "source_filters": {
    "AND": [
      {
        "field": "status",
        "operator": "eq",
        "value": "pending"
      }
    ]
  }
}
'
import requests

url = "https://api.mixpeek.com/v1/collections/{collection_identifier}/trigger"

payload = {
"include_buckets": ["<string>"],
"include_collections": ["<string>"],
"object_ids": ["<string>"],
"source_filters": { "AND": [
{
"field": "status",
"operator": "eq",
"value": "pending"
}
] }
}
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}

response = requests.post(url, json=payload, headers=headers)

print(response.text)
const options = {
method: 'POST',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({
include_buckets: ['<string>'],
include_collections: ['<string>'],
object_ids: ['<string>'],
source_filters: {AND: [{field: 'status', operator: 'eq', value: 'pending'}]}
})
};

fetch('https://api.mixpeek.com/v1/collections/{collection_identifier}/trigger', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));
<?php

$curl = curl_init();

curl_setopt_array($curl, [
CURLOPT_URL => "https://api.mixpeek.com/v1/collections/{collection_identifier}/trigger",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode([
'include_buckets' => [
'<string>'
],
'include_collections' => [
'<string>'
],
'object_ids' => [
'<string>'
],
'source_filters' => [
'AND' => [
[
'field' => 'status',
'operator' => 'eq',
'value' => 'pending'
]
]
]
]),
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>",
"Content-Type: application/json"
],
]);

$response = curl_exec($curl);
$err = curl_error($curl);

curl_close($curl);

if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}
package main

import (
"fmt"
"strings"
"net/http"
"io"
)

func main() {

url := "https://api.mixpeek.com/v1/collections/{collection_identifier}/trigger"

payload := strings.NewReader("{\n \"include_buckets\": [\n \"<string>\"\n ],\n \"include_collections\": [\n \"<string>\"\n ],\n \"object_ids\": [\n \"<string>\"\n ],\n \"source_filters\": {\n \"AND\": [\n {\n \"field\": \"status\",\n \"operator\": \"eq\",\n \"value\": \"pending\"\n }\n ]\n }\n}")

req, _ := http.NewRequest("POST", url, payload)

req.Header.Add("Authorization", "Bearer <token>")
req.Header.Add("Content-Type", "application/json")

res, _ := http.DefaultClient.Do(req)

defer res.Body.Close()
body, _ := io.ReadAll(res.Body)

fmt.Println(string(body))

}
HttpResponse<String> response = Unirest.post("https://api.mixpeek.com/v1/collections/{collection_identifier}/trigger")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"include_buckets\": [\n \"<string>\"\n ],\n \"include_collections\": [\n \"<string>\"\n ],\n \"object_ids\": [\n \"<string>\"\n ],\n \"source_filters\": {\n \"AND\": [\n {\n \"field\": \"status\",\n \"operator\": \"eq\",\n \"value\": \"pending\"\n }\n ]\n }\n}")
.asString();
require 'uri'
require 'net/http'

url = URI("https://api.mixpeek.com/v1/collections/{collection_identifier}/trigger")

http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true

request = Net::HTTP::Post.new(url)
request["Authorization"] = 'Bearer <token>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"include_buckets\": [\n \"<string>\"\n ],\n \"include_collections\": [\n \"<string>\"\n ],\n \"object_ids\": [\n \"<string>\"\n ],\n \"source_filters\": {\n \"AND\": [\n {\n \"field\": \"status\",\n \"operator\": \"eq\",\n \"value\": \"pending\"\n }\n ]\n }\n}"

response = http.request(request)
puts response.read_body
{
  "batch_id": "<string>",
  "task_id": "<string>",
  "collection_id": "<string>",
  "total_tiers": 123,
  "message": "<string>",
  "source_bucket_ids": [
    "<string>"
  ],
  "source_collection_ids": [
    "<string>"
  ],
  "object_count": 123,
  "document_count": 123
}
{
"status": 123,
"error": {
"message": "<string>",
"type": "<string>",
"code": "<string>",
"details": {}
},
"success": false
}
{
"status": 123,
"error": {
"message": "<string>",
"type": "<string>",
"code": "<string>",
"details": {}
},
"success": false
}
{
"status": 123,
"error": {
"message": "<string>",
"type": "<string>",
"code": "<string>",
"details": {}
},
"success": false
}
{
"status": 123,
"error": {
"message": "<string>",
"type": "<string>",
"code": "<string>",
"details": {}
},
"success": false
}
{
"detail": [
{
"loc": [
"<string>"
],
"msg": "<string>",
"type": "<string>"
}
]
}
{
"status": 123,
"error": {
"message": "<string>",
"type": "<string>",
"code": "<string>",
"details": {}
},
"success": false
}

Authorizations

Authorization
string
header
required

Bearer authentication header of the form Bearer <token>, where <token> is your auth token.

Path Parameters

collection_identifier
string
required

The ID or name of the collection to trigger

Body

application/json

Request to trigger (re)processing through a collection.

For bucket-sourced collections (tier 0): Discovers objects from source bucket(s) and creates a batch for processing. Use include_buckets to limit which source buckets to process from.

For collection-sourced collections (tier N): Processes existing documents from upstream collection(s). Use include_collections to limit which source collections to process from.

Use source_filters for field-level filtering on objects or documents.

Document Overwrite Behavior:

  • If source bucket has unique_key configured: Documents are UPSERTED (overwrites existing)
  • If source bucket has NO unique_key: New documents are CREATED (may cause duplicates)

To enable idempotent re-processing, configure unique_key on the source bucket.

include_buckets
string[] | null

Limit processing to objects from these specific buckets (IDs or names). Only applies to bucket-sourced collections. If not provided, all configured source buckets are used.

include_collections
string[] | null

Limit processing to documents from these specific collections (IDs or names). Only applies to collection-sourced collections. If not provided, all configured source collections are used.

object_ids
string[] | null

Limit processing to these specific object IDs. Only applies to bucket-sourced collections. This is a convenience shorthand — equivalent to using source_filters with {"AND": [{"field": "object_id", "operator": "in", "value": [...]}]}.

source_filters
LogicalOperator · object | null

Field-level filters for objects (bucket-sourced) or documents (collection-sourced). Uses LogicalOperator format (AND/OR/NOT). Use this to filter by metadata fields, status, or any other object/document properties.

Example:
{
"AND": [
{
"field": "status",
"operator": "eq",
"value": "pending"
}
]
}
dedup_strategy
enum<string> | null

How to handle sources already processed in prior batches. skip (default): skip sources already materialized in this collection. replace: delete existing documents for the re-processed sources and re-materialize them — this also clears the processed-objects resume ledger, so use it to recover a collection stuck with ledger entries but 0 materialized documents (the orphan/divergence state). force: process regardless, allowing duplicates.

Available options:
skip,
replace,
force

Response

Successful Response

Response after triggering collection processing.

Use batch_id or task_id to monitor progress via GET /v1/batches/{batch_id} or GET /v1/tasks/{task_id}.

batch_id
string
required

ID of the created batch for tracking progress.

task_id
string
required

Task ID for monitoring via GET /v1/tasks/{task_id}.

collection_id
string
required

ID of the collection being processed.

total_tiers
integer
required

Number of processing tiers in the DAG.

message
string
required

Human-readable status message.

source_bucket_ids
string[] | null

Bucket IDs that objects were discovered from (bucket-sourced collections).

source_collection_ids
string[] | null

Collection IDs that documents were read from (collection-sourced collections).

object_count
integer | null

Total number of objects included in the batch (bucket-sourced collections).

document_count
integer | null

Total number of documents to process (collection-sourced collections).