> ## Documentation Index
> Fetch the complete documentation index at: https://docs.dafty.ai/llms.txt
> Use this file to discover all available pages before exploring further.

# Semantic search a style's linked-folder assets



## OpenAPI

````yaml /openapi.json post /styles/{id}/search
openapi: 3.0.3
info:
  title: Dafty API
  version: v1
  description: >-
    Generate on-brand graphics from a simple, opinionated API. Authenticate with
    an API key via the `x-api-key` header (or `Authorization: Bearer`).
    Generation endpoints return `202` with a job; poll `GET /jobs/{id}`
    (optionally `?wait=true`) for the result.
servers:
  - url: https://app.dafty.ai/api/v1
    description: Base URL for all v1 endpoints.
security:
  - apiKey: []
  - bearerAuth: []
tags:
  - name: Account
    description: Who an API key belongs to.
  - name: Images
    description: Generate, edit, resize, and upscale images.
  - name: Videos
    description: >-
      Generate video: animate a single image, or transition between a start and
      end frame. One clip per request.
  - name: Jobs
    description: Poll, list, and cancel asynchronous jobs.
  - name: Styles
    description: Extract brand styles and search their assets.
  - name: Uploads
    description: Bring your own reference images via direct-to-storage upload.
paths:
  /styles/{id}/search:
    post:
      tags:
        - Styles
      summary: Semantic search a style's linked-folder assets
      operationId: searchStyle
      parameters:
        - name: id
          in: path
          required: true
          schema:
            type: string
            format: uuid
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/StyleSearch'
            example:
              query: a dark logo on a transparent background
              limit: 5
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                type: object
                properties:
                  data:
                    type: array
                    items:
                      $ref: '#/components/schemas/StyleSearchResult'
                required:
                  - data
              example:
                data:
                  - id: 9b3f0c12-6e8a-4d2b-bc91-0a7e2f1d3c45
                    name: logo-dark.png
                    url: https://cdn.example.com/uploads/usr_8a2f3c/logo-dark.png
                    similarity: 0.89
        '400':
          description: Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '401':
          description: Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '404':
          description: Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '429':
          description: Too many requests. A per-key rate limit was hit; back off and retry.
          headers:
            Retry-After:
              description: Seconds to wait before retrying.
              schema:
                type: integer
            X-RateLimit-Limit:
              description: Requests allowed in the current window.
              schema:
                type: integer
            X-RateLimit-Remaining:
              description: Requests remaining in the current window.
              schema:
                type: integer
            X-RateLimit-Reset:
              description: Seconds until the current window resets.
              schema:
                type: integer
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
components:
  schemas:
    StyleSearch:
      type: object
      properties:
        query:
          type: string
          minLength: 1
          maxLength: 500
        limit:
          type: integer
          minimum: 1
          maximum: 50
      required:
        - query
      additionalProperties: false
    StyleSearchResult:
      type: object
      properties:
        id:
          type: string
        name:
          type: string
        url:
          type: string
        similarity:
          type: number
          description: >-
            Relevance score in [0,1] (cosine similarity); higher is more
            similar.
      required:
        - id
        - name
        - url
        - similarity
      additionalProperties: false
    Error:
      type: object
      properties:
        error:
          type: object
          properties:
            code:
              type: string
              description: >-
                Stable, machine-readable error code. Common values:
                `VALIDATION_ERROR` (400), `NOT_FOUND` (404),
                `INSUFFICIENT_CREDITS` / `SUBSCRIPTION_REQUIRED` (402),
                `RATE_LIMIT_ERROR` / `USAGE_LIMIT_EXCEEDED` /
                `CONCURRENT_LIMIT_REACHED` (429), `INTERNAL_ERROR` (500).
            message:
              type: string
            details:
              type: object
              additionalProperties: true
              nullable: true
              description: >-
                Present on validation errors: the offending fields and why they
                failed.
          required:
            - message
      required:
        - error
  securitySchemes:
    apiKey:
      type: apiKey
      in: header
      name: x-api-key
    bearerAuth:
      type: http
      scheme: bearer

````