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