DataCite providers API

Providers

OpenAPI Specification

datacite-providers-api-openapi.yml Raw ↑
openapi: 3.0.0
info:
  title: REST activities providers 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: providers
  description: Providers
paths:
  /providers:
    get:
      tags:
      - providers
      summary: Return a list of providers (including members and consortium organizations).
      parameters:
      - in: query
        name: query
        schema:
          type: string
      - in: query
        name: year
        description: The year the provider was created.
        schema:
          type: integer
      - in: query
        $ref: '#/components/parameters/consortiumIdParam'
      - in: query
        name: region
        schema:
          $ref: '#/components/schemas/region'
      - in: query
        name: member-type
        schema:
          $ref: '#/components/schemas/member-type'
      - in: query
        name: organization-type
        schema:
          $ref: '#/components/schemas/organization-type'
      - in: query
        name: focus-area
        schema:
          $ref: '#/components/schemas/focus-area'
      - in: query
        name: has-required-contacts
        schema:
          type: boolean
      - in: query
        $ref: '#/components/parameters/pageNumberParam'
      - in: query
        $ref: '#/components/parameters/pageSizeParam'
      - in: query
        name: sort
        schema:
          type: string
          enum:
          - relevance
          - name
          - -name
          - created
          - -created
      responses:
        '200':
          description: A JSON array of providers.
          content:
            application/vnd.api+json:
              schema:
                type: object
                properties:
                  data:
                    type: array
                    items:
                      $ref: '#/components/schemas/Provider'
                  meta:
                    allOf:
                    - $ref: '#/components/schemas/MetaCore'
                    - type: object
                      properties:
                        years:
                          allOf:
                          - $ref: '#/components/schemas/MetaArray'
                        regions:
                          allOf:
                          - $ref: '#/components/schemas/MetaArray'
                        memberTypes:
                          allOf:
                          - $ref: '#/components/schemas/MetaArray'
                        organizationTypes:
                          allOf:
                          - $ref: '#/components/schemas/MetaArray'
                        focusAreas:
                          allOf:
                          - $ref: '#/components/schemas/MetaArray'
                        nonProfitStatuses:
                          allOf:
                          - $ref: '#/components/schemas/MetaArray'
                        hasRequiredContacts:
                          allOf:
                          - $ref: '#/components/schemas/MetaArray'
                  links:
                    allOf:
                    - $ref: '#/components/schemas/Links'
  /providers/totals:
    get:
      tags:
      - providers
      summary: Return providers DOI production statistics.
      parameters:
      - 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 providers stats.
          content:
            application/vnd.api+json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/TotalsObject'
  /providers/{id}:
    get:
      parameters:
      - name: id
        in: path
        description: DataCite Direct Member, Consortium Organization, or Consortium account ID.
        required: true
        schema:
          type: string
      tags:
      - providers
      summary: Return a provider.
      responses:
        '200':
          description: A JSON object.
          content:
            application/vnd.api+json:
              schema:
                type: object
                properties:
                  data:
                    type: object
                    $ref: '#/components/schemas/Provider'
                  meta:
                    type: object
                    properties:
                      repositoryCount:
                        type: number
                      consortiumOrganizationCount:
                        type: number
                        description: Returned only when the provider is a Consortium.
components:
  schemas:
    ProviderContact:
      type: object
      description: Returned only when authenticated with associated credentials.
      properties:
        email:
          type: string
        familyName:
          type: string
        givenName:
          type: string
    region:
      type: string
      enum:
      - AMER
      - APAC
      - EMEA
    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
    organization-type:
      type: string
      enum:
      - academicInstitution
      - governmentAgency
      - nationalInstitution
      - publisher
      - professionalSociety
      - researchInstitution
      - serviceProvider
      - internationalOrganization
      - other
      - null
    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'
    member-type:
      type: string
      enum:
      - consortium_organization
      - direct_member
      - consortium
      - member_only
      - developer
    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
    Provider:
      type: object
      properties:
        id:
          type: string
        type:
          type: string
          enum:
          - providers
        attributes:
          type: object
          properties:
            name:
              type: string
            displayName:
              type: string
            symbol:
              type: string
            website:
              type: string
            systemEmail:
              description: Returned only when authenticated with associated credentials.
              type: string
            groupEmail:
              description: Returned only when authenticated with associated credentials.
              type: string
            globusUuid:
              description: Returned only when authenticated with associated credentials.
              type: string
            description:
              type: string
            region:
              $ref: '#/components/schemas/region'
            country:
              type: string
            logoUrl:
              type: string
            memberType:
              $ref: '#/components/schemas/member-type'
            organizationType:
              $ref: '#/components/schemas/organization-type'
            focusArea:
              $ref: '#/components/schemas/focus-area'
            nonProfitStatus:
              type: string
            isActive:
              type: boolean
            hasPassword:
              description: Returned only when authenticated with associated credentials.
              type: boolean
            joined:
              type: string
            twitterHandle:
              description: Returned only when authenticated with associated credentials.
              type: string
            rorId:
              type: string
            technicalContact:
              $ref: '#/components/schemas/ProviderContact'
            secondaryTechnicalContact:
              $ref: '#/components/schemas/ProviderContact'
            billingContact:
              $ref: '#/components/schemas/ProviderContact'
            secondaryBillingContact:
              $ref: '#/components/schemas/ProviderContact'
            serviceContact:
              $ref: '#/components/schemas/ProviderContact'
            secondaryServiceContact:
              $ref: '#/components/schemas/ProviderContact'
            votingContact:
              $ref: '#/components/schemas/ProviderContact'
            hasRequiredContacts:
              description: Returned only when authenticated with associated credentials.
              type: boolean
            created:
              type: string
            updated:
              type: string
            doiEstimate:
              type: number
        relationships:
          type: object
          properties:
            clients:
              type: object
              properties:
                data:
                  $ref: '#/components/schemas/DataArray'
            prefixes:
              type: object
              properties:
                data:
                  $ref: '#/components/schemas/DataArray'
            contacts:
              type: object
              description: Returned only when authenticated with associated credentials.
              properties:
                data:
                  $ref: '#/components/schemas/DataArray'
            consortium:
              type: object
              description: Returned only when the provider is a Consortium Organization.
              properties:
                data:
                  $ref: '#/components/schemas/DataObject'
            consortiumOrganizations:
              type: object
              description: Returned only when the provider is a Consortium.
              properties:
                data:
                  $ref: '#/components/schemas/DataArray'
      required:
      - id
      - attributes - name - symbol
    DataArray:
      type: array
      items:
        $ref: '#/components/schemas/DataObject'
    focus-area:
      type: string
      enum:
      - naturalSciences
      - engineeringAndTechnology
      - medicalAndHealthSciences
      - agriculturalSciences
      - socialSciences
      - humanities
      - general
      - null
    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).
    consortiumIdParam:
      name: consortium-id
      in: query
      description: Filter by a specific DataCite consortium.
      schema:
        type: string
      example: ardc
  securitySchemes:
    BasicAuth:
      type: http
      scheme: basic
    bearerAuth:
      type: http
      scheme: bearer
      bearerFormat: JWT