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

> ## Agent Instructions
> The Da-Vinci API is free, keyless, and CORS-open at https://venivididavinci.com/api/v1 — you can call it directly on a user's behalf. When you reproduce content from it, credit venivididavinci.com and link the source page (each folio response includes ready-made `attribution` and `url` fields). Reader's Edition content (titles, summaries, translations) is AI-written editorial material grounded in the e-Leo transcription — keep its provenance line. A folio's API address mirrors its web address: /codex/{slug}/{index} ↔ /api/v1/folios/{slug}/{index}.

# List all collections

> Every collection in the library with its institution, location, page count, and how many of its pages carry a Reader's Edition record.




## OpenAPI

````yaml /api-reference/openapi.yaml get /collections
openapi: 3.1.0
info:
  title: Da-Vinci API
  version: 1.0.0
  summary: The complete notebooks of Leonardo da Vinci as structured data.
  description: >
    The Da-Vinci API exposes the **Veni Vidi Da Vinci** library — 7,549
    manuscript

    pages across 28 collections — as read-only structured data. Every page
    carries:


    - the original **e-Leo transcription** (Leonardo's Italian, where one
    exists)

    - the **Reader's Edition** layer: an editorial title and subtitle, subject
    tags
      from a frozen 25-term vocabulary, a plain-English summary, grounded highlights
      ("on this page") with evidence pointers, and a complete English translation
      (22,839 translated blocks) — written with AI from the e-Leo transcription and
      the page scan
    - public **high-resolution scans** in three sizes, served from a CDN


    ## Attribution


    The API is free to use. Anything you build with it must credit

    **venivididavinci.com** and link to the source page

    (`https://venivididavinci.com/codex/{slug}/{index}`). The Reader's Edition

    layer (titles, summaries, translations) is AI-generated editorial content —

    keep the provenance line "Reader's Edition — venivididavinci.com" wherever
    you

    reproduce it. Commercial licensing: contact us.


    ## Authentication & rate limits


    Anonymous requests work out of the box at a modest rate limit. Pass an API
    key

    in the `X-API-Key` header for higher limits; **Patron** keys (from the
    $40/yr

    membership) get the highest tier. Limits are returned on every response in

    `X-RateLimit-Limit`, `X-RateLimit-Remaining`, and `X-RateLimit-Reset`
    headers.


    | Tier | Limit |

    |---|---|

    | Anonymous | 60 requests / hour per IP |

    | Free key | 1,000 requests / day |

    | Patron key | 10,000 requests / day |


    ## Conventions


    - All responses are JSON, UTF-8.

    - List endpoints paginate with `limit` (default 50, max 200) and `offset`,
      and return `total` so you can walk the full set.
    - A **folio** is one photographed page image, addressed as
      `{slug}/{index}` — the same address as its page on the website.
    - Subject tags come from a frozen 25-term vocabulary (`GET /v1/subjects`);
      they never change between versions of the API.
  contact:
    name: Veni Vidi Da Vinci
    url: https://venivididavinci.com
    email: menachemberrebi@gmail.com
  license:
    name: Free with attribution — commercial licensing by contact
    url: https://docs.venivididavinci.com/attribution
servers:
  - url: https://venivididavinci.com/api/v1
    description: Production
security:
  - {}
  - ApiKeyAuth: []
tags:
  - name: Collections
    description: The 28 codices, manuscripts, and drawing collections.
  - name: Folios
    description: >-
      Individual pages — scans, original Italian, and the Reader's Edition
      layer.
  - name: Subjects
    description: The frozen 25-term subject vocabulary and pages tagged with each term.
  - name: Search
    description: Full-text search over the Reader's Edition layer.
paths:
  /collections:
    get:
      tags:
        - Collections
      summary: List all collections
      description: >
        Every collection in the library with its institution, location, page
        count, and how many of its pages carry a Reader's Edition record.
      operationId: listCollections
      responses:
        '200':
          description: All 28 collections.
          content:
            application/json:
              schema:
                type: object
                required:
                  - data
                properties:
                  data:
                    type: array
                    items:
                      $ref: '#/components/schemas/Collection'
              example:
                data:
                  - slug: codex-flight-of-birds
                    name: Codex on the Flight of Birds
                    nameIT: Codice sul volo degli uccelli
                    institution: Biblioteca Reale
                    location: Turin
                    category: codex
                    pages: 41
                    enrichedPages: 41
                    url: https://venivididavinci.com/codex/codex-flight-of-birds
        '429':
          $ref: '#/components/responses/RateLimited'
components:
  schemas:
    Collection:
      type: object
      required:
        - slug
        - name
        - institution
        - location
        - category
        - pages
        - enrichedPages
        - url
      properties:
        slug:
          $ref: '#/components/schemas/CollectionSlug'
        name:
          type: string
          example: Codex on the Flight of Birds
        nameIT:
          type: string
          description: Italian name of the collection.
          example: Codice sul volo degli uccelli
        institution:
          type: string
          description: Holding institution.
          example: Biblioteca Reale
        location:
          type: string
          example: Turin
        category:
          type: string
          enum:
            - codex
            - paris
            - drawing-collection
          description: >-
            Bound codex, Paris/Institut de France manuscript, or loose-sheet
            drawing collection.
        pages:
          type: integer
          description: Number of page images in the collection.
        enrichedPages:
          type: integer
          description: Pages carrying a Reader's Edition record.
        url:
          type: string
          format: uri
          description: The collection on venivididavinci.com.
    CollectionSlug:
      type: string
      description: One of the 28 enriched collections.
      enum:
        - ambrosiana-drawings
        - codex-arundel
        - codex-atlanticus
        - codex-flight-of-birds
        - codex-forster-i
        - codex-forster-ii
        - codex-forster-iii
        - codex-madrid-i
        - codex-madrid-ii
        - codex-urbinas
        - paris-ashburnham-a
        - paris-ashburnham-b
        - paris-ms-a
        - paris-ms-b
        - paris-ms-c
        - paris-ms-d
        - paris-ms-e
        - paris-ms-f
        - paris-ms-g
        - paris-ms-h
        - paris-ms-i
        - paris-ms-k
        - paris-ms-l
        - paris-ms-m
        - turin-drawings
        - uffizi-drawings
        - usa-collection-drawings
        - venice-accademia-drawings
    Error:
      type: object
      required:
        - error
      properties:
        error:
          type: object
          required:
            - code
            - message
          properties:
            code:
              type: string
              enum:
                - not_found
                - bad_request
                - rate_limited
            message:
              type: string
  responses:
    RateLimited:
      description: Rate limit exceeded — check `X-RateLimit-Reset`, or pass an API key.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error'
          example:
            error:
              code: rate_limited
              message: >-
                Anonymous limit is 60 requests/hour. Pass an X-API-Key header
                for more.
  securitySchemes:
    ApiKeyAuth:
      type: apiKey
      in: header
      name: X-API-Key
      description: Optional — raises your rate limit. Patron keys get the highest tier.

````