DataCite repositories API

The repositories API from DataCite — 2 operation(s) for repositories.

OpenAPI Specification

datacite-repositories-api-openapi.yml Raw ↑
openapi: 3.0.0
info:
  title: REST activities repositories API
  description: The REST API is used for all API interactions with DataCite services.
  contact:
    name: DataCite Support
    url: https://support.datacite.org
    email: support@datacite.org
  license:
    name: MIT
    url: https://raw.githubusercontent.com/datacite/lupo/master/LICENSE
  version: 2.3.0
servers:
- url: https://api.test.datacite.org
  description: Staging server
- url: https://api.datacite.org
  description: Production server
security:
- {}
- BasicAuth: []
- bearerAuth: []
tags:
- name: repositories
paths:
  /repositories:
    post:
      tags:
      - repositories
      summary: Add a new repository.
      security:
      - BasicAuth: []
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                data:
                  type: object
                  properties:
                    type:
                      type: string
                      enum:
                      - repositories
                    attributes:
                      type: object
                      required:
                      - name
                      - symbol
                      - systemEmail
                      - clientType
                      properties:
                        name:
                          type: string
                        alternateName:
                          type: string
                        symbol:
                          description: Can only contain capital letters, numbers, and at most one hyphen. Must begin with provider ID followed by a period ("."). Minimum length is 5 characters and maximum length is 18 characters.
                          pattern: /\A([A-Z]+\.[A-Z0-9]+(-[A-Z0-9]+)?)\Z/
                          example: ABCD.EFG-HIJ
                          type: string
                        domains:
                          type: string
                          example: '*'
                        systemEmail:
                          type: string
                          format: email
                        description:
                          type: string
                        language:
                          type: array
                          items:
                            type: string
                            example: en
                        certificate:
                          type: array
                          items:
                            $ref: '#/components/schemas/certificate'
                        serviceContact:
                          type: object
                          properties:
                            email:
                              type: string
                              format: email
                            givenName:
                              type: string
                            familyName:
                              type: string
                        issn:
                          type: object
                          description: Will only be saved if the repository has clientType "periodical".
                          properties:
                            issnl:
                              type: string
                              example: 2049-3630
                              pattern: \A\d{4}(-)?\d{3}[0-9X]+\z
                            electronic:
                              type: string
                              example: 2049-3630
                              pattern: \A\d{4}(-)?\d{3}[0-9X]+\z
                            print:
                              type: string
                              example: 2049-3630
                              pattern: \A\d{4}(-)?\d{3}[0-9X]+\z
                        url:
                          type: string
                          format: url
                        clientType:
                          type: string
                          $ref: '#/components/schemas/client-type'
                        repositoryType:
                          type: array
                          items:
                            $ref: '#/components/schemas/repositoryType'
                        software:
                          type: string
                          $ref: '#/components/schemas/software'
                        isActive:
                          description: Set to true if this account can register and update DOIs.
                          type: boolean
                        passwordInput:
                          description: Sets the password of the repository account.
                          type: string
                        subjects:
                          type: array
                          description: Only permitted when repositoryType includes 'disciplinary'.
                          items:
                            $ref: '#/components/schemas/subject'
                    relationships:
                      type: object
                      required:
                      - provider
                      properties:
                        provider:
                          type: object
                          properties:
                            data:
                              type: object
                              required:
                              - id
                              - type
                              properties:
                                id:
                                  type: string
                                  description: The symbol of the provider (DataCite Member or Consortium Organization) the repository belongs to.
                                  example: ABCD
                                type:
                                  type: string
                                  enum:
                                  - providers
      responses:
        '201':
          description: Created
          content:
            application/vnd.api+json:
              schema:
                $ref: '#/components/schemas/RepositoryResponse'
  /repositories/{id}:
    put:
      parameters:
      - name: id
        in: path
        description: DataCite Repository ID.
        required: true
        schema:
          type: string
      summary: Update a repository.
      security:
      - BasicAuth: []
      tags:
      - repositories
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                data:
                  type: object
                  properties:
                    type:
                      type: string
                      enum:
                      - repositories
                    attributes:
                      type: object
                      required:
                      - name
                      - symbol
                      - systemEmail
                      - clientType
                      properties:
                        name:
                          type: string
                        alternateName:
                          type: string
                        domains:
                          type: string
                          example: '*'
                        systemEmail:
                          type: string
                          format: email
                        description:
                          type: string
                        language:
                          type: array
                          items:
                            type: string
                            example: en
                        certificate:
                          type: array
                          items:
                            $ref: '#/components/schemas/certificate'
                        serviceContact:
                          type: object
                          properties:
                            email:
                              type: string
                              format: email
                            givenName:
                              type: string
                            familyName:
                              type: string
                        issn:
                          type: object
                          description: Will only be saved if the repository has clientType "periodical".
                          properties:
                            issnl:
                              type: string
                              example: 2049-3630
                              pattern: \A\d{4}(-)?\d{3}[0-9X]+\z
                            electronic:
                              type: string
                              example: 2049-3630
                              pattern: \A\d{4}(-)?\d{3}[0-9X]+\z
                            print:
                              type: string
                              example: 2049-3630
                              pattern: \A\d{4}(-)?\d{3}[0-9X]+\z
                        url:
                          type: string
                          format: url
                        clientType:
                          type: string
                          $ref: '#/components/schemas/client-type'
                        repositoryType:
                          type: array
                          items:
                            $ref: '#/components/schemas/repositoryType'
                        software:
                          type: string
                          $ref: '#/components/schemas/software'
                        isActive:
                          description: Set to true if this account can register and update DOIs.
                          type: boolean
                        passwordInput:
                          description: Sets the password of the repository account.
                          type: string
                        subjects:
                          type: array
                          description: Only permitted when repositoryType includes 'disciplinary'.
                          items:
                            $ref: '#/components/schemas/subject'
      responses:
        '200':
          description: OK
          content:
            application/vnd.api+json:
              schema:
                $ref: '#/components/schemas/RepositoryResponse'
    delete:
      parameters:
      - name: id
        in: path
        description: DataCite Repository ID.
        required: true
        schema:
          type: string
      tags:
      - repositories
      summary: Delete a repository (only possible if no DOIs are in the repository)
      security:
      - BasicAuth: []
      responses:
        '204':
          description: No Content
components:
  schemas:
    RepositoryResponse:
      type: object
      properties:
        id:
          type: string
        type:
          type: string
          enum:
          - repositories
        attributes:
          type: object
          properties:
            name:
              type: string
            symbol:
              type: string
            re3data:
              type: string
            opendoar:
              type: string
            year:
              type: number
            systemEmail:
              description: Returned only when authenticated with associated credentials.
              type: string
            serviceContact:
              description: Returned only when authenticated with associated credentials.
              type: object
              properties:
                email:
                  type: string
                givenName:
                  type: string
                familyName:
                  type: string
            alternateName:
              type: string
            description:
              type: string
            language:
              type: array
              items:
                type: string
            clientType:
              $ref: '#/components/schemas/client-type'
            repositoryType:
              type: array
              items:
                $ref: '#/components/schemas/repositoryType'
            certificate:
              type: array
              items:
                $ref: '#/components/schemas/certificate'
            domains:
              type: string
            issn:
              type: object
              properties:
                issnl:
                  type: string
                print:
                  type: string
                electronic:
                  type: string
            url:
              type: string
            software:
              type: string
              $ref: '#/components/schemas/software'
            subjects:
              type: array
              items:
                $ref: '#/components/schemas/subject'
            created:
              type: string
              readOnly: true
            updated:
              type: string
              readOnly: true
            isActive:
              type: boolean
            hasPassword:
              description: Returned only when authenticated with associated credentials.
              type: boolean
    client-type:
      type: string
      enum:
      - repository
      - periodical
      - igsnCatalog
      - raidRegistry
    certificate:
      type: string
      enum:
      - CLARIN
      - CoreTrustSeal
      - DIN 31644
      - DINI
      - DSA
      - RatSWD
      - WDS
    software:
      type: string
      enum:
      - Cayuse
      - CKAN
      - Dataverse
      - dLibra
      - DSpace
      - EPrints
      - Ex Libris Esploro
      - Fedora
      - Invenio
      - Islandora
      - MyCoRe
      - Nesstar
      - Omega-PSIR
      - Omeka S
      - Open Journal Systems (OJS)
      - OPUS
      - Pubman
      - Pure
      - Redivis
      - RSpace
      - Samvera
      - SESAR
      - Ubiquity
      - Other
      - Unknown
    repositoryType:
      type: string
      enum:
      - disciplinary
      - governmental
      - institutional
      - multidisciplinary
      - project-related
      - other
    subject:
      type: object
      properties:
        subject:
          type: string
          example: Chemical engineering
        subjectScheme:
          type: string
          example: Fields of Science and Technology (FOS)
        schemeUri:
          type: string
          example: https://web-archive.oecd.org/2012-06-15/138575-38235147.pdf
        valueUri:
          type: string
        lang:
          type: string
        classificationCode:
          type: string
          example: '2.4'
  securitySchemes:
    BasicAuth:
      type: http
      scheme: basic
    bearerAuth:
      type: http
      scheme: bearer
      bearerFormat: JWT