Fatcat files API

**File** entities represent unique digital files which are full # TAGLINE manifestations of specific releases (publications), such as fulltext PDF # TAGLINE files, JATS XML documents, or video files. File entities also include a # TAGLINE set of locations where they can be found on the public web. # TAGLINE See the "Catalog Style Guide" section of the guide for details and # TAGLINE semantics of what should be included in specific entity fields. # TAGLINE Specifically, the # TAGLINE [File Entity Reference](https://guide.fatcat.wiki/entity_file.html). # TAGLINE

Operations 11

POST /editgroup/{editgroup_id}/file #
POST /editgroup/auto/file/batch #
GET /file/{ident} #
PUT /editgroup/{editgroup_id}/file/{ident} #
DELETE /editgroup/{editgroup_id}/file/{ident} #
GET /file/rev/{rev_id} #
GET /file/{ident}/history #
GET /file/{ident}/redirects #
GET /file/lookup #
GET /file/edit/{edit_id} #
DELETE /editgroup/{editgroup_id}/file/edit/{edit_id} #

Work with this as data

Every API here is available over the APIs.io API and to AI agents over MCP.

MCP server

One button, every client — Claude, Cursor, VS Code and the rest.

https://apis.io/mcp

Tools for apis

7 MCP tools reach this
  • find_apisBrowse and filter every API in the catalog.
  • get_api_artifactsOne API's artifacts, grouped by type.
  • get_openapiThe primary OpenAPI for this API.
  • find_similar_apisAPIs that look like this one.
  • apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.
  • resolveTurn a domain, URL or GitHub org into the provider it belongs to.
  • find_cohortsEvery scored population of providers in the catalog.
All 92 tools →

Call it yourself

curl for this page
This API
curl "https://apis.io/api/v1/apis/fatcat-files-api"
All apis
curl "https://apis.io/api/v1/apis?limit=25"

Discovery needs no key. Ratings and market analysis are Pro.

Get an API key

Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.

A second provider on the same verified email joins the account you already have.

OpenAPI Specification

fatcat-files-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: fatcat auth Files API
  version: 0.5.0
  description: 'Fatcat is a scalable, versioned, API-oriented catalog of bibliographic

    entities and file metadata.


    <!-- STARTLONGDESCRIPTION -->

    These API reference documents, along with client software libraries, are

    generated automatically from an OpenAPI 2.0 ("Swagger") definition file.


    ## Introduction



    A higher-level introduction to the API, as well as a description of the

    fatcat data model, are available in ["The Fatcat Guide"](https://guide.fatcat.wiki/).

    The guide also includes a [Cookbook](https://guide.fatcat.wiki/cookbook.html)

    section demonstrating end-to-end tasks like creating entities as part of

    editgroups, or safely merging duplicate entities.


    ### Expectations and Best Practices


    A test/staging QA API instance of fatcat is available at

    <https://api.qa.fatcat.wiki/v0>. The database backing this instance is

    separate from the production interface, and is periodically rebuilt from

    snapshots of the full production database, meaning that edits on the QA

    server will *NOT* persist, and that semantics like the changelog index

    monotonically increasing *MAY* be broken. Developers are expexcted to test

    their scripts and tools against the QA instance before running against

    production.


    NOTE: as of Spring 2021, the QA server is temporarily unavailable.


    Fatcat is made available as a gratis (no cost) and libre (freedom

    preserving) service to the public, with limited funding and resources. We

    welcome new and unforeseen uses and contributions, but may need to impose

    restrictions (like rate-limits) to keep the service functional for other

    users, and in extreme cases reserve the option to block accounts and IP

    ranges if necessary to keep the service operational.


    The Internet Archive owns and operates it''s own server equipment and data

    centers, and operations are optimized for low-cost, not high-availability.

    Users and partners should expect some downtime on the fatcat API, on the

    order of hours a month.


    Periodic metadata exports are available for batch processing, and database

    snapshots can be used to create locally-hosted mirrors of the service for

    more intensive and reliable querying.


    ### Other Nitty Gritties


    Cross-origin requests are allowed for the API service, to enable third

    parties to build in-browser applications.


    A metadata search service is available at <https://search.fatcat.wiki>.

    The API is currently the raw elasticsearch API, with only GET (read)

    requests allowed. This public service is experimental and may be removed or

    limited in the future.


    ## Authentication


    The API allows basic read-only "GET" HTTP requests with no authentication.

    Proposing changes to the metadata, or other mutating requests ("PUT",

    "POST", "DELETE") all require authentication, and some operations require

    additional account permissions.


    End-user account creation and login happens through the web interface. From

    a logged-in editor profile page, you can generate a API token. Tokens are

    "macaroons", similar to JWT tokens, and are used for all API

    authentication. The web interface includes macaroons in browser cookies and

    passes them through to the API to authenticate editor actions.


    <!-- ReDoc-Inject: <security-definitions> -->

    <!-- ENDLONGDESCRIPTION -->

    '
  termsOfService: https://guide.fatcat.wiki/policies.html
  contact:
    name: Internet Archive Web Group
    email: webservices@archive.org
    url: https://fatcat.wiki
  x-logo:
    url: https://fatcat.wiki/static/paper_man_confused.gif
    altText: Confused Papers Man (Logo)
    backgroundColor: '#FFFFFF'
servers:
- url: https://api.fatcat.wiki/v0
tags:
- name: files
  x-displayName: Files
  description: '**File** entities represent unique digital files which are full  # TAGLINE

    manifestations of specific releases (publications), such as fulltext PDF  # TAGLINE

    files, JATS XML documents, or video files. File entities also include a  # TAGLINE

    set of locations where they can be found on the public web.  # TAGLINE


    See the "Catalog Style Guide" section of the guide for details and  # TAGLINE

    semantics of what should be included in specific entity fields.  # TAGLINE

    Specifically, the  # TAGLINE

    [File Entity Reference](https://guide.fatcat.wiki/entity_file.html).  # TAGLINE

    '
paths:
  /editgroup/{editgroup_id}/file:
    parameters:
    - name: editgroup_id
      in: path
      required: true
      schema:
        type: string
    post:
      operationId: create_file
      tags:
      - files
      security:
      - Bearer: []
      responses:
        400:
          description: Bad Request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/error_response'
        404:
          description: Not Found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/error_response'
        500:
          description: Generic Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/error_response'
        401:
          description: Not Authorized
          headers:
            WWW_Authenticate:
              schema:
                type: string
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/error_response'
        403:
          description: Forbidden
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/error_response'
        201:
          description: Created Entity
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/entity_edit'
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/file_entity'
        required: true
  /editgroup/auto/file/batch:
    post:
      operationId: create_file_auto_batch
      tags:
      - files
      security:
      - Bearer: []
      responses:
        400:
          description: Bad Request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/error_response'
        404:
          description: Not Found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/error_response'
        500:
          description: Generic Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/error_response'
        401:
          description: Not Authorized
          headers:
            WWW_Authenticate:
              schema:
                type: string
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/error_response'
        403:
          description: Forbidden
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/error_response'
        201:
          description: Created Editgroup
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/editgroup'
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/file_auto_batch'
        required: true
  /file/{ident}:
    parameters:
    - name: ident
      in: path
      required: true
      schema:
        type: string
    get:
      operationId: get_file
      tags:
      - files
      parameters:
      - name: expand
        in: query
        required: false
        description: List of sub-entities to expand in response. For files, `releases` is accepted.
        schema:
          type: string
      - name: hide
        in: query
        required: false
        description: List of entity fields to elide in response. For files, none accepted (yet).
        schema:
          type: string
      responses:
        400:
          description: Bad Request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/error_response'
        404:
          description: Not Found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/error_response'
        500:
          description: Generic Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/error_response'
        200:
          description: Found Entity
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/file_entity'
  /editgroup/{editgroup_id}/file/{ident}:
    parameters:
    - name: editgroup_id
      in: path
      required: true
      schema:
        type: string
    - name: ident
      in: path
      required: true
      schema:
        type: string
    put:
      operationId: update_file
      tags:
      - files
      security:
      - Bearer: []
      responses:
        400:
          description: Bad Request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/error_response'
        404:
          description: Not Found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/error_response'
        500:
          description: Generic Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/error_response'
        401:
          description: Not Authorized
          headers:
            WWW_Authenticate:
              schema:
                type: string
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/error_response'
        403:
          description: Forbidden
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/error_response'
        200:
          description: Updated Entity
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/entity_edit'
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/file_entity'
        required: true
    delete:
      operationId: delete_file
      tags:
      - files
      security:
      - Bearer: []
      responses:
        400:
          description: Bad Request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/error_response'
        404:
          description: Not Found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/error_response'
        500:
          description: Generic Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/error_response'
        401:
          description: Not Authorized
          headers:
            WWW_Authenticate:
              schema:
                type: string
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/error_response'
        403:
          description: Forbidden
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/error_response'
        200:
          description: Deleted Entity
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/entity_edit'
  /file/rev/{rev_id}:
    parameters:
    - description: UUID (lower-case, dash-separated, hex-encoded 128-bit)
      name: rev_id
      in: path
      required: true
      schema:
        type: string
        maxLength: 36
        minLength: 36
        pattern: '[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}'
    get:
      operationId: get_file_revision
      tags:
      - files
      parameters:
      - name: expand
        in: query
        required: false
        description: List of sub-entities to expand in response. See `get_file`.
        schema:
          type: string
      - name: hide
        in: query
        required: false
        description: List of entity fields to elide in response. See `get_file`.
        schema:
          type: string
      responses:
        400:
          description: Bad Request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/error_response'
        404:
          description: Not Found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/error_response'
        500:
          description: Generic Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/error_response'
        200:
          description: Found Entity Revision
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/file_entity'
  /file/{ident}/history:
    parameters:
    - name: ident
      in: path
      required: true
      schema:
        type: string
    - name: limit
      in: query
      required: false
      schema:
        type: integer
        format: int64
    get:
      operationId: get_file_history
      tags:
      - files
      responses:
        400:
          description: Bad Request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/error_response'
        404:
          description: Not Found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/error_response'
        500:
          description: Generic Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/error_response'
        200:
          description: Found Entity History
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/entity_history_entry'
  /file/{ident}/redirects:
    parameters:
    - name: ident
      in: path
      required: true
      schema:
        type: string
    get:
      operationId: get_file_redirects
      tags:
      - files
      responses:
        400:
          description: Bad Request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/error_response'
        404:
          description: Not Found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/error_response'
        500:
          description: Generic Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/error_response'
        200:
          description: Found Entity Redirects
          content:
            application/json:
              schema:
                type: array
                items:
                  type: string
                  pattern: '[a-zA-Z2-7]{26}'
                  minLength: 26
                  maxLength: 26
                  description: base32-encoded unique identifier
  /file/lookup:
    get:
      operationId: lookup_file
      tags:
      - files
      parameters:
      - description: MD5 hash of data, in hex encoding
        name: md5
        in: query
        required: false
        schema:
          type: string
          maxLength: 32
          minLength: 32
          pattern: '[a-f0-9]{32}'
      - description: SHA-1 hash of data, in hex encoding
        name: sha1
        in: query
        required: false
        schema:
          type: string
          maxLength: 40
          minLength: 40
          pattern: '[a-f0-9]{40}'
      - description: SHA-256 hash of data, in hex encoding
        name: sha256
        in: query
        required: false
        schema:
          type: string
          maxLength: 64
          minLength: 64
          pattern: '[a-f0-9]{64}'
      - name: expand
        in: query
        required: false
        description: List of sub-entities to expand in response. See `get_file`.
        schema:
          type: string
      - name: hide
        in: query
        required: false
        description: List of entity fields to elide in response. See `get_file`.
        schema:
          type: string
      responses:
        400:
          description: Bad Request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/error_response'
        404:
          description: Not Found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/error_response'
        500:
          description: Generic Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/error_response'
        200:
          description: Found Entity
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/file_entity'
  /file/edit/{edit_id}:
    get:
      operationId: get_file_edit
      tags:
      - files
      parameters:
      - description: UUID (lower-case, dash-separated, hex-encoded 128-bit)
        name: edit_id
        in: path
        required: true
        schema:
          type: string
          maxLength: 36
          minLength: 36
          pattern: '[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}'
      responses:
        400:
          description: Bad Request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/error_response'
        404:
          description: Not Found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/error_response'
        500:
          description: Generic Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/error_response'
        200:
          description: Found Edit
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/entity_edit'
  /editgroup/{editgroup_id}/file/edit/{edit_id}:
    parameters:
    - name: editgroup_id
      in: path
      required: true
      schema:
        type: string
    - description: UUID (lower-case, dash-separated, hex-encoded 128-bit)
      name: edit_id
      in: path
      required: true
      schema:
        type: string
        maxLength: 36
        minLength: 36
        pattern: '[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}'
    delete:
      operationId: delete_file_edit
      tags:
      - files
      security:
      - Bearer: []
      responses:
        400:
          description: Bad Request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/error_response'
        404:
          description: Not Found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/error_response'
        500:
          description: Generic Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/error_response'
        401:
          description: Not Authorized
          headers:
            WWW_Authenticate:
              schema:
                type: string
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/error_response'
        403:
          description: Forbidden
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/error_response'
        200:
          description: Deleted Edit
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/success'
components:
  schemas:
    file_url:
      type: object
      required:
      - url
      - rel
      properties:
        url:
          type: string
          format: url
          example: https://example.edu/~frau/prcding.pdf
          description: 'URL/URI pointing directly to a machine retrievable copy of this exact

            file.

            '
        rel:
          type: string
          example: web
          description: 'Indicates type of host this URL points to. Eg, "publisher",

            "repository", "webarchive". See guide for list of acceptable values.

            '
    webcapture_url:
      type: object
      required:
      - url
      - rel
      properties:
        url:
          type: string
          format: url
          example: https://web.archive.org/web/
          description: 'URL/URI pointing to archive of this web resource.

            '
        rel:
          type: string
          example: wayback
          description: 'Type of archive endpoint. Usually `wayback` (WBM replay of primary

            resource), or `warc` (direct URL to a WARC file containing all

            resources of the capture). See guide for full list.

            '
    editgroup_annotation:
      type: object
      properties:
        annotation_id:
          type: string
          pattern: '[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}'
          minLength: 36
          maxLength: 36
          description: UUID (lower-case, dash-separated, hex-encoded 128-bit)
          example: 86daea5b-1b6b-432a-bb67-ea97795f80fe
        editgroup_id:
          type: string
          pattern: '[a-zA-Z2-7]{26}'
          minLength: 26
          maxLength: 26
          description: 'Editgroup that this annotation applies to. Set automatically in

            creations based on URL parameter.

            '
          example: q3nouwy3nnbsvo3h5klxsx4a7y
        editor_id:
          type: string
          pattern: '[a-zA-Z2-7]{26}'
          minLength: 26
          maxLength: 26
          description: 'Defaults to editor created the annotation via POST request.

            '
          example: q3nouwy3nnbsvo3h5klxsx4a7y
        editor:
          $ref: '#/components/schemas/editor'
          description: 'Only included in GET responses; ignored in PUT or POST requests.

            '
        created:
          type: string
          format: date-time
          description: 'Timestamp when annotation was first created.

            '
        comment_markdown:
          type: string
        extra:
          type: object
          additionalProperties: {}
          description: 'Additional free-form JSON metadata that can be included as part of

            the annotation (or even as the primary annotation itself). See guide

            for details.

            '
    file_auto_batch:
      type: object
      required:
      - editgroup
      - entity_list
      properties:
        editgroup:
          $ref: '#/components/schemas/editgroup'
        entity_list:
          type: array
          items:
            $ref: '#/components/schemas/file_entity'
    error_response:
      type: object
      required:
      - success
      - error
      - message
      properties:
        success:
          type: boolean
          example: false
        error:
          type: string
          example: unexpected-thing
        message:
          type: string
          example: A really confusing, totally unexpected thing happened
    fileset_entity:
      type: object
      properties:
        state:
          type: string
          enum:
          - wip
          - active
          - redirect
          - deleted
          example: active
        ident:
          type: string
          pattern: '[a-zA-Z2-7]{26}'
          minLength: 26
          maxLength: 26
          description: base32-encoded unique identifier
          example: q3nouwy3nnbsvo3h5klxsx4a7y
        revision:
          type: string
          pattern: '[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}'
          minLength: 36
          maxLength: 36
          description: UUID (lower-case, dash-separated, hex-encoded 128-bit)
          example: 86daea5b-1b6b-432a-bb67-ea97795f80fe
        redirect:
          type: string
          pattern: '[a-zA-Z2-7]{26}'
          minLength: 26
          maxLength: 26
          description: base32-encoded unique identifier
          example: q3nouwy3nnbsvo3h5klxsx4a7y
        extra:
          type: object
          description: 'Free-form JSON metadata that will be stored with the other entity

            metadata. See guide for (unenforced) schema conventions.

            '
          additionalProperties: {}
        edit_extra:
          type: object
          description: 'Free-form JSON metadata that will be stored with specific entity edits

            (eg, creation/update/delete).

            '
          additionalProperties: {}
        content_scope:
          type: string
          example: issue
        manifest:
          type: array
          items:
            $ref: '#/components/schemas/fileset_file'
        urls:
          type: array
          items:
            $ref: '#/components/schemas/fileset_url'
        release_ids:
          type: array
          items:
            type: string
            pattern: '[a-zA-Z2-7]{26}'
            minLength: 26
            maxLength: 26
            description: base32-encoded unique identifier
            example: q3nouwy3nnbsvo3h5klxsx4a7y
          description: 'Set of identifier of release entities this fileset represents a full

            manifestation of. Usually a single release.

            '
        releases:
          type: array
          items:
            $ref: '#/components/schemas/release_entity'
          description: 'Full release entities, included in GET responses when `releases`

            included in `expand` parameter. Ignored if included in PUT or POST

            requests.

            '
    webcapture_entity:
      type: object
      properties:
        state:
          type: string
          enum:
          - wip
          - active
          - redirect
          - deleted
          example: active
        ident:
          type: string
          pattern: '[a-zA-Z2-7]{26}'
          minLength: 26
          maxLength: 26
          description: base32-encoded unique identifier
          example: q3nouwy3nnbsvo3h5klxsx4a7y
        revision:
          type: string
          pattern: '[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}'
          minLength: 36
          maxLength: 36
          description: UUID (lower-case, dash-separated, hex-encoded 128-bit)
          example: 86daea5b-1b6b-432a-bb67-ea97795f80fe
        redirect:
          type: string
          pattern: '[a-zA-Z2-7]{26}'
          minLength: 26
          maxLength: 26
          description: base32-encoded unique identifier
          example: q3nouwy3nnbsvo3h5klxsx4a7y
        extra:
          type: object
          description: 'Free-form JSON metadata that will be stored with the other entity

            metadata. See guide for (unenforced) schema conventions.

            '
          additionalProperties: {}
        edit_extra:
          type: object
          description: 'Free-form JSON metadata that will be stored with specific entity edits

            (eg, creation/update/delete).

            '
          additionalProperties: {}
        cdx:
          type: array
          items:
            $ref: '#/components/schemas/webcapture_cdx_line'
        archive_urls:
          type: array
          items:
            $ref: '#/components/schemas/webcapture_url'
        original_url:
          type: string
          format: url
          example: http://asheesh.org
          description: Base URL of the primary resource this is a capture of
        timestamp:
          type: string
          format: date-time
          description: 'Same format as CDX line timestamp (UTC, etc). Corresponds to the

            overall capture timestamp. Should generally be the timestamp of

            capture of the primary resource URL.

            '
        content_scope:
          type: string
          example: landing-page
        release_ids:
          type: array
          items:
            type: string
            pattern: '[a-zA-Z2-7]{26}'
            minLength: 26
            maxLength: 26
            description: base32-encoded unique identifier
            example: q3nouwy3nnbsvo3h5klxsx4a7y
          description: 'Set of identifier of release entities this fileset represents a full

            manifestation of. Usually a single release.

            '
        releases:
          type: array
          items:
            $ref: '#/components/schemas/release_entity'
          description: 'Full release entities, included in GET responses when `releases`

            included in `expand` parameter. Ignored if included in PUT or POST

            requests.

            '
    release_ref:
      type: object
      properties:
        index:
          type: integer
          format: int64
          description: 'Zero-indexed sequence number of this reference in the list of

            references. Assigned automatically and used internally; don''t confuse

            with `key`.

            '
        target_release_id:
          type: string
          pattern: '[a-zA-Z2-7]{26}'
          minLength: 26
          maxLength: 26
          description: 'Optional, fatcat identifier of release entity that this reference is

            citing.

            '
          example: q3nouwy3nnbsvo3h5klxsx4a7y
        extra:
          type: object
          additionalProperties: {}
          description: 'Additional free-form JSON metadata about this citation. Generally

            follows Citation Style Language (CSL) JSON schema. See guide for

            details.

            '
        key:
          type: string
          example: SMITH2016
          description: 'Short string used to indicate this reference from within the release

            text; or numbering of references as typeset in the release itself.

            Optional; don''t confuse with `index` field.

            '
        year:
          type: integer
          format: int64
          example: 1972
          description: 'Year that the cited work was published in.

            '
        container_name:
          type: string
          description: 'Name of the container (eg, journal) that the citation work was

            published as part of. May be an acronym or full name.

            '
        title:
          type: string
          description: Name of the work being cited.
        locator:
          type: string
          example: p123
          description: 'Page number or other indicator of the specific subset of a work being

            cited. Not to be confused with the first page (or page range) of an

            entire paper or chapter being cited.

            '
    success:
      type: object
      required:
      - success
      - message
      properties:
        success:
          type: boolean
          example: true
        message:
          type: string
          example: The computers did the thing successfully!
    editgroup:
      type: object
      properties:
        editgroup_id:
          type: string
          pattern: '[a-zA-Z2-7]{26}'
          minLength: 26
          maxLength: 26
          description: 'Fatcat identifier for this editgroup. Assigned on creation.

            '
          example: q3nouwy3nnbsvo3h5klxsx4a7y
        editor_id:
          type: string
          pattern: '[a-zA-Z2-7]{26}'
          minLength: 26
          maxLength: 26
          description: 'Fatcat identifier of editor that created this editgroup.

            '
          example: q3nouwy3nnbsvo3h5klxsx4a7y
        editor:
          $ref: '#/components/schemas/editor'
          description: 'Complete editor object identified by `container_id` field. Only

            included in GET responses.

            '
        changelog_index:
          type: integer
          example: 1048576
          format: int64


# --- truncated at 32 KB (68 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/fatcat/refs/heads/main/openapi/fatcat-files-api-openapi.yml