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

# search library

> Find or list items in the library. With query: hybrid search over descriptions, tags, transcripts and what pictures show, and an indexed video or recording carries its best matching moments; without one, everything the filters match, newest first. duplicates_of finds near-identical files to one item instead. Each row carries the item's id and ref, title, type, url, when it was added, technical data (size, dimensions, duration), and whether it is stored in the cloud or only on a machine. Pages by next_cursor. Returns the workspace's own items; pulled posts need source pulled or their folder. A page carries feed_url for the same set on the workspace feed. For everything known about one item, get_items. This finds whole items by what they are; search_footage finds moments inside videos by what is said or shown. Free.



## OpenAPI

````yaml /openapi.json post /tools/search_library
openapi: 3.1.0
info:
  title: Eversince API
  version: '1'
  description: >-
    Every Eversince tool as one POST call, plus the routes beside them: the tool
    list, account and keys, uploads, webhooks and models. The prose is at
    https://docs.eversince.ai.
servers:
  - url: https://eversince.ai/api/v1
security:
  - bearer: []
tags:
  - name: Discovery
    description: The tool list, the same on the MCP server, the REST API and the CLI.
  - name: Workspace
    description: Jobs, balances, settings, templates, skills and the overview.
  - name: Library
    description: >-
      Items, search, import, reading media, comments, boards, calendars, the
      brand kit and public links.
  - name: Timeline
    description: 'Video editing: timelines, clips, captions, sound, language and rendering.'
  - name: Canvas
    description: 'Still editing: canvases, slides, layers and rendering.'
  - name: Generation
    description: Image, video and audio generation, upscaling, cutouts and models.
  - name: Research
    description: 'What platforms publish: pulling and keeping posts.'
  - name: Account
    description: Balances, keys, workspaces and script sessions.
  - name: Uploads
    description: Files into the library by presigned upload or by URL.
  - name: Webhooks
    description: Job results posted to a URL as they complete.
  - name: Models
    description: Generation models and cost estimates.
paths:
  /tools/search_library:
    post:
      tags:
        - Library
      summary: search library
      description: >-
        Find or list items in the library. With query: hybrid search over
        descriptions, tags, transcripts and what pictures show, and an indexed
        video or recording carries its best matching moments; without one,
        everything the filters match, newest first. duplicates_of finds
        near-identical files to one item instead. Each row carries the item's id
        and ref, title, type, url, when it was added, technical data (size,
        dimensions, duration), and whether it is stored in the cloud or only on
        a machine. Pages by next_cursor. Returns the workspace's own items;
        pulled posts need source pulled or their folder. A page carries feed_url
        for the same set on the workspace feed. For everything known about one
        item, get_items. This finds whole items by what they are; search_footage
        finds moments inside videos by what is said or shown. Free.
      operationId: search_library
      parameters:
        - $ref: '#/components/parameters/IdempotencyKey'
        - $ref: '#/components/parameters/WorkspaceId'
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                query:
                  type: string
                duplicates_of:
                  description: >-
                    Instead of a search: near-identical files to this item (a
                    crop, a re-export, a version saved twice), closest first,
                    each saying how it matched. limit applies; the other filters
                    do not.
                  type: string
                type:
                  description: A recording is a video (camera or screen) or an audio item.
                  type: string
                  enum:
                    - image
                    - video
                    - audio
                    - document
                folder:
                  description: Folder path ("campaigns/july") or id.
                  type: string
                subfolders:
                  description: 'With folder: everything under it too, all the way down.'
                  type: boolean
                added_from:
                  description: >-
                    Added on or after: an ISO date or date-time, UTC
                    (manage_settings carries the user's time zone; rows return
                    added times in UTC). A bare date is its whole UTC day.
                  type: string
                added_to:
                  description: Added on or before, the same way.
                  type: string
                modified_from:
                  description: Last changed on or after.
                  type: string
                modified_to:
                  description: Last changed on or before.
                  type: string
                sort:
                  description: >-
                    Order: newest or oldest added, most recently modified, name
                    A to Z, or largest first. Without a query the default is
                    newest; with one, relevance.
                  type: string
                  enum:
                    - newest
                    - oldest
                    - modified
                    - name
                    - size
                favorite:
                  description: true for starred items only, false for the rest.
                  type: boolean
                stored:
                  description: >-
                    cloud: the bytes are with us, so any tool can read them.
                    local: only on a user's computer until synced.
                  type: string
                  enum:
                    - cloud
                    - local
                source:
                  description: >-
                    Narrow to how the item came about: assets (what was uploaded
                    or imported), generations (what a model made here), or
                    pulled (posts kept off a platform with keep_posts).
                  type: string
                  enum:
                    - assets
                    - generations
                    - pulled
                label:
                  description: Only items carrying this label (by name).
                  type: string
                timeline:
                  description: >-
                    Only this timeline's media and docs (timeline_media): what
                    its cut uses plus what was attached to it. The scope to
                    search first when working a timeline; the whole library
                    stays one call away.
                  type: string
                fields:
                  description: Custom field filters, name → required value.
                  type: object
                  propertyNames:
                    type: string
                  additionalProperties: {}
                hidden:
                  description: >-
                    true for what the user hid from their feed (still in the
                    library), false for what still shows there. Results carry
                    hidden: true.
                  type: boolean
                limit:
                  description: Per page. Default 30.
                  type: integer
                  minimum: 1
                  maximum: 100
                cursor:
                  description: >-
                    next_cursor from the page before, with the same query and
                    filters.
                  type: string
      responses:
        '200':
          description: >-
            Done, or a job started for work that runs longer (follow it with
            get_jobs).
          content:
            application/json:
              schema:
                type: object
                required:
                  - ok
                  - data
                  - meta
                properties:
                  ok:
                    const: true
                  data:
                    type: object
                    additionalProperties: true
                  meta:
                    type: object
                    properties:
                      request_id:
                        type: string
                      cost:
                        $ref: '#/components/schemas/Cost'
                      cloud_processing:
                        $ref: '#/components/schemas/CloudProcessing'
                  media:
                    type: array
                    items:
                      type: object
                      additionalProperties: true
        default:
          $ref: '#/components/responses/Error'
components:
  parameters:
    IdempotencyKey:
      name: Idempotency-Key
      in: header
      required: false
      schema:
        type: string
      description: >-
        Retry a paid dispatch safely: the same key returns the job already
        dispatched instead of charging again.
    WorkspaceId:
      name: x-workspace-id
      in: header
      required: false
      schema:
        type: string
      description: The workspace this one call acts in, when it is not the key's own.
  schemas:
    Cost:
      type: object
      description: AI credits the call cost.
      additionalProperties: true
    CloudProcessing:
      type: object
      description: Cloud processing the call used, and what is left.
      properties:
        ran_on:
          const: cloud
        minutes:
          type: number
        queued_minutes:
          type: number
        left_minutes:
          type: number
        bought_minutes:
          type: number
        note:
          type: string
    Error:
      type: object
      required:
        - ok
        - error
      properties:
        ok:
          const: false
        error:
          type: object
          required:
            - code
            - message
            - retryable
          properties:
            code:
              type: string
            message:
              type: string
              description: What went wrong, in words to act on.
            retryable:
              type: boolean
            suggested_action:
              type: string
              description: The next step that works.
            cloud_processing:
              $ref: '#/components/schemas/CloudProcessing'
  responses:
    Error:
      description: The call was refused or failed.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error'
  securitySchemes:
    bearer:
      type: http
      scheme: bearer
      description: >-
        An API key (es_live_…) from Settings, under API keys, or an OAuth access
        token.

````