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