OpenAPI Specification
openapi: 3.0.3
info:
title: Zenodo REST Access Users API
description: 'REST API for Zenodo, the free open research data repository operated by CERN and built on InvenioRDM. Provides programmatic access to deposits (draft records), published records, file management, communities, vocabularies, OAI-PMH sets, requests, users, groups, statistics, and audit logs. Every published record receives a DOI for persistent citation. Authenticate with a personal access token passed as a Bearer token.
'
version: 12.0.0
contact:
name: Zenodo Developer Documentation
url: https://developers.zenodo.org/
license:
name: MIT License
url: https://opensource.org/licenses/MIT
x-upstream-spec: https://github.com/inveniosoftware/invenio-openapi
servers:
- url: https://zenodo.org
description: Zenodo production instance
- url: https://sandbox.zenodo.org
description: Zenodo sandbox (testing)
security:
- BearerAuth: []
tags:
- name: Users
description: User management endpoints
paths:
/api/users:
get:
summary: Search users
tags:
- Users
operationId: searchUsers
parameters: []
responses:
'200':
$ref: '#/components/responses/Success'
'401':
$ref: '#/components/responses/Unauthorized'
'403':
$ref: '#/components/responses/Forbidden'
'500':
$ref: '#/components/responses/InternalServerError'
security:
- BearerAuth: []
/api/users/{userId}:
get:
summary: Get user by ID
tags:
- Users
operationId: getUserById
parameters:
- name: userId
in: path
required: true
schema:
type: string
responses:
'200':
$ref: '#/components/responses/Success'
'401':
$ref: '#/components/responses/Unauthorized'
'403':
$ref: '#/components/responses/Forbidden'
'404':
$ref: '#/components/responses/NotFound'
'500':
$ref: '#/components/responses/InternalServerError'
security:
- BearerAuth: []
/api/users/{userId}/avatar.svg:
get:
summary: Get user avatar
tags:
- Users
operationId: getUserAvatar
parameters:
- name: userId
in: path
required: true
schema:
type: string
responses:
'200':
$ref: '#/components/responses/Success'
'404':
$ref: '#/components/responses/NotFound'
'500':
$ref: '#/components/responses/InternalServerError'
/api/user/communities:
get:
summary: Search user's communities
tags:
- Users
operationId: searchUserCommunities
parameters:
- name: page
in: query
required: false
schema:
type: string
- name: size
in: query
required: false
schema:
type: string
- name: sort
in: query
required: false
schema:
type: string
responses:
'200':
$ref: '#/components/responses/Success'
'401':
$ref: '#/components/responses/Unauthorized'
'500':
$ref: '#/components/responses/InternalServerError'
security:
- BearerAuth: []
/api/user/records:
get:
summary: Get all draft records for current user
tags:
- Users
operationId: getUserRecords
parameters:
- name: q
in: query
required: false
schema:
type: string
example: is_published:false
responses:
'200':
$ref: '#/components/responses/Success'
'401':
$ref: '#/components/responses/Unauthorized'
'500':
$ref: '#/components/responses/InternalServerError'
security:
- BearerAuth: []
components:
responses:
Success:
description: Successful response
content:
application/json:
schema:
type: object
Unauthorized:
description: Unauthorized - authentication required
NotFound:
description: Not found - resource does not exist
Forbidden:
description: Forbidden - insufficient permissions
InternalServerError:
description: Internal server error
securitySchemes:
BearerAuth:
type: http
scheme: bearer
description: Personal access token issued from the Zenodo account settings