OpenAPI Specification
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