Skip to content

Dashboard API

Authenticated API used by the internal Legaciti dashboard. Administrative endpoints are marked as internal where relevant.

Version: 1.0.0

Raw OpenAPI JSON: /openapi/dashboard-api.json

MethodPathSummary
POST/api/import/orcidQueue ORCID import
POST/api/import/doiImport DOI

Queue ORCID import Queues ORCID imports from the import surface. Similar to ingestion queueing but exposed under import routes. Authentication: Cloudflare Access JWT Tags: Import

No parameters.

Content type: application/json

{
"type": "object",
"properties": {
"orcid_ids": {
"minItems": 1,
"maxItems": 100,
"type": "array",
"items": {
"type": "string",
"minLength": 1
}
},
"skip_existing": {
"type": "boolean"
}
},
"required": [
"orcid_ids"
],
"additionalProperties": false
}

Content type: application/json

{
"type": "object",
"properties": {
"queued": {
"type": "integer"
},
"jobs": {
"type": "array",
"items": {
"type": "object",
"additionalProperties": true
}
}
},
"required": [
"queued",
"jobs"
]
}

Content type: application/json

{
"type": "object",
"properties": {
"error": {
"type": "string"
},
"details": {
"oneOf": [
{
"type": "object",
"additionalProperties": true
},
{
"type": "null"
}
]
}
},
"required": [
"error"
],
"additionalProperties": true
}

Import DOI Fetches and upserts publication metadata directly from a DOI and optionally links researchers. Authentication: Cloudflare Access JWT Tags: Import

No parameters.

Content type: application/json

{
"type": "object",
"properties": {
"doi": {
"type": "string",
"minLength": 1
},
"researcher_orcids": {
"default": [],
"maxItems": 100,
"type": "array",
"items": {
"type": "string",
"minLength": 1
}
}
},
"required": [
"doi",
"researcher_orcids"
],
"additionalProperties": false
}

Content type: application/json

{
"type": "object",
"additionalProperties": true
}

201 - New publication created from DOI import.

Section titled “201 - New publication created from DOI import.”

Content type: application/json

{
"type": "object",
"additionalProperties": true
}

Content type: application/json

{
"type": "object",
"properties": {
"error": {
"type": "string"
},
"details": {
"oneOf": [
{
"type": "object",
"additionalProperties": true
},
{
"type": "null"
}
]
}
},
"required": [
"error"
],
"additionalProperties": true
}
MethodPathSummary
GET/healthHealth check
GET/meCurrent dashboard identity
GET/debug-authAuthentication debug payload

Health check Simple health endpoint for worker availability. Authentication: Public Tags: Info

No parameters.

No request body.

Content type: application/json

{
"type": "object",
"properties": {
"service": {
"type": "string",
"enum": [
"dashboard-api"
]
},
"status": {
"type": "string",
"enum": [
"ok"
]
}
},
"required": [
"service",
"status"
]
}

Current dashboard identity Returns the authenticated dashboard email when Cloudflare Access authentication succeeds. Authentication: Cloudflare Access JWT Tags: Info

No parameters.

No request body.

Content type: application/json

{
"type": "object",
"properties": {
"email": {
"type": [
"string",
"null"
]
}
},
"required": [
"email"
]
}

Authentication debug payload Returns the parsed Cloudflare Access context and token hints for debugging authentication issues. Internal: yes Authentication: Public Tags: Info

No parameters.

No request body.

200 - Debug payload with identity and token-derived fields.

Section titled “200 - Debug payload with identity and token-derived fields.”

Content type: application/json

{
"type": "object",
"additionalProperties": true
}
MethodPathSummary
POST/api/ingestQueue ORCID ingestion
GET/api/ingest/statusPoll ingestion status
GET/api/ingest/stuckList stuck ingestion jobs
POST/api/ingest/stuck/{jobId}/force-failForce-fail an ingestion job

Queue ORCID ingestion Queues one or more ORCID ingestion jobs and returns the job records that were created. Authentication: Cloudflare Access JWT Tags: Ingestion

No parameters.

Content type: application/json

{
"type": "object",
"properties": {
"orcid_ids": {
"minItems": 1,
"maxItems": 100,
"type": "array",
"items": {
"type": "string",
"minLength": 1
}
},
"skip_existing": {
"type": "boolean"
}
},
"required": [
"orcid_ids"
],
"additionalProperties": false
}

Content type: application/json

{
"type": "object",
"properties": {
"queued": {
"type": "integer"
},
"requested": {
"type": "integer"
},
"jobs": {
"type": "array",
"items": {
"type": "object",
"additionalProperties": true
}
}
},
"required": [
"queued",
"requested",
"jobs"
]
}

Content type: application/json

{
"type": "object",
"properties": {
"error": {
"type": "string"
},
"details": {
"oneOf": [
{
"type": "object",
"additionalProperties": true
},
{
"type": "null"
}
]
}
},
"required": [
"error"
],
"additionalProperties": true
}

Poll ingestion status Returns the most recent ingestion status for each requested ORCID identifier. Authentication: Cloudflare Access JWT Tags: Ingestion

NameInTypeRequiredDescription
orcid_idsquerystringyesComma-separated ORCID identifiers.

No request body.

Content type: application/json

{
"type": "object",
"properties": {
"statuses": {
"type": "array",
"items": {
"type": "object",
"additionalProperties": true
}
}
},
"required": [
"statuses"
]
}

Content type: application/json

{
"type": "object",
"properties": {
"error": {
"type": "string"
},
"details": {
"oneOf": [
{
"type": "object",
"additionalProperties": true
},
{
"type": "null"
}
]
}
},
"required": [
"error"
],
"additionalProperties": true
}

List stuck ingestion jobs Lists queued or processing ingestion jobs older than a configurable threshold. Internal: yes Authentication: Cloudflare Access JWT Tags: Ingestion

NameInTypeRequiredDescription
threshold_secondsqueryintegernoAge threshold in seconds.
limitqueryintegernoMaximum stuck jobs to return.

No request body.

Content type: application/json

{
"type": "object",
"additionalProperties": true
}

Force-fail an ingestion job Marks a queued or processing ingestion job as failed for operational recovery. Internal: yes Authentication: Cloudflare Access JWT Tags: Ingestion

NameInTypeRequiredDescription
jobIdpathstringyesIngestion job identifier.

Content type: application/json

{
"type": "object",
"properties": {
"orcid_id": {
"type": "string"
},
"error_message": {
"type": "string"
}
},
"required": [
"orcid_id"
]
}

Content type: application/json

{
"type": "object",
"additionalProperties": true
}

Content type: application/json

{
"type": "object",
"properties": {
"error": {
"type": "string"
},
"details": {
"oneOf": [
{
"type": "object",
"additionalProperties": true
},
{
"type": "null"
}
]
}
},
"required": [
"error"
],
"additionalProperties": true
}

Content type: application/json

{
"type": "object",
"properties": {
"error": {
"type": "string"
},
"details": {
"oneOf": [
{
"type": "object",
"additionalProperties": true
},
{
"type": "null"
}
]
}
},
"required": [
"error"
],
"additionalProperties": true
}
MethodPathSummary
GET/api/publicationsList publications
GET/api/publications/statsPublication totals
GET/api/publications/stats/timeseriesPublication timeseries
GET/api/publications/{id}Get publication
PATCH/api/publications/{id}Patch publication
DELETE/api/publications/{id}Soft-delete publication
POST/api/publications/bulkBulk publication action

List publications Lists dashboard publications across shards with filters for visibility, deletion state, ownership, and metadata fields. Authentication: Cloudflare Access JWT Tags: Publications

NameInTypeRequiredDescription
pagequeryintegeryes1-based page number.
perPagequeryintegeryesItems per page.
orcid_idquerystringnoFilter to publications linked to a researcher ORCID.
qquerystringyesSearch term applied to title and author text.
sortquerystringyesSort field.
dirquerystringyesSort direction.
visibilityquerystringyesVisibility filter.
statusquerystringyesDeletion-state filter.
publication_typequerystringnoExact publication type filter.
publication_yearqueryintegernoPublication year filter.
min_cited_byqueryintegernoMinimum citation count filter.

No request body.

Content type: application/json

{
"type": "object",
"properties": {
"publications": {
"type": "array",
"items": {
"type": "object",
"properties": {
"id": {
"type": "string"
},
"researcher_orcids": {
"type": "array",
"items": {
"type": "string"
}
},
"researchers": {
"type": "array",
"items": {
"type": "object",
"additionalProperties": true
}
},
"title": {
"type": [
"string",
"null"
]
},
"apa_citation": {
"type": [
"string",
"null"
]
},
"doi_url": {
"type": "string"
},
"publication_date": {
"type": [
"string",
"null"
]
},
"publication_year": {
"type": [
"integer",
"null"
]
},
"publication_type": {
"type": [
"string",
"null"
]
},
"cited_by_count": {
"type": [
"integer",
"null"
]
},
"last_fetched_at": {
"type": "integer"
},
"edit_count": {
"type": "integer"
},
"visible": {
"type": "boolean"
},
"deleted_at": {
"type": [
"string",
"null"
]
}
},
"required": [
"id",
"researcher_orcids",
"researchers",
"doi_url",
"last_fetched_at",
"edit_count",
"visible"
],
"additionalProperties": true
}
},
"page": {
"type": "integer"
},
"per_page": {
"type": "integer"
},
"total": {
"type": "integer"
},
"pages": {
"type": "integer"
},
"sort": {
"type": "string"
},
"dir": {
"type": "string"
},
"q": {
"type": "string"
},
"visibility": {
"type": "string"
},
"status": {
"type": "string"
},
"publication_type": {
"type": [
"string",
"null"
]
},
"publication_year": {
"type": [
"integer",
"null"
]
},
"min_cited_by": {
"type": [
"integer",
"null"
]
}
},
"required": [
"publications",
"page",
"per_page",
"total",
"pages",
"sort",
"dir",
"q",
"visibility",
"status"
]
}

Content type: application/json

{
"type": "object",
"properties": {
"error": {
"type": "string"
},
"details": {
"oneOf": [
{
"type": "object",
"additionalProperties": true
},
{
"type": "null"
}
]
}
},
"required": [
"error"
],
"additionalProperties": true
}

Publication totals Returns aggregate publication totals used by the dashboard overview widgets. Authentication: Cloudflare Access JWT Tags: Publications

No parameters.

No request body.

Content type: application/json

{
"type": "object",
"properties": {
"total_publications": {
"type": "integer"
},
"edited_publications": {
"type": "integer"
},
"hidden_publications": {
"type": "integer"
},
"orcid_sources": {
"type": "integer"
}
},
"required": [
"total_publications",
"edited_publications",
"hidden_publications",
"orcid_sources"
]
}

Publication timeseries Returns recent daily and monthly ingestion counts for dashboard charts. Authentication: Cloudflare Access JWT Tags: Publications

No parameters.

No request body.

200 - Daily and monthly publication counts.

Section titled “200 - Daily and monthly publication counts.”

Content type: application/json

{
"type": "object",
"properties": {
"daily_last_7_days": {
"type": "array",
"items": {
"type": "object",
"properties": {
"key": {
"type": "string"
},
"label": {
"type": "string"
},
"count": {
"type": "integer"
}
},
"required": [
"key",
"label",
"count"
]
}
},
"monthly_last_6_months": {
"type": "array",
"items": {
"type": "object",
"properties": {
"key": {
"type": "string"
},
"label": {
"type": "string"
},
"count": {
"type": "integer"
}
},
"required": [
"key",
"label",
"count"
]
}
}
},
"required": [
"daily_last_7_days",
"monthly_last_6_months"
]
}

Get publication Returns the original, edited, and merged publication payload along with linked researchers and promoted metadata. Authentication: Cloudflare Access JWT Tags: Publications

NameInTypeRequiredDescription
idpathstringyesNormalized or raw DOI identifier.

No request body.

Content type: application/json

{
"type": "object",
"additionalProperties": true
}

Content type: application/json

{
"type": "object",
"properties": {
"error": {
"type": "string"
},
"details": {
"oneOf": [
{
"type": "object",
"additionalProperties": true
},
{
"type": "null"
}
]
}
},
"required": [
"error"
],
"additionalProperties": true
}

Content type: application/json

{
"type": "object",
"properties": {
"error": {
"type": "string"
},
"details": {
"oneOf": [
{
"type": "object",
"additionalProperties": true
},
{
"type": "null"
}
]
}
},
"required": [
"error"
],
"additionalProperties": true
}

Patch publication Applies a JSON Patch document to publication metadata or toggles visibility. Authentication: Cloudflare Access JWT Tags: Publications

NameInTypeRequiredDescription
idpathstringyesNormalized or raw DOI identifier.

Content type: application/json

{
"type": "array",
"items": {
"type": "object",
"properties": {
"op": {
"type": "string"
},
"path": {
"type": "string"
},
"value": {}
},
"required": [
"op",
"path"
],
"additionalProperties": true
}
}

Content type: application/json

{
"type": "object",
"properties": {
"ok": {
"type": "boolean"
},
"visible": {
"type": "boolean"
},
"edit_count": {
"type": "integer"
}
},
"required": [
"ok",
"visible"
],
"additionalProperties": true
}

Content type: application/json

{
"type": "object",
"properties": {
"error": {
"type": "string"
},
"details": {
"oneOf": [
{
"type": "object",
"additionalProperties": true
},
{
"type": "null"
}
]
}
},
"required": [
"error"
],
"additionalProperties": true
}

Content type: application/json

{
"type": "object",
"properties": {
"error": {
"type": "string"
},
"details": {
"oneOf": [
{
"type": "object",
"additionalProperties": true
},
{
"type": "null"
}
]
}
},
"required": [
"error"
],
"additionalProperties": true
}

Soft-delete publication Marks a publication as deleted without removing the row. Authentication: Cloudflare Access JWT Tags: Publications

NameInTypeRequiredDescription
idpathstringyesNormalized or raw DOI identifier.

No request body.

Content type: application/json

{
"type": "object",
"properties": {
"success": {
"type": "boolean"
}
},
"required": [
"success"
]
}

Content type: application/json

{
"type": "object",
"properties": {
"error": {
"type": "string"
},
"details": {
"oneOf": [
{
"type": "object",
"additionalProperties": true
},
{
"type": "null"
}
]
}
},
"required": [
"error"
],
"additionalProperties": true
}

Bulk publication action Soft-deletes or restores a list of publications. Authentication: Cloudflare Access JWT Tags: Publications

No parameters.

Content type: application/json

{
"type": "object",
"properties": {
"ids": {
"type": "array",
"items": {
"type": "string"
}
},
"action": {
"type": "string",
"enum": [
"delete",
"restore"
]
}
},
"required": [
"ids",
"action"
],
"additionalProperties": false
}

Content type: application/json

{
"type": "object",
"properties": {
"success": {
"type": "boolean"
}
},
"required": [
"success"
]
}

Content type: application/json

{
"type": "object",
"properties": {
"error": {
"type": "string"
},
"details": {
"oneOf": [
{
"type": "object",
"additionalProperties": true
},
{
"type": "null"
}
]
}
},
"required": [
"error"
],
"additionalProperties": true
}
MethodPathSummary
GET/api/researchersList researchers
GET/api/researchers/{orcid}Get researcher
PATCH/api/researchers/{orcid}Update researcher profile
GET/api/researchers/{orcid}/publicationsList researcher publications
PATCH/api/researchers/{orcid}/affiliationUpdate researcher affiliation

List researchers Lists researchers with optional affiliation and search filters. Authentication: Cloudflare Access JWT Tags: Researchers

NameInTypeRequiredDescription
pagequeryintegeryes1-based page number.
perPagequeryintegeryesItems per page.
qquerystringyesSearch by researcher name or ORCID.
sortquerystringyesSort field.
dirquerystringyesSort direction.
entity_idquerystringnoEntity filter such as cesam.
affiliation_statusquerystringnoNormalized affiliation status filter.
active_onlyquerybooleanyesOnly include currently active memberships.

No request body.

Content type: application/json

{
"type": "object",
"properties": {
"researchers": {
"type": "array",
"items": {
"type": "object",
"additionalProperties": true
}
},
"page": {
"type": "integer"
},
"per_page": {
"type": "integer"
},
"total": {
"type": "integer"
},
"pages": {
"type": "integer"
}
},
"required": [
"researchers",
"page",
"per_page",
"total",
"pages"
]
}

Content type: application/json

{
"type": "object",
"properties": {
"error": {
"type": "string"
},
"details": {
"oneOf": [
{
"type": "object",
"additionalProperties": true
},
{
"type": "null"
}
]
}
},
"required": [
"error"
],
"additionalProperties": true
}

Get researcher Returns a single researcher including current normalized affiliation fields. Authentication: Cloudflare Access JWT Tags: Researchers

NameInTypeRequiredDescription
orcidpathstringyesResearcher ORCID identifier.

No request body.

Content type: application/json

{
"type": "object",
"additionalProperties": true
}

Content type: application/json

{
"type": "object",
"properties": {
"error": {
"type": "string"
},
"details": {
"oneOf": [
{
"type": "object",
"additionalProperties": true
},
{
"type": "null"
}
]
}
},
"required": [
"error"
],
"additionalProperties": true
}

Content type: application/json

{
"type": "object",
"properties": {
"error": {
"type": "string"
},
"details": {
"oneOf": [
{
"type": "object",
"additionalProperties": true
},
{
"type": "null"
}
]
}
},
"required": [
"error"
],
"additionalProperties": true
}

Update researcher profile Updates the manually editable researcher name and biography fields. Authentication: Cloudflare Access JWT Tags: Researchers

NameInTypeRequiredDescription
orcidpathstringyesResearcher ORCID identifier.

Content type: application/json

{
"type": "object",
"properties": {
"name": {
"type": "string",
"minLength": 1
},
"biography": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
]
}
},
"required": [
"name"
],
"additionalProperties": false
}

Content type: application/json

{
"type": "object",
"properties": {
"success": {
"type": "boolean"
}
},
"required": [
"success"
]
}

Content type: application/json

{
"type": "object",
"properties": {
"error": {
"type": "string"
},
"details": {
"oneOf": [
{
"type": "object",
"additionalProperties": true
},
{
"type": "null"
}
]
}
},
"required": [
"error"
],
"additionalProperties": true
}

List researcher publications Returns publications linked to a single researcher, with optional inclusion of soft-deleted rows. Authentication: Cloudflare Access JWT Tags: Researchers

NameInTypeRequiredDescription
orcidpathstringyesResearcher ORCID identifier.
pagequeryintegeryes1-based page number.
perPagequeryintegeryesItems per page.
includeDeletedquerybooleanyesInclude soft-deleted publications.

No request body.

200 - Paginated publication list for a single researcher.

Section titled “200 - Paginated publication list for a single researcher.”

Content type: application/json

{
"type": "object",
"additionalProperties": true
}

Content type: application/json

{
"type": "object",
"properties": {
"error": {
"type": "string"
},
"details": {
"oneOf": [
{
"type": "object",
"additionalProperties": true
},
{
"type": "null"
}
]
}
},
"required": [
"error"
],
"additionalProperties": true
}

PATCH /api/researchers/{orcid}/affiliation

Section titled “PATCH /api/researchers/{orcid}/affiliation”

Update researcher affiliation Closes the current active membership row and creates a new one for the given entity and status. Authentication: Cloudflare Access JWT Tags: Researchers

NameInTypeRequiredDescription
orcidpathstringyesResearcher ORCID identifier.

Content type: application/json

{
"type": "object",
"properties": {
"entity_id": {
"type": "string",
"minLength": 1
},
"status": {
"type": "string",
"enum": [
"cesam",
"external"
]
},
"starts_at": {
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 9007199254740991
}
},
"required": [
"entity_id",
"status"
],
"additionalProperties": false
}

Content type: application/json

{
"type": "object",
"additionalProperties": true
}

Content type: application/json

{
"type": "object",
"properties": {
"error": {
"type": "string"
},
"details": {
"oneOf": [
{
"type": "object",
"additionalProperties": true
},
{
"type": "null"
}
]
}
},
"required": [
"error"
],
"additionalProperties": true
}

Content type: application/json

{
"type": "object",
"properties": {
"error": {
"type": "string"
},
"details": {
"oneOf": [
{
"type": "object",
"additionalProperties": true
},
{
"type": "null"
}
]
}
},
"required": [
"error"
],
"additionalProperties": true
}
MethodPathSummary
POST/api/site-tools/reset-dataReset dashboard data
POST/api/site-tools/clear-stuck-jobsClear stuck jobs
POST/api/site-tools/repair-author-linksRepair author links for a DOI
POST/api/site-tools/repair-author-links/bulkBulk repair author links

Reset dashboard data Administrative endpoint to delete dashboard data across shards. Protected by additional email checks. Internal: yes Authentication: Cloudflare Access JWT Tags: Site Tools

No parameters.

Content type: application/json

{
"type": "object",
"properties": {
"confirmation": {
"type": "string"
},
"dryRun": {
"type": "boolean"
},
"clearIngestionJobs": {
"type": "boolean"
}
},
"required": [
"confirmation"
],
"additionalProperties": false
}

Content type: application/json

{
"type": "object",
"additionalProperties": true
}

400 - Invalid request or confirmation mismatch.

Section titled “400 - Invalid request or confirmation mismatch.”

Content type: application/json

{
"type": "object",
"properties": {
"error": {
"type": "string"
},
"details": {
"oneOf": [
{
"type": "object",
"additionalProperties": true
},
{
"type": "null"
}
]
}
},
"required": [
"error"
],
"additionalProperties": true
}

Content type: application/json

{
"type": "object",
"properties": {
"error": {
"type": "string"
},
"details": {
"oneOf": [
{
"type": "object",
"additionalProperties": true
},
{
"type": "null"
}
]
}
},
"required": [
"error"
],
"additionalProperties": true
}

Content type: application/json

{
"type": "object",
"additionalProperties": true
}

Clear stuck jobs Administrative endpoint to force-fail stale queued or processing ingestion jobs across shards. Internal: yes Authentication: Cloudflare Access JWT Tags: Site Tools

No parameters.

Content type: application/json

{
"type": "object",
"properties": {
"thresholdSeconds": {
"type": "integer",
"minimum": 60,
"maximum": 86400
},
"dryRun": {
"type": "boolean"
},
"reason": {
"type": "string",
"minLength": 1,
"maxLength": 200
}
},
"additionalProperties": false
}

Content type: application/json

{
"type": "object",
"additionalProperties": true
}

Content type: application/json

{
"type": "object",
"properties": {
"error": {
"type": "string"
},
"details": {
"oneOf": [
{
"type": "object",
"additionalProperties": true
},
{
"type": "null"
}
]
}
},
"required": [
"error"
],
"additionalProperties": true
}

Content type: application/json

{
"type": "object",
"properties": {
"error": {
"type": "string"
},
"details": {
"oneOf": [
{
"type": "object",
"additionalProperties": true
},
{
"type": "null"
}
]
}
},
"required": [
"error"
],
"additionalProperties": true
}

Content type: application/json

{
"type": "object",
"additionalProperties": true
}

Repair author links for a DOI Administrative endpoint to reconcile author matches for a single publication DOI. Internal: yes Authentication: Cloudflare Access JWT Tags: Site Tools

No parameters.

Content type: application/json

{
"type": "object",
"properties": {
"doi": {
"type": "string",
"minLength": 1
},
"dryRun": {
"type": "boolean"
},
"cesamOnly": {
"type": "boolean"
}
},
"required": [
"doi"
],
"additionalProperties": false
}

Content type: application/json

{
"type": "object",
"additionalProperties": true
}

Content type: application/json

{
"type": "object",
"properties": {
"error": {
"type": "string"
},
"details": {
"oneOf": [
{
"type": "object",
"additionalProperties": true
},
{
"type": "null"
}
]
}
},
"required": [
"error"
],
"additionalProperties": true
}

Content type: application/json

{
"type": "object",
"properties": {
"error": {
"type": "string"
},
"details": {
"oneOf": [
{
"type": "object",
"additionalProperties": true
},
{
"type": "null"
}
]
}
},
"required": [
"error"
],
"additionalProperties": true
}

Content type: application/json

{
"type": "object",
"properties": {
"error": {
"type": "string"
},
"details": {
"oneOf": [
{
"type": "object",
"additionalProperties": true
},
{
"type": "null"
}
]
}
},
"required": [
"error"
],
"additionalProperties": true
}

POST /api/site-tools/repair-author-links/bulk

Section titled “POST /api/site-tools/repair-author-links/bulk”

Bulk repair author links Administrative endpoint to scan multiple publications per shard and reconcile author links in bulk. Internal: yes Authentication: Cloudflare Access JWT Tags: Site Tools

No parameters.

Content type: application/json

{
"type": "object",
"properties": {
"dryRun": {
"type": "boolean"
},
"cesamOnly": {
"type": "boolean"
},
"limitPerShard": {
"type": "integer",
"minimum": 1,
"maximum": 1000
}
},
"additionalProperties": false
}

Content type: application/json

{
"type": "object",
"additionalProperties": true
}

Content type: application/json

{
"type": "object",
"properties": {
"error": {
"type": "string"
},
"details": {
"oneOf": [
{
"type": "object",
"additionalProperties": true
},
{
"type": "null"
}
]
}
},
"required": [
"error"
],
"additionalProperties": true
}

Content type: application/json

{
"type": "object",
"properties": {
"error": {
"type": "string"
},
"details": {
"oneOf": [
{
"type": "object",
"additionalProperties": true
},
{
"type": "null"
}
]
}
},
"required": [
"error"
],
"additionalProperties": true
}