Skip to main content
POST
/
v1
/
buckets
/
{bucket_identifier}
/
objects
/
batch
Create Objects in Batch
curl --request POST \
  --url https://api.mixpeek.com/v1/buckets/{bucket_identifier}/objects/batch \
  --header 'Content-Type: application/json' \
  --data '
{
  "objects": [
    {
      "blobs": [
        {
          "data": {
            "num_pages": 5,
            "title": "Service Agreement 2024"
          },
          "key_prefix": "/contract-2024/content.pdf",
          "metadata": {
            "author": "John Doe",
            "department": "Legal"
          },
          "property": "content",
          "type": "json"
        },
        {
          "data": {
            "filename": "https://example.com/images/smartphone-x1.jpg",
            "mime_type": "image/jpeg"
          },
          "key_prefix": "/contract-2024/thumbnail.jpg",
          "metadata": {
            "height": 300,
            "width": 200
          },
          "property": "thumbnail",
          "type": "image"
        }
      ],
      "key_prefix": "/documents",
      "metadata": {
        "category": "contracts",
        "status": "draft",
        "year": 2024
      }
    }
  ]
}
'
[
  {
    "bucket_id": "<string>",
    "object_id": "<string>",
    "key_prefix": "<string>",
    "content_hash": "<string>",
    "blobs": [
      {
        "property": "<string>",
        "type": "string",
        "blob_id": "<string>",
        "key_prefix": "/videos/video.mp4",
        "properties": {},
        "details": {
          "filename": "<string>",
          "size_bytes": 123,
          "mime_type": "<string>",
          "hash": "<string>"
        }
      }
    ],
    "source_details": [
      {
        "type": "bucket",
        "source_id": "<string>"
      }
    ],
    "status": "DRAFT",
    "error": "Failed to process object: Object not found",
    "skip_duplicates": false,
    "created_at": "2023-11-07T05:31:56Z",
    "updated_at": "2023-11-07T05:31:56Z"
  }
]

Headers

Authorization
string

REQUIRED: Bearer token authentication using your API key. Format: 'Bearer sk_xxxxxxxxxxxxx'. You can create API keys in the Mixpeek dashboard under Organization Settings.

Examples:

"Bearer YOUR_API_KEY"

"Bearer YOUR_STRIPE_API_KEY"

X-Namespace
string

REQUIRED: Namespace identifier for scoping this request. All resources (collections, buckets, taxonomies, etc.) are scoped to a namespace. You can provide either the namespace name or namespace ID. Format: ns_xxxxxxxxxxxxx (ID) or a custom name like 'my-namespace'

Examples:

"ns_abc123def456"

"production"

"my-namespace"

Path Parameters

bucket_identifier
string
required

The unique identifier of the bucket.

Body

application/json

Request model for creating multiple bucket objects in a batch.

objects
CreateObjectRequest · object[]
required

List of objects to be created in this batch (max 100).

Maximum array length: 100

Response

Successful Response

bucket_id
string
required

ID of the bucket this object belongs to

object_id
string

Unique identifier for the object

key_prefix
string | null

Storage key/path of the object, this will be used to retrieve the object from the storage. It is similar to a file path. If not provided, it will be placed in the root of the bucket.

content_hash
string | null

SHA256 hash of the object's content, used for de-duplication.

blobs
BlobModel · object[]

List of blobs contained in this object

source_details
SourceDetails · object[]

Lineage/source details for this object; used for downstream references.

status
enum<string>
default:DRAFT

The current status of the object.

Available options:
PENDING,
IN_PROGRESS,
PROCESSING,
COMPLETED,
COMPLETED_WITH_ERRORS,
FAILED,
CANCELED,
UNKNOWN,
SKIPPED,
DRAFT,
ACTIVE,
ARCHIVED,
SUSPENDED
error
string | null

The error message if the object failed to process.

Example:

"Failed to process object: Object not found"

skip_duplicates
boolean
default:false

Skip duplicate blobs, if a blob with the same hash already exists, it will be skipped.

created_at
string<date-time> | null

Timestamp when the object was created. Automatically populated by the system.

updated_at
string<date-time> | null

Timestamp when the object was last updated. Automatically populated by the system.