Referencia de la API de CiteWise
Integra el control de calidad de citas en tu flujo de investigación: resuelve metadatos, inspecciona evidencias, propone correcciones, formatea estilos y procesa lotes con una API por espacio de trabajo.
Haz tu primera solicitud
Haz tu primera solicitud
Integra el control de calidad de citas en tu flujo de investigación: resuelve metadatos, inspecciona evidencias, propone correcciones, formatea estilos y procesa lotes con una API por espacio de trabajo.
curl https://api.citewise.dev/api/v1/citations/parse \
-X POST \
-H "X-API-Key: cw_live_your_key" \
-H "Content-Type: application/json" \
-d '{
"reference": "Vaswani A. Attention Is All You Need. 2017.",
"async": false
}'Resumen de autenticación
Para integraciones de servidor usa una clave API de un espacio de pago; las sesiones del navegador usan un JWT de Clerk. Cada recurso pertenece al espacio autenticado.
Convenciones
Convenciones
Integra el control de calidad de citas en tu flujo de investigación: resuelve metadatos, inspecciona evidencias, propone correcciones, formatea estilos y procesa lotes con una API por espacio de trabajo.
Tipo de contenido
JSON or multipartArchivo de auditoría descargable con riesgo, metadatos clave y campos de revisión humana.
Trazabilidad
X-Trace-IdOpcional request ID. The response exposes the trace ID for support.
Paginación
page + sizeLas páginas de elementos por lotes empiezan en cero y admiten hasta 200 elementos.
Reintentos
Retry-AfterRespeta este encabezado en respuestas de tasa, concurrencia o sistema ocupado.
API DE CITAS
Verificar y enriquecer referencias
Analiza primero y usa el citationId devuelto para consultar evidencias, correcciones y formatos. Todos los endpoints de citas pertenecen a un espacio.
/api/v1/citations/parseAnalizar y verificar una referencia
Devuelve los recursos y metadatos del espacio de trabajo actual.
Cuerpo de la solicitud
Tipo de contenido: application/json
| Campo | Tipo | Obligatorio | Descripción |
|---|---|---|---|
| reference | string | obligatorio | Cita original, DOI, URL o referencia incompleta. Máximo 8.000 caracteres. |
| async | boolean | opcional | Reserved for asynchronous processing. Por defecto false; send false for the immediate parse response. |
{
"reference": "Vaswani, A. Attention Is All You Need. 2017.",
"async": false
}Respuesta
200 OK| Campo | Tipo | Obligatorio | Descripción |
|---|---|---|---|
| citationId | UUID | - | Identificador for follow-up citation endpoints. |
| status | string | - | Verification decision. |
| confidence | number | - | Confianza general, de 0 a 1. |
| citation | CitationDto | - | Full persisted citation, metadata fields, verification details, and APA rendering. |
{
"citationId": "7d9a7d7e-9df7-4c84-9f2a-2f4a7d9c4b11",
"status": "VERIFIED",
"confidence": 0.99,
"citation": {
"id": "7d9a7d7e-9df7-4c84-9f2a-2f4a7d9c4b11",
"status": "VERIFIED",
"confidence": 0.99,
"title": { "fieldName": "title", "value": "Attention Is All You Need", "confidence": 0.99, "algorithm": "PROVIDER_FUSION", "evidence": [] },
"verification": { "rawReference": "Vaswani A. ...", "normalizedReference": "Vaswani A... 2017", "matchScore": 0.99, "candidateMargin": 0.42, "features": {}, "matchedProviders": ["CROSSREF", "OPENALEX"], "contradictions": [], "candidates": [], "providerDiagnostics": [] },
"renderedApa": "Vaswani, A., ... (2017).",
"createdAt": "2026-01-15T10:20:30Z"
}
}Devuelve los recursos y metadatos del espacio de trabajo actual.
/api/v1/citationsListar referencias recientes
Devuelve recent citations for the authenticated workspace, ordered by the workspace history service.
Respuesta
200 OK| Campo | Tipo | Obligatorio | Descripción |
|---|---|---|---|
| [] | CitationSummary[] | - | Este campo indica la confianza del resultado o del valor extraído, de 0 a 1. |
[
{
"id": "7d9a7d7e-9df7-4c84-9f2a-2f4a7d9c4b11",
"rawReference": "Vaswani A. Attention Is All You Need. 2017.",
"status": "VERIFIED",
"confidence": 0.99,
"renderedApa": "Vaswani, A., ... (2017).",
"createdAt": "2026-01-15T10:20:30Z"
}
]/api/v1/citations/{id}Obtener una referencia
Devuelve los recursos y metadatos del espacio de trabajo actual.
Parámetros de ruta y consulta
| Campo | Tipo | Obligatorio | Descripción |
|---|---|---|---|
| id | UUID | obligatorio | Identificador del recurso que se usará en las siguientes solicitudes. |
Respuesta
200 OK| Campo | Tipo | Obligatorio | Descripción |
|---|---|---|---|
| id | UUID | - | Identificador persistente de la referencia. |
| status | string | - | VERIFIED, PROBABLY_VERIFIED, AMBIGUOUS, CONFLICTING_METADATA, NOT_FOUND, INSUFFICIENT_EVIDENCE, or POSSIBLE_HALLUCINATION. |
| confidence | number | - | Confianza general, de 0 a 1. |
| parsingConfidence | number | - | Este campo indica la confianza del resultado o del valor extraído, de 0 a 1. |
| identityConfidence | number | - | Este campo indica la confianza del resultado o del valor extraído, de 0 a 1. |
| title ... publisher | FieldDto | null | - | Campos de metadatos resueltos con valor, confianza, algoritmo y evidencia. |
| verification | VerificationDto | - | Entrada normalizada, puntuaciones, diagnósticos, conflictos y candidatos. |
| renderedApa | string | null | - | APA rendering generated during verification. |
| createdAt | ISO-8601 timestamp | - | Hora de creación en UTC. |
{
"id": "7d9a7d7e-9df7-4c84-9f2a-2f4a7d9c4b11",
"status": "VERIFIED",
"confidence": 0.99,
"title": { "fieldName": "title", "value": "Attention Is All You Need", "confidence": 0.99 },
"verification": { "matchedProviders": ["CROSSREF"], "contradictions": [], "candidates": [] },
"renderedApa": "Vaswani, A., ... (2017).",
"createdAt": "2026-01-15T10:20:30Z"
}/api/v1/citations/{id}/evidenceObtener evidencia por campo
Devuelve provider evidence grouped by metadata field. Use this to show why a field was accepted or investigate a contradiction.
Parámetros de ruta y consulta
| Campo | Tipo | Obligatorio | Descripción |
|---|---|---|---|
| id | UUID | obligatorio | Identificador del recurso que se usará en las siguientes solicitudes. |
Respuesta
200 OK| Campo | Tipo | Obligatorio | Descripción |
|---|---|---|---|
| {fieldName} | EvidenceDto[] | - | Dynamic keys such as title, authors, year, doi, or journal map to evidence arrays. |
| source / value | string / unknown | - | Identificador del proveedor y valor devuelto. |
| sourceReliability | number | - | Fiabilidad configurada del proveedor, de 0 a 1. |
| extractionConfidence | number | - | Confianza de que el valor se extrajo correctamente. |
| contextMatchScore | number | - | Grado de coincidencia entre el resultado y la referencia enviada. |
| weightedScore | number | - | Puntuación combinada de evidencia. |
| createdAt | ISO-8601 timestamp | - | Hora de recopilación de evidencia en UTC. |
{
"title": [
{ "source": "CROSSREF", "value": "Attention Is All You Need", "sourceReliability": 0.98, "extractionConfidence": 1.0, "contextMatchScore": 0.99, "weightedScore": 0.97, "createdAt": "2026-01-15T10:20:30Z" }
],
"doi": []
}/api/v1/citations/{id}/correction-proposalsGenerar propuestas de corrección
Devuelve los recursos y metadatos del espacio de trabajo actual.
Parámetros de ruta y consulta
| Campo | Tipo | Obligatorio | Descripción |
|---|---|---|---|
| id | UUID | obligatorio | Identificador del recurso que se usará en las siguientes solicitudes. |
Respuesta
200 OK| Campo | Tipo | Obligatorio | Descripción |
|---|---|---|---|
| citationId | UUID | - | Citation being evaluated. |
| decision | string | - | PROPOSED, NO_CHANGES, or REVIEW_REQUIRED. |
| changes | CorrectionChangeDto[] | - | Este campo indica la confianza del resultado o del valor extraído, de 0 a 1. |
| unresolvedConflicts | string[] | - | Conflicts that could not be resolved automatically. |
{
"citationId": "7d9a7d7e-9df7-4c84-9f2a-2f4a7d9c4b11",
"decision": "PROPOSED",
"changes": [{ "field": "doi", "changeType": "RECOVERED", "originalValue": null, "proposedValue": "10.48550/arXiv.1706.03762", "confidence": 0.98, "provenance": "PROVIDER_BACKED", "sources": ["CROSSREF"], "reason": "Proposed value is supported by external scholarly metadata" }],
"unresolvedConflicts": []
}/api/v1/citations/renderFormatear estilos de cita
Renders a stored citation or caller-supplied metadata in one or more supported styles. Exactly one of citationId or metadata is obligatorio.
Cuerpo de la solicitud
Tipo de contenido: application/json
| Campo | Tipo | Obligatorio | Descripción |
|---|---|---|---|
| citationId | UUID | - | Almacenado citation. Mutually exclusive with metadata. |
| metadata | CitationMetadataRequest | - | Inline metadata. Include at least one field; mutually exclusive with citationId. |
| styles | string[] | - | Hasta 10 styles. Por defecto ["APA7"]. Admitidos: APA7, MLA9, CHICAGO_AUTHOR_DATE, IEEE, VANCOUVER, GBT7714. |
{
"citationId": "7d9a7d7e-9df7-4c84-9f2a-2f4a7d9c4b11",
"styles": ["APA7", "MLA9", "IEEE"]
}Respuesta
200 OK| Campo | Tipo | Obligatorio | Descripción |
|---|---|---|---|
| citationId | UUID | null | - | Almacenado citation ID, or null when rendering inline metadata. |
| renderings | object | - | Map of canonical style name to rendered citation string. |
{
"citationId": "7d9a7d7e-9df7-4c84-9f2a-2f4a7d9c4b11",
"renderings": { "APA7": "Vaswani, A., ... (2017).", "MLA9": "Vaswani, Ashish, et al. ...", "IEEE": "A. Vaswani et al., ..." }
}For inline rendering, send metadata with fields such as title, authors, year, doi, and publisher. Inline metadata is not persisted.
TRABAJOS POR LOTES
Procesar flujos grandes
Usa trabajos persistentes para muchas referencias, consultar el progreso o deduplicar. La creación devuelve HTTP 202 y una cabecera Location.
/api/v1/citation-imports/previewPrevisualizar una importación
Número de registros incluidos en el resultado o trabajo.
Cuerpo de la solicitud
Tipo de contenido: multipart/form-data
| Campo | Tipo | Obligatorio | Descripción |
|---|---|---|---|
| file | multipart file | obligatorio | Procesa el archivo estructurado y devuelve formato, registros, advertencias y metadatos normalizados. |
| format | string (query) | - | Opcional explicit format: BIBTEX, RIS, ENDNOTE, or CSL_JSON. The extension is used by default. |
curl -X POST "https://api.citewise.dev/api/v1/citation-imports/preview?format=RIS" -H "X-API-Key: cw_live_your_key" -F "file=@references.ris"Procesa el archivo estructurado y devuelve formato, registros, advertencias y metadatos normalizados.
Respuesta
200 OK| Campo | Tipo | Obligatorio | Descripción |
|---|---|---|---|
| format | string | - | Detected format: BIBTEX, RIS, ENDNOTE, or CSL_JSON. |
| totalRecords | integer | - | Número de source records found in the file. |
| validRecords | integer | - | Records successfully converted to common CSL metadata. |
| invalidRecords | integer | - | Records that could not be converted and will not enter a job. |
| warningCount | integer | - | Número de registros incluidos en el resultado o trabajo. |
| records | ImportRecordPreview[] | - | Hasta 10 previews with index, sourceKey, title, authors, year, doi, and warnings. |
{
"format": "BIBTEX",
"totalRecords": 2, "validRecords": 2, "invalidRecords": 0, "warningCount": 0,
"records": [{ "index": 1, "sourceKey": "vaswani2017", "title": "Attention Is All You Need", "authors": "Vaswani, Ashish", "year": 2017, "doi": null, "warnings": [] }]
}/api/v1/citation-imports/jobsCrear un lote de importación
Re-uploads a previously previewed structured file and creates a durable verification job. Only valid records are submitted, at least two valid records are obligatorio, and quota is reserved at this point.
Cuerpo de la solicitud
Tipo de contenido: multipart/form-data
| Campo | Tipo | Obligatorio | Descripción |
|---|---|---|---|
| file | multipart file | obligatorio | Procesa el archivo estructurado y devuelve formato, registros, advertencias y metadatos normalizados. |
| styles | string[] (repeated multipart parts) | - | Opcional repeated form parts such as styles=APA7&styles=MLA9; defaults to APA7. |
| format | string (query) | - | Opcional explicit format override. |
curl -X POST "https://api.citewise.dev/api/v1/citation-imports/jobs?format=RIS" -H "X-API-Key: cw_live_your_key" -F "file=@references.ris" -F "styles=APA7" -F "styles=IEEE"The response is the same 202 job resource returned by /api/v1/citation-jobs. Each item stores its original source record, while the upload itself is not persisted. At least two valid records are obligatorio.
Respuesta
202 Accepted| Campo | Tipo | Obligatorio | Descripción |
|---|---|---|---|
| id | UUID | - | Identificador del recurso que se usará en las siguientes solicitudes. |
| type | string | - | VERIFY_AND_CORRECT or DEDUPLICATE. |
| status | string | - | Programa o ejecuta la cancelación solicitada y devuelve el estado actualizado. |
| totalItems / processedItems | integer | - | Número de registros incluidos en el resultado o trabajo. |
| succeededItems / failedItems | integer | - | Correctos and failed item counters. |
| cancelRequested | boolean | - | Indica si cancellation has been requested. |
| result | object | null | - | Aggregate result when the job completes. |
| errorCode / errorMessage | string | null | - | Job-level failure details, when applicable. |
| createdAt ... updatedAt | ISO-8601 timestamp | - | Job lifecycle timestamps in UTC. |
{
"id": "3f0f7d3c-7033-4b0d-92df-5e8d5ab2e7f6",
"type": "VERIFY_AND_CORRECT",
"status": "QUEUED",
"totalItems": 2, "processedItems": 0, "succeededItems": 0, "failedItems": 0
}/api/v1/citation-jobsCrear un lote de citas
Devuelve el estado actual del recurso; consulta la definición del endpoint para los valores.
Cuerpo de la solicitud
Tipo de contenido: application/json
| Campo | Tipo | Obligatorio | Descripción |
|---|---|---|---|
| type | string | obligatorio | VERIFY_AND_CORRECT for references, or DEDUPLICATE for existing citationIds. |
| references | string[] | - | Hasta 1,000 references, each up to 8,000 characters. Required for VERIFY_AND_CORRECT. |
| citationIds | UUID[] | - | Hasta 1,000 stored citation IDs. Required for DEDUPLICATE. |
| options.styles | string[] | - | Hasta 10 render styles. Por defecto ["APA7"]. |
{
"type": "VERIFY_AND_CORRECT",
"references": ["Vaswani A. Attention Is All You Need. 2017.", "Devlin J. BERT: Pre-training of Deep Bidirectional Transformers. 2019."],
"options": { "styles": ["APA7", "IEEE"] }
}Respuesta
202 Accepted| Campo | Tipo | Obligatorio | Descripción |
|---|---|---|---|
| id | UUID | - | Identificador del recurso que se usará en las siguientes solicitudes. |
| type | string | - | VERIFY_AND_CORRECT or DEDUPLICATE. |
| status | string | - | Programa o ejecuta la cancelación solicitada y devuelve el estado actualizado. |
| totalItems / processedItems | integer | - | Número de registros incluidos en el resultado o trabajo. |
| succeededItems / failedItems | integer | - | Correctos and failed item counters. |
| cancelRequested | boolean | - | Indica si cancellation has been requested. |
| result | object | null | - | Aggregate result when the job completes. |
| errorCode / errorMessage | string | null | - | Job-level failure details, when applicable. |
| createdAt ... updatedAt | ISO-8601 timestamp | - | Job lifecycle timestamps in UTC. |
{
"id": "3f0f7d3c-7033-4b0d-92df-5e8d5ab2e7f6",
"type": "VERIFY_AND_CORRECT",
"status": "QUEUED",
"totalItems": 2, "processedItems": 0, "succeededItems": 0, "failedItems": 0,
"cancelRequested": false, "result": null, "errorCode": null, "errorMessage": null,
"createdAt": "2026-01-15T10:20:30Z", "startedAt": null, "completedAt": null, "updatedAt": "2026-01-15T10:20:30Z"
}/api/v1/citation-jobs/{id}Consultar estado del lote
Devuelve el estado actual del recurso; consulta la definición del endpoint para los valores.
Parámetros de ruta y consulta
| Campo | Tipo | Obligatorio | Descripción |
|---|---|---|---|
| id | UUID | obligatorio | Identificador del recurso que se usará en las siguientes solicitudes. |
Respuesta
200 OK| Campo | Tipo | Obligatorio | Descripción |
|---|---|---|---|
| id | UUID | - | Identificador del recurso que se usará en las siguientes solicitudes. |
| type | string | - | VERIFY_AND_CORRECT or DEDUPLICATE. |
| status | string | - | Programa o ejecuta la cancelación solicitada y devuelve el estado actualizado. |
| totalItems / processedItems | integer | - | Número de registros incluidos en el resultado o trabajo. |
| succeededItems / failedItems | integer | - | Correctos and failed item counters. |
| cancelRequested | boolean | - | Indica si cancellation has been requested. |
| result | object | null | - | Aggregate result when the job completes. |
| errorCode / errorMessage | string | null | - | Job-level failure details, when applicable. |
| createdAt ... updatedAt | ISO-8601 timestamp | - | Job lifecycle timestamps in UTC. |
{
"id": "3f0f7d3c-7033-4b0d-92df-5e8d5ab2e7f6",
"type": "VERIFY_AND_CORRECT",
"status": "COMPLETED_WITH_ERRORS",
"totalItems": 2, "processedItems": 2, "succeededItems": 1, "failedItems": 1,
"cancelRequested": false, "result": null, "errorCode": null, "errorMessage": null,
"createdAt": "2026-01-15T10:20:30Z", "startedAt": "2026-01-15T10:20:31Z", "completedAt": "2026-01-15T10:21:02Z", "updatedAt": "2026-01-15T10:21:02Z"
}/api/v1/citation-jobs/{id}/itemsListar elementos del lote
Devuelve item-level results and failures in item-index order.
Parámetros de ruta y consulta
| Campo | Tipo | Obligatorio | Descripción |
|---|---|---|---|
| id | UUID | obligatorio | Identificador del recurso que se usará en las siguientes solicitudes. |
| page | integer (query) | - | Zero-indexed page number. Por defecto 0. |
| size | integer (query) | - | Page size, defaults to 100 and is clamped to 1-200. |
Respuesta
200 OK| Campo | Tipo | Obligatorio | Descripción |
|---|---|---|---|
| jobId / page / size | UUID / integer / integer | - | Job ID and effective zero-indexed pagination values. Size is clamped to 1-200. |
| totalItems / totalPages | integer | - | Paginación totals. |
| items | CitationJobItemResponse[] | - | Registra la decisión, nota y hora de la revisión humana sin cambiar el riesgo del sistema ni la referencia original. |
{
"jobId": "3f0f7d3c-7033-4b0d-92df-5e8d5ab2e7f6", "page": 0, "size": 100, "totalItems": 2, "totalPages": 1,
"items": [{ "id": "a3c1...", "index": 0, "status": "SUCCEEDED", "reference": "Vaswani A. ...", "sourceRecord": "TY - JOUR\nTI - ...\nER -", "inputCitationId": null, "citationId": "7d9a...", "result": { "parsed": {}, "correction": {}, "rendered": {} }, "errorCode": null, "errorMessage": null }]
}Opcional query parameters are page (default 0) and size (default 100, maximum 200).
/api/v1/citation-jobs/{jobId}/items/{itemId}/reviewRegistrar una decisión humana
Registra la decisión, nota y hora de la revisión humana sin cambiar el riesgo del sistema ni la referencia original.
Parámetros de ruta y consulta
| Campo | Tipo | Obligatorio | Descripción |
|---|---|---|---|
| jobId | UUID | obligatorio | Devuelve la clasificación de riesgo, la acción recomendada, el progreso de revisión y el resumen de la auditoría. |
| itemId | UUID | obligatorio | Identificador del recurso que se usará en las siguientes solicitudes. |
Cuerpo de la solicitud
Tipo de contenido: application/json
| Campo | Tipo | Obligatorio | Descripción |
|---|---|---|---|
| decision | string | obligatorio | ACCEPT_RESOLVED, ACCEPT_CORRECTION, CHOOSE_CANDIDATE, KEEP_ORIGINAL, MARK_FOR_REVIEW, or UNABLE_TO_DETERMINE. |
| candidateSourceId | string | - | Identificador del recurso que se usará en las siguientes solicitudes. |
| note | string | - | Opcional reviewer note, up to 2,000 characters. |
{
"decision": "CHOOSE_CANDIDATE",
"candidateSourceId": "CROSSREF:10.5555/test",
"note": "Confirmed against the publisher record."
}Respuesta
200 OK| Campo | Tipo | Obligatorio | Descripción |
|---|---|---|---|
| reviewDecision | string | - | Registra la decisión, nota y hora de la revisión humana sin cambiar el riesgo del sistema ni la referencia original. |
| selectedCandidateSourceId | string | null | - | Selected candidate for CHOOSE_CANDIDATE. |
| reviewNote | string | null | - | Registra la decisión, nota y hora de la revisión humana sin cambiar el riesgo del sistema ni la referencia original. |
| reviewedBy / reviewedAt | UUID | null / timestamp | - | Registra la decisión, nota y hora de la revisión humana sin cambiar el riesgo del sistema ni la referencia original. |
{
"id": "a3c1...",
"riskLevel": "REVIEW",
"reviewDecision": "CHOOSE_CANDIDATE",
"selectedCandidateSourceId": "CROSSREF:10.5555/test",
"reviewNote": "Confirmed against the publisher record.",
"reviewedAt": "2026-10-09T08:30:00Z"
}Registra la decisión, nota y hora de la revisión humana sin cambiar el riesgo del sistema ni la referencia original.
/api/v1/citation-jobs/{id}/cancelCancelar un lote
Programa o ejecuta la cancelación solicitada y devuelve el estado actualizado.
Parámetros de ruta y consulta
| Campo | Tipo | Obligatorio | Descripción |
|---|---|---|---|
| id | UUID | obligatorio | Identificador del recurso que se usará en las siguientes solicitudes. |
Respuesta
200 OK| Campo | Tipo | Obligatorio | Descripción |
|---|---|---|---|
| id | UUID | - | Identificador del recurso que se usará en las siguientes solicitudes. |
| type | string | - | VERIFY_AND_CORRECT or DEDUPLICATE. |
| status | string | - | Programa o ejecuta la cancelación solicitada y devuelve el estado actualizado. |
| totalItems / processedItems | integer | - | Número de registros incluidos en el resultado o trabajo. |
| succeededItems / failedItems | integer | - | Correctos and failed item counters. |
| cancelRequested | boolean | - | Indica si cancellation has been requested. |
| result | object | null | - | Aggregate result when the job completes. |
| errorCode / errorMessage | string | null | - | Job-level failure details, when applicable. |
| createdAt ... updatedAt | ISO-8601 timestamp | - | Job lifecycle timestamps in UTC. |
{
"id": "3f0f7d3c-7033-4b0d-92df-5e8d5ab2e7f6", "type": "VERIFY_AND_CORRECT", "status": "CANCELLED",
"totalItems": 100, "processedItems": 12, "succeededItems": 12, "failedItems": 0, "cancelRequested": true,
"result": null, "errorCode": null, "errorMessage": null, "createdAt": "2026-01-15T10:20:30Z", "startedAt": "2026-01-15T10:20:31Z", "completedAt": "2026-01-15T10:21:02Z", "updatedAt": "2026-01-15T10:21:02Z"
}/api/v1/citation-jobs/{id}/preflightObtener la auditoría de referencias
Devuelve the pre-submission risk summary for a batch job. Each item is classified as BLOCKING, HIGH, REVIEW, LOW, or INFO with a recommended action. The report is derived from persisted verification results and does not re-run providers or consume additional verification quota.
Parámetros de ruta y consulta
| Campo | Tipo | Obligatorio | Descripción |
|---|---|---|---|
| id | UUID | obligatorio | Identificador del recurso que se usará en las siguientes solicitudes. |
Respuesta
200 OK| Campo | Tipo | Obligatorio | Descripción |
|---|---|---|---|
| schemaVersion | integer | - | Actual Reference Audit schema version. Version 2 adds human review state. |
| summary | PreflightSummary | - | Devuelve la clasificación de riesgo, la acción recomendada, el progreso de revisión y el resumen de la auditoría. |
| items | CitationJobItemResponse[] | - | Registra la decisión, nota y hora de la revisión humana sin cambiar el riesgo del sistema ni la referencia original. |
| limitations | string[] | - | Procesa el archivo estructurado y devuelve formato, registros, advertencias y metadatos normalizados. |
{
"schemaVersion": 2,
"product": "CiteWise Reference Audit",
"summary": { "jobId": "3f0f...", "complete": true, "totalReferences": 20, "processedReferences": 20, "verified": 14, "needsReview": 4, "blocking": 2, "reviewed": 12, "pendingReview": 8, "unableToDetermine": 1 },
"items": [{ "index": 0, "riskLevel": "HIGH", "recommendedAction": "REPLACE_IDENTIFIER", "reviewDecision": "MARK_FOR_REVIEW" }],
"limitations": ["Provider availability can affect an individual result."]
}Devuelve los recursos y metadatos del espacio de trabajo actual.
/api/v1/citation-jobs/{id}/preflight/exportExportar la auditoría de referencias
Devuelve la clasificación de riesgo, la acción recomendada, el progreso de revisión y el resumen de la auditoría.
Parámetros de ruta y consulta
| Campo | Tipo | Obligatorio | Descripción |
|---|---|---|---|
| id | UUID | obligatorio | Identificador del recurso que se usará en las siguientes solicitudes. |
| format | string (query) | obligatorio | json, csv, or html. |
Respuesta
200 OK| Campo | Tipo | Obligatorio | Descripción |
|---|---|---|---|
| JSON | application/json | - | Versioned report with summary, enriched items, and limitations. |
| CSV | text/csv; charset=UTF-8 | - | Devuelve la clasificación de riesgo, la acción recomendada, el progreso de revisión y el resumen de la auditoría. |
| HTML | text/html; charset=UTF-8 | - | Archivo de auditoría descargable con riesgo, metadatos clave y campos de revisión humana. |
GET /api/v1/citation-jobs/3f0f.../preflight/export?format=csv
Content-Disposition: attachment; filename="citewise-preflight-3f0f7d3c.csv"Registra la decisión, nota y hora de la revisión humana sin cambiar el riesgo del sistema ni la referencia original.
ESPACIO DE TRABAJO
Gestionar uso y credenciales
Estos endpoints pertenecen al espacio. La consola usa una sesión de Clerk; el backend también acepta claves API, pero el pago requiere una sesión interactiva de Clerk.
/api/v1/console/overviewObtener resumen del espacio
Devuelve the current user, workspace, plan entitlement, monthly reference usage, and admin flag.
Respuesta
200 OK| Campo | Tipo | Obligatorio | Descripción |
|---|---|---|---|
| user | object | - | id, email, displayName, imageUrl, and role. |
| workspace | object | - | id, name, and slug. |
| entitlement | EntitlementSnapshot | - | Plan code, status, monthly allowance, one-time credit balance, throughput, concurrency, and Acceso a la API. |
| referencesUsed | integer | - | Actual monthly reference reservations. |
| admin | boolean | - | Indica si the user has admin privileges. |
{
"user": { "id": "...", "email": "researcher@example.com", "displayName": "Ada", "imageUrl": null, "role": "USER" },
"workspace": { "id": "...", "name": "Ada's workspace", "slug": "ada-workspace" },
"entitlement": { "planCode": "FREE", "subscriptionStatus": "ACTIVE", "monthlyReferences": 10, "creditBalance": 100, "requestsPerMinute": 10, "concurrency": 1, "apiAccess": false, "currentPeriodEnd": null, "cancelAtPeriodEnd": false, "hasSubscription": false, "canCancel": false, "canResume": false },
"referencesUsed": 2, "admin": false
}/api/v1/api-keysListar claves API
Devuelve los recursos y metadatos del espacio de trabajo actual.
Respuesta
200 OK| Campo | Tipo | Obligatorio | Descripción |
|---|---|---|---|
| id / name | UUID / string | - | Identificador del recurso que se usará en las siguientes solicitudes. |
| prefix / last4 | string | - | Safe display prefix and last four secret characters. |
| status | string | - | ACTIVE or REVOKED. |
| createdAt / lastUsedAt / expiresAt | timestamp | null | - | Key lifecycle metadata. |
[
{ "id": "c4c7...", "name": "Production pipeline", "prefix": "cw_live_a1b2c3", "last4": "xYz9", "status": "ACTIVE", "createdAt": "2026-01-15T10:20:30Z", "lastUsedAt": null, "expiresAt": null }
]/api/v1/api-keysCrear una clave API
Crea o registra el recurso solicitado y devuelve su estado actual.
Cuerpo de la solicitud
Tipo de contenido: application/json
| Campo | Tipo | Obligatorio | Descripción |
|---|---|---|---|
| name | string | obligatorio | Legible name, trimmed and limited to 100 characters. |
{
"name": "Production pipeline"
}Respuesta
200 OK| Campo | Tipo | Obligatorio | Descripción |
|---|---|---|---|
| key | ApiKeyView | - | Safe key metadata returned for display. |
| apiKey | string | - | Secreto completo. This is the only response that contains it. |
{
"key": { "id": "c4c7...", "name": "Production pipeline", "prefix": "cw_live_a1b2c3", "last4": "xYz9", "status": "ACTIVE", "createdAt": "2026-01-15T10:20:30Z", "lastUsedAt": null, "expiresAt": null },
"apiKey": "cw_live_a1b2c3_your-secret-value"
}Acceso a la API must be enabled for the workspace. A workspace can have up to 10 active keys. Treat the secret like a password.
/api/v1/api-keys/{id}Eliminar una clave API
Immediately marks a workspace API key as revoked. Existing requests using it will fail authentication.
Parámetros de ruta y consulta
| Campo | Tipo | Obligatorio | Descripción |
|---|---|---|---|
| id | UUID | obligatorio | Identificador del recurso que se usará en las siguientes solicitudes. |
Respuesta
204 No ContentSin cuerpo de respuesta.
The response has no body. Keep the key ID from the list endpoint for revocation workflows.
FACTURACIÓN
Gestionar planes y facturación
La consola usa estos endpoints. Creem es la fuente de verdad para pagos, ciclo de suscripción, métodos de pago y facturas.
/api/v1/billing/subscriptionObtener derechos de suscripción
Devuelve the effective plan and limits for the authenticated workspace, including free-plan defaults and cancellation state.
Respuesta
200 OK| Campo | Tipo | Obligatorio | Descripción |
|---|---|---|---|
| planCode / subscriptionStatus | string | - | Devuelve el estado actual del recurso; consulta la definición del endpoint para los valores. |
| monthlyReferences | integer | - | Cuota mensual de referencias. |
| creditBalance | integer | - | Restantes one-time credits, consumed after the monthly allowance. |
| requestsPerMinute / concurrency | integer | - | Throughput and concurrent execution limits. |
| apiAccess | boolean | - | Indica si workspace API keys are enabled. |
| currentPeriodEnd | timestamp | null | - | Actual billing period end. |
| cancelAtPeriodEnd | boolean | - | Indica si cancellation is scheduled at the end of the current period. |
| currentPeriodStart | timestamp | null | - | Actual billing period start. |
| hasSubscription | boolean | - | Indica si the workspace has a provider-managed paid subscription. |
| canCancel / canResume | boolean | - | Indica si the current subscription state supports the corresponding lifecycle action. |
{
"planCode": "PRO", "subscriptionStatus": "ACTIVE", "monthlyReferences": 500, "creditBalance": 100, "requestsPerMinute": 60, "concurrency": 5, "apiAccess": true,
"currentPeriodEnd": "2026-02-15T00:00:00Z", "cancelAtPeriodEnd": false, "hasSubscription": true, "canCancel": true, "canResume": false
}/api/v1/billing/checkoutCrear una sesión de pago
Devuelve los recursos y metadatos del espacio de trabajo actual.
Cuerpo de la solicitud
Tipo de contenido: application/json
| Campo | Tipo | Obligatorio | Descripción |
|---|---|---|---|
| productKey | string | obligatorio | Configured product key, such as pro-monthly, team-yearly, starter-pack, research-pack, or lab-pack. |
{
"productKey": "pro-monthly"
}Respuesta
200 OK| Campo | Tipo | Obligatorio | Descripción |
|---|---|---|---|
| checkoutId | string | - | Proveedor checkout identifier. |
| checkoutUrl | string | - | Hosted checkout URL. |
{
"checkoutId": "ch_123456",
"checkoutUrl": "https://checkout.creem.io/ch_123456"
}/api/v1/billing/checkout/confirmConfirmar el pago
Devuelve el estado actual del recurso; consulta la definición del endpoint para los valores.
Cuerpo de la solicitud
Tipo de contenido: application/json
| Campo | Tipo | Obligatorio | Descripción |
|---|---|---|---|
| checkoutId | string | obligatorio | Identificador del recurso que se usará en las siguientes solicitudes. |
{
"checkoutId": "chk_123456"
}Respuesta
200 OK| Campo | Tipo | Obligatorio | Descripción |
|---|---|---|---|
| hasSubscription | boolean | - | True when a recurring checkout has been linked successfully. |
| planCode / subscriptionStatus | string | - | The reconciled workspace entitlement. |
{
"planCode": "PRO", "subscriptionStatus": "ACTIVE", "hasSubscription": true, "canCancel": true
}/api/v1/billing/subscription/cancelCancelar una suscripción
Programa o ejecuta la cancelación solicitada y devuelve el estado actualizado.
Cuerpo de la solicitud
Tipo de contenido: application/json
| Campo | Tipo | Obligatorio | Descripción |
|---|---|---|---|
| mode | string (optional) | - | scheduled (default) or immediate. |
{
"mode": "scheduled"
}Respuesta
200 OK| Campo | Tipo | Obligatorio | Descripción |
|---|---|---|---|
| cancelAtPeriodEnd | boolean | - | Programa o ejecuta la cancelación solicitada y devuelve el estado actualizado. |
| currentPeriodEnd | timestamp | null | - | La fecha through which access remains available. |
{
"planCode": "PRO", "subscriptionStatus": "SCHEDULED_CANCEL", "cancelAtPeriodEnd": true,
"currentPeriodEnd": "2026-02-15T00:00:00Z"
}/api/v1/billing/subscription/resumeReanudar una suscripción
Programa o ejecuta la cancelación solicitada y devuelve el estado actualizado.
Respuesta
200 OK| Campo | Tipo | Obligatorio | Descripción |
|---|---|---|---|
| subscriptionStatus | string | - | Usually ACTIVE after a successful resume. |
| cancelAtPeriodEnd | boolean | - | Programa o ejecuta la cancelación solicitada y devuelve el estado actualizado. |
{
"planCode": "PRO", "subscriptionStatus": "ACTIVE", "cancelAtPeriodEnd": false
}/api/v1/billing/portalAbrir el portal de facturación
Crea o registra el recurso solicitado y devuelve su estado actual.
Respuesta
200 OK| Campo | Tipo | Obligatorio | Descripción |
|---|---|---|---|
| customerPortalLink | string | - | Hosted Creem customer portal URL. |
{
"customerPortalLink": "https://creem.io/customer-portal/..."
}Errores
Errores
Integra el control de calidad de citas en tu flujo de investigación: resuelve metadatos, inspecciona evidencias, propone correcciones, formatea estilos y procesa lotes con una API por espacio de trabajo.
| HTTP | Code | Significado |
|---|---|---|
| 400 | INVALID_REFERENCE / UNSUPPORTED_CITATION_STYLE / FUSION_FAILED | La solicitud body is invalid, a obligatorio field is missing, a citation style is unsupported, or evidence fusion could not complete. |
| 400 | INVALID_REQUEST | La solicitud body, path parameter, or obligatorio header is malformed. |
| 401 | UNAUTHENTICATED / API_KEY_INVALID / WEBHOOK_SIGNATURE_INVALID | No valid Clerk JWT or X-API-Key was provided, or a signed webhook request failed verification. |
| 403 | FORBIDDEN / SUBSCRIPTION_REQUIRED | The credential is valid but cannot access this workspace or paid-only feature. |
| 404 | CITATION_NOT_FOUND / JOB_NOT_FOUND | The resource does not exist in the authenticated workspace. |
| 405 | METHOD_NOT_ALLOWED | The HTTP method is not supported by this endpoint. |
| 415 | UNSUPPORTED_MEDIA_TYPE | La solicitud Content-Type is not supported. |
| 429 | QUOTA_EXCEEDED / API_KEY_LIMIT_REACHED / RATE_LIMIT_EXCEEDED / CONCURRENCY_LIMIT_EXCEEDED / SYSTEM_BUSY | The workspace allowance, active-key limit, or processing capacity has been reached. Honor Retry-After when present. |
| 502/503 | BILLING_UNAVAILABLE / PROVIDER_UNAVAILABLE / PROVIDER_TIMEOUT | A downstream billing or scholarly provider is unavailable. Retry with backoff. |
| 500 | DATABASE_ERROR / INTERNAL_ERROR | An unexpected server error. Include traceId when contacting support. |