DataCite clients API

Clients

OpenAPI Specification

datacite-clients-api-openapi.yml Raw ↑
openapi: 3.0.0
info:
  title: REST activities clients 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: clients
  description: Clients
paths:
  /clients:
    get:
      tags:
      - clients
      summary: Return a list of clients (repositories).
      parameters:
      - in: query
        name: query
        schema:
          type: string
      - in: query
        name: year
        description: The year the client was created.
        schema:
          type: integer
      - in: query
        $ref: '#/components/parameters/providerIdParam'
      - in: query
        name: software
        schema:
          $ref: '#/components/schemas/software'
      - in: query
        name: client-type
        schema:
          $ref: '#/components/schemas/client-type'
      - in: query
        name: repository-type
        schema:
          $ref: '#/components/schemas/repositoryType'
      - in: query
        name: certificate
        schema:
          type: array
          items:
            $ref: '#/components/schemas/certificate'
        explode: false
        style: form
      - in: query
        $ref: '#/components/parameters/pageNumberParam'
      - in: query
        $ref: '#/components/parameters/pageSizeParam'
      - in: query
        name: include
        schema:
          type: string
          enum:
          - provider
          - repository
      - in: query
        name: sort
        schema:
          type: string
          enum:
          - relevance
          - name
          - -name
          - created
          - -created
      responses:
        '200':
          description: A JSON array of clients.
          content:
            application/vnd.api+json:
              schema:
                type: object
                properties:
                  data:
                    type: array
                    items:
                      $ref: '#/components/schemas/Client'
                  meta:
                    allOf:
                    - $ref: '#/components/schemas/MetaCore'
                    - type: object
                      properties:
                        years:
                          allOf:
                          - $ref: '#/components/schemas/MetaArray'
                        providers:
                          allOf:
                          - $ref: '#/components/schemas/MetaArray'
                        software:
                          allOf:
                          - $ref: '#/components/schemas/MetaArray'
                        certificates:
                          allOf:
                          - $ref: '#/components/schemas/MetaArray'
                        repository_types:
                          allOf:
                          - $ref: '#/components/schemas/MetaArray'
                        clientTypes:
                          allOf:
                          - $ref: '#/components/schemas/MetaArray'
                  links:
                    allOf:
                    - $ref: '#/components/schemas/Links'
  /clients/totals:
    get:
      tags:
      - clients
      summary: Return clients DOI production statistics.
      parameters:
      - in: query
        $ref: '#/components/parameters/providerIdParam'
      - in: query
        name: state
        schema:
          type: array
          items:
            $ref: '#/components/schemas/state'
        description: Authentication is required to retrieve draft records.
        explode: false
        style: form
      responses:
        '200':
          description: A JSON array of clients stats.
          content:
            application/vnd.api+json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/TotalsObject'
  /clients/{id}:
    get:
      parameters:
      - name: id
        in: path
        description: DataCite Repository account ID.
        required: true
        schema:
          type: string
      tags:
      - clients
      summary: Return a client.
      responses:
        '200':
          description: A JSON object.
          content:
            application/vnd.api+json:
              schema:
                type: object
                properties:
                  data:
                    type: object
                    $ref: '#/components/schemas/Client'
components:
  schemas:
    MetaObject:
      type: object
      properties:
        id:
          type: string
        type:
          type: string
        count:
          type: number
    state:
      type: string
      enum:
      - findable
      - registered
      - draft
    Links:
      type: object
      properties:
        self:
          type: string
        next:
          type: string
    client-type:
      type: string
      enum:
      - repository
      - periodical
      - igsnCatalog
      - raidRegistry
    Client:
      type: object
      properties:
        id:
          type: string
        type:
          type: string
          enum:
          - clients
        attributes:
          type: object
          properties:
            name:
              type: string
            symbol:
              type: string
            year:
              type: number
            contactEmail:
              description: Returned only when authenticated with associated credentials.
              type: string
            alternateName:
              type: string
            description:
              type: string
            language:
              type: array
              items:
                type: string
            clientType:
              $ref: '#/components/schemas/client-type'
            domains:
              type: string
            re3data:
              type: string
            opendoar:
              type: string
            issn:
              type: object
              properties:
                issnl:
                  type: string
                print:
                  type: string
                electronic:
                  type: string
            url:
              type: string
            created:
              type: string
              readOnly: true
            updated:
              type: string
              readOnly: true
            isActive:
              type: boolean
            hasPassword:
              description: Returned only when authenticated with associated credentials.
              type: boolean
        relationships:
          type: object
          properties:
            provider:
              type: object
              properties:
                data:
                  $ref: '#/components/schemas/DataObject'
            consortium:
              type: object
              description: Returned only when the client is associated with a Consortium.
              properties:
                data:
                  $ref: '#/components/schemas/DataObject'
            prefixes:
              type: object
              properties:
                data:
                  $ref: '#/components/schemas/DataArray'
      required:
      - id
      - attributes - name - symbol - contactEmail
    certificate:
      type: string
      enum:
      - CLARIN
      - CoreTrustSeal
      - DIN 31644
      - DINI
      - DSA
      - RatSWD
      - WDS
    TotalsObject:
      type: object
      properties:
        id:
          type: string
        title:
          type: string
        count:
          type: number
        temporal:
          type: object
          properties:
            this_month:
              type: array
              items:
                $ref: '#/components/schemas/MetaObject'
            this_year:
              type: array
              items:
                $ref: '#/components/schemas/MetaObject'
            last_year:
              type: array
              items:
                $ref: '#/components/schemas/MetaObject'
            two_years_ago:
              type: array
              items:
                $ref: '#/components/schemas/MetaObject'
        states:
          type: array
          items:
            $ref: '#/components/schemas/MetaObject'
    MetaArray:
      type: array
      items:
        $ref: '#/components/schemas/MetaObject'
    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
    MetaCore:
      type: object
      properties:
        total:
          description: Total results count.
          type: number
        totalPages:
          description: Total pages count.
          type: number
        page:
          description: Current page of the results.
          type: number
    DataArray:
      type: array
      items:
        $ref: '#/components/schemas/DataObject'
    repositoryType:
      type: string
      enum:
      - disciplinary
      - governmental
      - institutional
      - multidisciplinary
      - project-related
      - other
    DataObject:
      type: object
      properties:
        id:
          type: string
        type:
          type: string
  parameters:
    pageNumberParam:
      name: page[number]
      in: query
      schema:
        type: integer
      description: Page number for [pagination](https://support.datacite.org/docs/pagination).
    pageSizeParam:
      name: page[size]
      in: query
      schema:
        type: integer
        minimum: 0
        maximum: 1000
      description: Page size between 0 and 1,000 for [pagination](https://support.datacite.org/docs/pagination).
    providerIdParam:
      name: provider-id
      in: query
      description: Filter by a specific DataCite provider (Direct Member or Consortium Organization). Use commas to include multiple providers.
      schema:
        type: string
      example: cern
  securitySchemes:
    BasicAuth:
      type: http
      scheme: basic
    bearerAuth:
      type: http
      scheme: bearer
      bearerFormat: JWT