---
title: "Search the caller's brand-image library"
method: POST
path: "/api/v1/autogenerator/brand-image-search"
tags: ["AutoGenerator"]
---

# Search the caller's brand-image library

`POST /api/v1/autogenerator/brand-image-search`

## Request

- Base URL: `https://api.prezent.ai`
- URL: `https://api.prezent.ai/api/v1/autogenerator/brand-image-search`
- Auth: HTTP bearer

Returns brand images that match the query string, ordered by
relevance. Supports `skip` and `limit` for pagination.

## Request body

- AutoGeneratorBrandImageSearchRequest: Request body for `POST /api/v1/autogenerator/brand-image-search`.
  - `callback_id` string, required: Deck callback id (used for scoping to the right company).
  - `query` string: Search query. Defaults to `*` (return all).
  - `skip` integer: Number of results to skip (pagination offset).
  - `limit` integer: Maximum number of results to return.

## Response `200`

Matching brand images returned.

- AutoGeneratorMessageDataResponse: Standard success envelope. Endpoint-specific schemas extend this and constrain the `data` property to their concrete shape. Additional legacy keys (`status`, `log`, …) may appear alongside `success`/`data` for backwards compatibility, and some legacy handlers omit `success`, so it is not marked required.
  - `success` boolean: `true` on success (omitted by some legacy handlers).
  - `data` object, required: Service-specific payload.

## Other responses

- `400`: Generic client error. `error.code` is one of `BAD_REQUEST`, `INVALID_JSON`, `MISSING_REQUIRED_FIELD`, `MISSING_QUERY_PARAM`, `MISSING_CALLBACK_ID`, `MISSING_SLIDES_ARRAY`, `MISSING_PROMPT`, `MISSING_TEMPLATE_ID`, `MISSING_FILE_CONTENT`, `MISSING_SHARE_DETAILS`, `INVALID_TYPE`, `INVALID_DATA`, `INVALID_DATA_TYPE`, `INVALID_PAYLOAD`, `INVALID_REQUEST`, `API_REQUEST_FAILED`, or `FILE_UPLOAD_FAILED`.
- `401`: Caller did not present a valid Bearer token, or the token has expired. `error.code` is one of `UNAUTHORIZED`, `INVALID_API_KEY`, `EXPIRED_API_KEY`.
- `403`: Caller is authenticated but not allowed to perform this operation. `error.code` is `FORBIDDEN`.
- `404`: Requested endpoint or resource does not exist. `error.code` is one of `ENDPOINT_NOT_FOUND`, `RESOURCE_NOT_FOUND`, `NOT_FOUND`.
- `422`: Request was well-formed but failed semantic validation. `error.code` is one of `INVALID_INPUT`, `UNPROCESSABLE_ENTITY`.
- `429`: Rate limit, usage limit, or gateway-level throttle exceeded. `error.code` is `TOO_MANY_REQUESTS` (gateway throttle), `RATE_LIMIT_EXCEEDED` (per-category), or `USAGE_LIMIT_EXCEEDED` (annual quota). Default limits (all configurable per company/key): - Gateway throttle (per API key) → `TOO_MANY_REQUESTS`: 10 requests/second sustained, 5 burst, 1,000 requests/day. - Per-company, per-category sliding 60-second window → `RATE_LIMIT_EXCEEDED`. The applicable category is given by each operation's `x-rate-limit-category`. - Annual usage quota → `USAGE_LIMIT_EXCEEDED`: 50,000 slide generations/year and 1,000,000 presentation downloads/year. `X-RateLimit-Limit`/`X-RateLimit-Remaining`/`X-RateLimit-Reset` are returned on successful (2xx) responses from rate-limited endpoints and, with `Retry-After`, on the per-category `RATE_LIMIT_EXCEEDED` 429 (the headers declared below). The gateway `TOO_MANY_REQUESTS` and annual `USAGE_LIMIT_EXCEEDED` responses do not carry them. Read `X-RateLimit-Remaining` to self-throttle and honour `Retry-After` on a 429.
- `500`: Unexpected server error. `error.code` is `INTERNAL_SERVER_ERROR`.
- `503`: Service is temporarily unavailable (downstream dependency unhealthy). `error.code` is `SERVICE_UNAVAILABLE` or `EXTERNAL_SERVICE_ERROR`.
- `504`: A downstream call timed out. `error.code` is `GATEWAY_TIMEOUT`.

---

[API](https://skmtc.dev/prezent/apis/prezent-platform-api.md) - [All operations](https://skmtc.dev/prezent/apis/prezent-platform-api/llms.txt) - [OpenAPI document](https://skmtc.dev/prezent/apis/prezent-platform-api/revisions/ee447c970c82?raw)
