swagger: '2.0'
info:
title: fatcat auth webcaptures 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'
host: api.fatcat.wiki
basePath: /v0
schemes:
- https
consumes:
- application/json
produces:
- application/json
tags:
- name: webcaptures
x-displayName: Webcaptures
description: '**Web Capture** entities represent archival snapshots of web pages (or # TAGLINE
other web resources), which are usually complete manifestations of a # TAGLINE
specific release entity. Web Captures also include a set of locations # TAGLINE
(wayback replay instances or WARC files) where the capture can be found. # 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
[Web Capture Entity Reference](https://guide.fatcat.wiki/entity_webcapture.html). # TAGLINE
'
paths:
/editgroup/{editgroup_id}/webcapture:
parameters:
- name: editgroup_id
in: path
type: string
required: true
post:
operationId: create_webcapture
tags:
- webcaptures
parameters:
- name: entity
in: body
required: true
schema:
$ref: '#/definitions/webcapture_entity'
security:
- Bearer: []
responses:
400:
description: Bad Request
schema:
$ref: '#/definitions/error_response'
404:
description: Not Found
schema:
$ref: '#/definitions/error_response'
500:
description: Generic Error
schema:
$ref: '#/definitions/error_response'
401:
description: Not Authorized
schema:
$ref: '#/definitions/error_response'
headers:
WWW_Authenticate:
type: string
403:
description: Forbidden
schema:
$ref: '#/definitions/error_response'
201:
description: Created Entity
schema:
$ref: '#/definitions/entity_edit'
/editgroup/auto/webcapture/batch:
post:
operationId: create_webcapture_auto_batch
tags:
- webcaptures
parameters:
- name: auto_batch
in: body
required: true
schema:
$ref: '#/definitions/webcapture_auto_batch'
security:
- Bearer: []
responses:
400:
description: Bad Request
schema:
$ref: '#/definitions/error_response'
404:
description: Not Found
schema:
$ref: '#/definitions/error_response'
500:
description: Generic Error
schema:
$ref: '#/definitions/error_response'
401:
description: Not Authorized
schema:
$ref: '#/definitions/error_response'
headers:
WWW_Authenticate:
type: string
403:
description: Forbidden
schema:
$ref: '#/definitions/error_response'
201:
description: Created Editgroup
schema:
$ref: '#/definitions/editgroup'
/webcapture/{ident}:
parameters:
- name: ident
in: path
type: string
required: true
get:
operationId: get_webcapture
tags:
- webcaptures
parameters:
- name: expand
in: query
type: string
required: false
description: List of sub-entities to expand in response. For webcaptures, `releases` is accepted.
- name: hide
in: query
type: string
required: false
description: List of entity fields to elide in response. For webcaptures, 'cdx' is accepted.
responses:
400:
description: Bad Request
schema:
$ref: '#/definitions/error_response'
404:
description: Not Found
schema:
$ref: '#/definitions/error_response'
500:
description: Generic Error
schema:
$ref: '#/definitions/error_response'
200:
description: Found Entity
schema:
$ref: '#/definitions/webcapture_entity'
/editgroup/{editgroup_id}/webcapture/{ident}:
parameters:
- name: editgroup_id
in: path
type: string
required: true
- name: ident
in: path
type: string
required: true
put:
operationId: update_webcapture
tags:
- webcaptures
parameters:
- name: entity
in: body
required: true
schema:
$ref: '#/definitions/webcapture_entity'
security:
- Bearer: []
responses:
400:
description: Bad Request
schema:
$ref: '#/definitions/error_response'
404:
description: Not Found
schema:
$ref: '#/definitions/error_response'
500:
description: Generic Error
schema:
$ref: '#/definitions/error_response'
401:
description: Not Authorized
schema:
$ref: '#/definitions/error_response'
headers:
WWW_Authenticate:
type: string
403:
description: Forbidden
schema:
$ref: '#/definitions/error_response'
200:
description: Updated Entity
schema:
$ref: '#/definitions/entity_edit'
delete:
operationId: delete_webcapture
tags:
- webcaptures
security:
- Bearer: []
responses:
400:
description: Bad Request
schema:
$ref: '#/definitions/error_response'
404:
description: Not Found
schema:
$ref: '#/definitions/error_response'
500:
description: Generic Error
schema:
$ref: '#/definitions/error_response'
401:
description: Not Authorized
schema:
$ref: '#/definitions/error_response'
headers:
WWW_Authenticate:
type: string
403:
description: Forbidden
schema:
$ref: '#/definitions/error_response'
200:
description: Deleted Entity
schema:
$ref: '#/definitions/entity_edit'
/webcapture/rev/{rev_id}:
parameters:
- 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)
name: rev_id
in: path
required: true
get:
operationId: get_webcapture_revision
tags:
- webcaptures
parameters:
- name: expand
in: query
type: string
required: false
description: List of sub-entities to expand in response. See `get_webcapture`.
- name: hide
in: query
type: string
required: false
description: List of entity fields to elide in response. See `get_webcapture`.
responses:
400:
description: Bad Request
schema:
$ref: '#/definitions/error_response'
404:
description: Not Found
schema:
$ref: '#/definitions/error_response'
500:
description: Generic Error
schema:
$ref: '#/definitions/error_response'
200:
description: Found Entity Revision
schema:
$ref: '#/definitions/webcapture_entity'
/webcapture/{ident}/history:
parameters:
- name: ident
in: path
type: string
required: true
- name: limit
in: query
type: integer
format: int64
required: false
get:
operationId: get_webcapture_history
tags:
- webcaptures
responses:
400:
description: Bad Request
schema:
$ref: '#/definitions/error_response'
404:
description: Not Found
schema:
$ref: '#/definitions/error_response'
500:
description: Generic Error
schema:
$ref: '#/definitions/error_response'
200:
description: Found Entity History
schema:
type: array
items:
$ref: '#/definitions/entity_history_entry'
/webcapture/{ident}/redirects:
parameters:
- name: ident
in: path
type: string
required: true
get:
operationId: get_webcapture_redirects
tags:
- webcaptures
responses:
400:
description: Bad Request
schema:
$ref: '#/definitions/error_response'
404:
description: Not Found
schema:
$ref: '#/definitions/error_response'
500:
description: Generic Error
schema:
$ref: '#/definitions/error_response'
200:
description: Found Entity Redirects
schema:
type: array
items:
type: string
pattern: '[a-zA-Z2-7]{26}'
minLength: 26
maxLength: 26
description: base32-encoded unique identifier
/webcapture/edit/{edit_id}:
get:
operationId: get_webcapture_edit
tags:
- webcaptures
parameters:
- 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)
name: edit_id
in: path
required: true
responses:
400:
description: Bad Request
schema:
$ref: '#/definitions/error_response'
404:
description: Not Found
schema:
$ref: '#/definitions/error_response'
500:
description: Generic Error
schema:
$ref: '#/definitions/error_response'
200:
description: Found Edit
schema:
$ref: '#/definitions/entity_edit'
/editgroup/{editgroup_id}/webcapture/edit/{edit_id}:
parameters:
- name: editgroup_id
in: path
required: true
type: string
- 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)
name: edit_id
in: path
required: true
delete:
operationId: delete_webcapture_edit
tags:
- webcaptures
security:
- Bearer: []
responses:
400:
description: Bad Request
schema:
$ref: '#/definitions/error_response'
404:
description: Not Found
schema:
$ref: '#/definitions/error_response'
500:
description: Generic Error
schema:
$ref: '#/definitions/error_response'
401:
description: Not Authorized
schema:
$ref: '#/definitions/error_response'
headers:
WWW_Authenticate:
type: string
403:
description: Forbidden
schema:
$ref: '#/definitions/error_response'
200:
description: Deleted Edit
schema:
$ref: '#/definitions/success'
definitions:
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.
'
container_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: {}
name:
type: string
description: Name of the container (eg, Journal title). Required for entity creation.
example: Journal of Important Results
container_type:
type: string
description: Type of container, eg 'journal' or 'proceedings'. See Guide for list of valid types.
example: journal
publication_status:
type: string
description: Whether the container is active, discontinued, etc
example: active
publisher:
type: string
description: 'Name of the organization or entity responsible for publication. Not
the complete imprint/brand.
'
example: Society of Curious Students
issnl:
type: string
pattern: \d{4}-\d{3}[0-9X]
minLength: 9
maxLength: 9
example: 1234-5678
description: Linking ISSN number (ISSN-L). Should be valid and registered with issn.org
issne:
type: string
pattern: \d{4}-\d{3}[0-9X]
minLength: 9
maxLength: 9
example: 1234-5678
description: Electronic ISSN number (ISSN-E). Should be valid and registered with issn.org
issnp:
type: string
pattern: \d{4}-\d{3}[0-9X]
minLength: 9
maxLength: 9
example: 1234-5678
description: Print ISSN number (ISSN-P). Should be valid and registered with issn.org
wikidata_qid:
type: string
example: Q42812
editor:
type: object
required:
- username
properties:
editor_id:
type: string
pattern: '[a-zA-Z2-7]{26}'
minLength: 26
maxLength: 26
description: 'Fatcat identifier for the editor. Can not be changed.
'
example: q3nouwy3nnbsvo3h5klxsx4a7y
username:
type: string
example: zerocool93
description: 'Username/handle (short slug-like string) to identify this editor. May
be changed at any time by the editor; use the `editor_id` as a
persistend identifier.
'
is_admin:
type: boolean
example: false
description: 'Whether this editor has the `admin` role.
'
is_bot:
type: boolean
example: false
description: 'Whether this editor is a bot (as opposed to a human making manual
edits)
'
is_active:
type: boolean
example: true
description: 'Whether this editor''s account is enabled (if not API tokens and web
logins will not work).
'
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.
'
file_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: {}
size:
type: integer
example: 1048576
format: int64
description: Size of file in bytes. Non-zero.
md5:
type: string
pattern: '[a-f0-9]{32}'
minLength: 32
maxLength: 32
description: MD5 hash of data, in hex encoding
example: 1b39813549077b2347c0f370c3864b40
sha1:
type: string
pattern: '[a-f0-9]{40}'
minLength: 40
maxLength: 40
description: SHA-1 hash of data, in hex encoding
example: e9dd75237c94b209dc3ccd52722de6931a310ba3
sha256:
type: string
pattern: '[a-f0-9]{64}'
minLength: 64
maxLength: 64
description: SHA-256 hash of data, in hex encoding
example: cb1c378f464d5935ddaa8de28446d82638396c61f042295d7fb85e3cccc9e452
urls:
type: array
items:
$ref: '#/definitions/file_url'
mimetype:
type: string
example: application/pdf
content_scope:
type: string
example: issue
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 file represents a full
manifestation of. Usually a single release, but some files contain
content of multiple full releases (eg, an issue of a journal).
'
releases:
description: 'Full release entities, included in GET responses when `releases`
included in `expand` parameter. Ignored if included in PUT or POST
requests.
'
type: array
items:
$ref: '#/definitions/release_entity'
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.
'
creator_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: {}
display_name:
type: string
example: Grace Hopper
description: 'Name as should be displayed in web interface or in author lists (not
index/sorted). Required for valid entities.
'
given_name:
type: string
description: 'In English commonly the first name, but ordering is context and
culture specific.
'
surname:
type: string
description: 'In English commonly the last, or family name, but ordering is context
and culture specific.
'
orcid:
type: string
pattern: \d{4}-\d{4}-\d{4}-\d{3}[\dX]
minLength: 19
maxLength: 19
description: ORCiD (https://orcid.org) identifier
example: 0000-0002-1825-0097
wikidata_qid:
type: string
example: Q42812
description: Wikidata entity QID
entity_edit:
type: object
required:
- edit_id
- ident
- editgroup_id
properties:
edit_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: 'Unique UUID for this specific edit object.
'
example: 86daea5b-1b6b-432a-bb67-ea97795f80fe
ident:
type: string
pattern: '[a-zA-Z2-7]{26}'
minLength: 26
maxLength: 26
description: 'Fatcat identifier of the entity this edit is mutating.
'
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: 'Entity revision that this edit will set the entity to. May be
`null` in the case of deletions.
'
example: 86daea5b-1b6b-432a-bb67-ea97795f80fe
prev_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: 'Revision of entity just before this edit. May be used in the future
to prevent edit race conditions.
'
example: 86daea5b-1b6b-432a-bb67-ea97795f80fe
redirect_ident:
type: string
pattern: '[a-zA-Z2-7]{26}'
minLength: 26
maxLength: 26
description: 'When an edit is to merge entities (redirect one to another), this
is the entity fatcat identifier for the target entity.
'
example: q3nouwy3nnbsvo3h5klxsx4a7y
editgroup_id:
type: string
pattern: '[a-zA-Z2-7]{26}'
minLength: 26
maxLength: 26
description: 'Editgroup identifier that this edit is part of.
'
example: q3nouwy3nnbsvo3h5klxsx4a7y
extra:
type: object
additionalProperties: {}
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: '#/definitions/fileset_file'
urls:
type: array
items:
$ref: '#/definitions/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: '#/definitions/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_contrib:
type: object
properties:
index:
type: integer
format: int64
example: 0
description: 'Internally assigned zero-indexed sequence number of contribution.
Authors should come first; this encodes the order of attriubti
# --- truncated at 32 KB (60 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/fatcat/refs/heads/main/openapi/fatcat-webcaptures-api-openapi.yml