OA/Free DOI Ingestion
GetFTR provides a bulk ingestion pipeline for publishers to supply DOIs and access metadata (paid, open, free, permFree) so we can respond accurately to entitlement requests, including OA/free content without calling your API. This process supersedes the aggregator-specific feed and is now the recommended approach for sending DOI holdings to GetFTR.
Process
.jsonl.gzfiles are periodically submitted to GetFTR using an AWS S3 Bucket .- GetFTR ingests these files and adds, updates, or removes DOI holdings for your platform.
- When GetFTR receives an entitlement request for one of your DOIs, we use the ingested data:
paidDOIs trigger a request to your Entitlement API (if configured);open,free, andpermFreeDOIs are served using thevorlinks you provide.
Getting Started
Share your platform name with GetFTR and we will provide credentials to submit files to the ingestion bucket.
A test/staging bucket is also available for testing deposits before production.
File Format
Each file sent to GetFTR should be a .jsonl.gz file containing a list of DOIs. The file has the following requirements and constraints:
- A maximum of 10,000 DOIs per file
- Contains newline delimited JSON
- Is gzipped before submission
- Filename must be unique, including a UUID (e.g.
f0e17914-9c70-4520-8196-4f8b47d40876.jsonl.gz)
JSON Schema
{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"title": "Publisher DOI Deposit Schema",
"description": "Schema for associating a DOI with your platform for GetFTR ingestion",
"type": "object",
"required": ["doi"],
"additionalProperties": false,
"examples": [
{
"doi": "10.1234/5678",
"accessType": "paid",
"vor": [
{
"url": "https://example.com/content.pdf",
"contentType": "application/pdf"
}
]
},
{
"doi": "10.9876/54321",
"deleted": true
},
{
"doi": "10.5678/1234",
"accessType": "paid"
}
],
"properties": {
"deleted": {
"type": "boolean",
"description": "If true, the record will be disassociated"
},
"doi": {
"type": "string",
"description": "DOI to store information against"
},
"accessType": {
"type": "string",
"description": "Access Type for the DOI",
"enum": ["paid", "open", "free", "permFree"]
},
"vor": {
"type": "array",
"minItems": 1,
"description": "List of additional content links for the DOI, typically used for providing a link directly to a PDF",
"items": {
"type": "object",
"required": ["url"],
"additionalProperties": false,
"properties": {
"url": {
"type": "string",
"description": "URL to the content",
"pattern": "^https?://"
},
"contentType": {
"type": "string",
"description": "Content Type for the URL, eg. application/pdf",
"enum": [
"application/pdf",
"text/html",
"application/epub+zip",
"other"
]
}
}
}
}
}
}Updates
Updates overwrite existing data for the association of a DOI with your platform. When deleted is set to true, the association for that DOI is removed.
Error Handling
The ingestion pipeline is monitored by GetFTR. Recoverable failures are handled automatically; unrecoverable issues are handled manually by GetFTR, and we will reach out if input is required.
Entitlement API
If you also expose a real-time Entitlement API, please follow the main publisher integration guidance in addition to this ingestion feed.