Terradue Srl Drafts Files upload API
Draft record management
Draft record management
Every API here is available over the APIs.io API and to AI agents over MCP.
One button, every client — Claude, Cursor, VS Code and the rest.
https://apis.io/mcp
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.curl "https://apis.io/api/v1/apis/terradue-srl:terradue-srl-drafts-files-upload-api"
curl "https://apis.io/api/v1/apis?limit=25"
Discovery needs no key. Ratings and market analysis are Pro.
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: 3.2.0
info:
title: Invenio REST Drafts Files upload API
description: '## **Summary**
The following document is a reference guide for all the REST APIs that InvenioRDM exposes.
## **Resources**
- 📚 Product documentation
- 🔗 OpenAPI GitHub repository
- 🌐 Invenio project
- 💬 Community support'
version: 12.0.3
contact:
name: InvenioRDM Documentation
url: https://inveniordm.docs.cern.ch
license:
name: MIT License
url: https://opensource.org/licenses/MIT
x-copyright: KTH Royal Institute of Technology 2025
x-repo: https://github.com/Samk13/invenio-api-toolkit
servers:
- url: '{baseURL}'
description: InvenioRDM instance
variables:
baseURL:
default: https://inveniordm.web.cern.ch
description: Base URL of your InvenioRDM instance
security:
- BearerAuth: []
tags:
- name: Drafts Files upload
description: Draft record management
paths:
/api/records/{draftId}/draft/files:
post:
summary: step[1] Start draft file upload(s)
tags:
- Drafts Files upload
operationId: step1StartDraftFileUploads
parameters:
- name: draftId
in: path
required: true
schema:
type: string
description: Unique identifier for the draft record
responses:
'400':
$ref: '#/components/responses/BadRequest'
'401':
$ref: '#/components/responses/Unauthorized'
'403':
$ref: '#/components/responses/Forbidden'
'404':
$ref: '#/components/responses/NotFound'
'500':
$ref: '#/components/responses/InternalServerError'
'201':
$ref: '#/components/responses/Created'
requestBody:
required: true
content:
application/json:
schema:
type: array
items:
$ref: '#/components/schemas/FileTransferItem'
example:
- key: '{{file-name}}'
security:
- BearerAuth: []
/api/records/{draftId}/draft/files/{file-name}/content:
put:
summary: step[2] Upload a draft file's content
tags:
- Drafts Files upload
operationId: step2UploadADraftFilesContent
parameters:
- name: draftId
in: path
required: true
schema:
type: string
description: Unique identifier for the draft record
- name: file-name
in: path
required: true
schema:
type: string
responses:
'200':
$ref: '#/components/responses/Success'
'400':
$ref: '#/components/responses/BadRequest'
'401':
$ref: '#/components/responses/Unauthorized'
'403':
$ref: '#/components/responses/Forbidden'
'404':
$ref: '#/components/responses/NotFound'
'500':
$ref: '#/components/responses/InternalServerError'
requestBody:
required: true
content:
application/octet-stream:
schema:
type: string
format: binary
security:
- BearerAuth: []
/api/records/{draftId}/draft/files/{file-name}/commit:
post:
summary: step[3] Complete a draft file upload
tags:
- Drafts Files upload
operationId: step3CompleteADraftFileUpload
parameters:
- name: draftId
in: path
required: true
schema:
type: string
description: Unique identifier for the draft record
- name: file-name
in: path
required: true
schema:
type: string
responses:
'400':
$ref: '#/components/responses/BadRequest'
'401':
$ref: '#/components/responses/Unauthorized'
'403':
$ref: '#/components/responses/Forbidden'
'404':
$ref: '#/components/responses/NotFound'
'500':
$ref: '#/components/responses/InternalServerError'
'201':
$ref: '#/components/responses/Created'
security:
- BearerAuth: []
components:
responses:
Forbidden:
description: Forbidden - Insufficient permissions
Unauthorized:
description: Unauthorized - Authentication required
InternalServerError:
description: Internal server error - Unexpected server error
Success:
description: Successful response
content:
application/json:
schema:
type: object
BadRequest:
description: Bad request - Invalid input parameters
Created:
description: Resource created successfully
content:
application/json:
schema:
type: object
additionalProperties: true
NotFound:
description: Not found - Resource does not exist
schemas:
FileTransferItem:
description: A file object.
type: object
required:
- key
properties:
key:
description: Key (filename) of the file
type: string
size:
description: Size of the file in bytes.
type: integer
format: int64
checksum:
description: Checksum of the file.
type: string
transfer:
$ref: '#/components/schemas/FileTransfer'
FileTransfer:
type: object
properties:
type:
$ref: '#/components/schemas/FileTransferType'
url:
description: URL to fetch the file from
type: string
format: uri
FileTransferType:
description: The actual technology that is used to store a file
type: string
enum:
- L
- F
- M
- R
securitySchemes:
BearerAuth:
type: http
scheme: bearer
description: Bearer token authentication