Referencia de la API REST

Todos los endpoints de la API REST de CortexPlus, generados a partir de la especificación OpenAPI publicada. Las descripciones de los campos vienen directamente de la spec, en inglés.

URL base y autenticación

Todos los endpoints viven en https://api.cortexplus.io y reciben y devuelven JSON. Los cuerpos están limitados a 1 MB, salvo las subidas de audio e imagen.

Envía tu clave como Authorization: Bearer cortex_.... Crea una en Claves de API. Los endpoints marcados como sin autenticación sirven para crear una cuenta o iniciar sesión.

Solicitud autenticada
curl -sS https://api.cortexplus.io/v1/auth/me \
  -H 'authorization: Bearer cortex_...'

Cuenta e inicio de sesión

POST /v1/signup Sin autenticación

Create a CortexPlus account.

Create an account or begin signing in. CortexPlus sends an authentication key by email; use the connect operation with that key next.

Cuerpo de la solicitud application/json

NombreTipoDescripción
email *string (email)Email address for the CortexPlus account.
name string
client stringName of the AI platform requesting the connection.

Respuestas

202 Successful response.

NombreTipoDescripción
sent *boolean
expiresInMinutes *integer
POST /v1/connect Sin autenticación

Connect a CortexPlus account.

Redeem the authentication key received by email. Save the returned apiKey in the connector configuration.

Cuerpo de la solicitud application/json

NombreTipoDescripción
key *stringAuthentication key received by email.
client stringName of the AI platform requesting the connection.

Respuestas

200 Successful response.

NombreTipoDescripción
apiKey *string
email *string
name *string
POST /v1/auth/register Sin autenticación

Register an account and start a device session.

Create a CortexPlus account and issue a device token for this app install.

Cuerpo de la solicitud application/json

NombreTipoDescripción
email *string (email)
name string
password *string8–∞ chars
deviceName string
platform string

Respuestas

201 Successful response.

NombreTipoDescripción
deviceToken *stringDevice credential (cxd_…); use it as the bearer token.
user *object
POST /v1/auth/login Sin autenticación

Log in and start a device session.

Log in with email and password and issue a device token for this app install.

Cuerpo de la solicitud application/json

NombreTipoDescripción
email *string (email)
password *string
deviceName string
platform string

Respuestas

200 Successful response.

NombreTipoDescripción
deviceToken *stringDevice credential (cxd_…); use it as the bearer token.
user *object
POST /v1/auth/key Sin autenticación

Request an email authentication key.

Send an authentication key to the account email address.

Cuerpo de la solicitud application/json

NombreTipoDescripción
email *string (email)

Respuestas

202 Successful response.

NombreTipoDescripción
sent *boolean
expiresInMinutes *integer
POST /v1/auth/key/redeem Sin autenticación

Redeem an email authentication key.

Redeem the authentication key received by email and issue a device token for this app install.

Cuerpo de la solicitud application/json

NombreTipoDescripción
key *stringAuthentication key received by email.
deviceName string
platform string

Respuestas

200 Successful response.

NombreTipoDescripción
deviceToken *stringDevice credential (cxd_…); use it as the bearer token.
user *object
GET /v1/auth/me Clave Bearer

Get the current account.

Return the account behind the presented credential.

Respuestas

200 Successful response.

PATCH /v1/auth/me Clave Bearer

Update the current account profile.

Update the account display name and/or language, timezone and geolocation settings.

Cuerpo de la solicitud application/json

NombreTipoDescripción
name string1–100 chars
settings object
settings.language "pt-BR" | "en" | "es"
settings.timezone string1–∞ chars
settings.geolocation booleanRecord location sent with memory captures. · default true

Respuestas

200 Successful response.

POST /v1/auth/password Clave Bearer

Set or change the account password.

Set a password on a passwordless account, or change it when currentPassword is provided. Other device tokens are revoked.

Cuerpo de la solicitud application/json

NombreTipoDescripción
newPassword *string8–∞ chars
currentPassword stringRequired when the account already has a password.

Respuestas

204 Password updated.

GET /v1/auth/devices Clave Bearer

List devices.

List the account’s active device tokens.

Respuestas

200 Successful response.

NombreTipoDescripción
items *object[]
currentDeviceId *string | nullId of the calling device when authenticated with a device token.
DELETE /v1/auth/devices/{id} Clave Bearer

Revoke a device.

Revoke a device token. Use the id current to revoke the device making this call (sign out).

Parámetros

NombreTipoDescripción
id *string · pathDevice id, or the literal current.

Respuestas

204 Device revoked.

Memorias

POST /v1/search Clave Bearer

Search memory.

Search the user’s CortexPlus memory.

Cuerpo de la solicitud application/json

NombreTipoDescripción
query *stringText to search for in memory.
limit integer1–50, default 10

Respuestas

200 Successful response.

NombreTipoDescripción
results *object[]
results[].id *string
results[].title *string
results[].url *string (uri)
results[].text string
POST /v1/recall Clave Bearer

Recall context.

Build context from the user’s CortexPlus memory.

Cuerpo de la solicitud application/json

NombreTipoDescripción
query *stringQuestion to answer from memory.
limit integer1–50, default 10
depth integer0–3, default 1
maxChars integer500–20000, default 6000

Respuestas

200 Successful response.

NombreTipoDescripción
text *string
matches *integer
GET /v1/memories/{id} Clave Bearer

Get a memory.

Retrieve one CortexPlus memory by id.

Parámetros

NombreTipoDescripción
id *string · pathMemory id.

Respuestas

200 Successful response.

NombreTipoDescripción
id *string
title *string
text *string
url *string (uri)
metadata object
metadata.type string
metadata.tags string[]
metadata.createdAt string
metadata.updatedAt string
metadata.client string | null
metadata.status string | null
metadata.memory object
PATCH /v1/memories/{id} Clave Bearer

Update a memory.

Update a memory and return the full node.

Parámetros

NombreTipoDescripción
id *string · pathMemory id.

Cuerpo de la solicitud application/json

NombreTipoDescripción
title string
content string
type string
tags string[]
attributes object

Respuestas

200 Successful response.

DELETE /v1/memories/{id} Clave Bearer

Delete a memory.

Delete one CortexPlus memory by id.

Parámetros

NombreTipoDescripción
id *string · pathMemory id.

Respuestas

204 Memory deleted.

POST /v1/remember Clave Bearer

Remember a note.

Store a note in the user’s CortexPlus memory.

Cuerpo de la solicitud application/json

NombreTipoDescripción
content *stringNote content to store.
title string
tags string[]
type stringdefault "note"

Respuestas

201 Successful response.

NombreTipoDescripción
id *string
title string
POST /v1/uploads Clave Bearer

Create an audio upload.

Create a signed upload URL for an audio memory.

Cuerpo de la solicitud application/json

NombreTipoDescripción
name *stringName of the audio file.
contentType *stringMIME type of the audio file.

Respuestas

200 Successful response.

NombreTipoDescripción
key *string
uploadUrl *string (uri)
expiresIn *integer
GET /v1/memories Clave Bearer

List memories.

List the account’s memories ordered by last update, or search them semantically with q. Returns full nodes.

Parámetros

NombreTipoDescripción
limit integer · query1–100, default 30
offset integer · query≥ 0, default 0
type string · query
tag string[] · queryRepeatable tag filter.
client string · query
q string · querySemantic search query.
mode "semantic" | "text" · querydefault "semantic"

Respuestas

200 Successful response.

NombreTipoDescripción
items *object[]
limit integer
offset integer
POST /v1/memories Clave Bearer

Save a memory.

Classify and save text from a note, task, or reminder. Binary audio is sent to storage and transcribed asynchronously; binary images are described and OCRed asynchronously.

Parámetros

NombreTipoDescripción
Idempotency-Key string · headerClient-generated idempotency key; overrides clientId in the request body or query. · 8–100 chars
clientId string · queryClient id fallback for JSON or binary captures; body clientId takes precedence for JSON, and Idempotency-Key takes precedence over both. · 8–100 chars
capturedAt string (date-time) · queryISO capture time fallback for JSON or binary captures; body capturedAt takes precedence for JSON.
lat number · queryCapture latitude for binary uploads; requires lon. · -90–90
lon number · queryCapture longitude for binary uploads; requires lat. · -180–180
accuracy number · queryOptional capture accuracy in meters for binary uploads. · ≥ 0

Cuerpo de la solicitud application/json, audio/*, image/*

Opción 1

NombreTipoDescripción
text *stringText to classify and save.
tags string[]
via string
location objectCapture coordinates recorded in attributes.location. The backend discards the value when the account geolocation setting is off.
location.lat *number-90–90
location.lon *number-180–180
location.accuracy number≥ 0
location.capturedAt string (date-time)
clientId string8–100 chars
capturedAt string (date-time)

Opción 2

NombreTipoDescripción
key *stringR2 object key from createUpload.
durationSeconds number≥ 0
contentType string
name string
tags string[]
via string
location objectCapture coordinates recorded in attributes.location. The backend discards the value when the account geolocation setting is off.
location.lat *number-90–90
location.lon *number-180–180
location.accuracy number≥ 0
location.capturedAt string (date-time)
clientId string8–100 chars
capturedAt string (date-time)

Opción 3

NombreTipoDescripción
audioBase64 *stringBase64-encoded audio file, up to 25 MB after decoding.
contentType stringAudio MIME type.
name string
durationSeconds number≥ 0
tags string[]
via string
location objectCapture coordinates recorded in attributes.location. The backend discards the value when the account geolocation setting is off.
location.lat *number-90–90
location.lon *number-180–180
location.accuracy number≥ 0
location.capturedAt string (date-time)
clientId string8–100 chars
capturedAt string (date-time)

Respuestas

201 Successful response.

NombreTipoDescripción
id *string
clientId *string | null
duplicate *boolean
type *string
title *string
client *string | null
status *string | null
memory *string | null
review *string | null
resolved *boolean | null
url *string (uri)
GET /v1/tasks Clave Bearer

List tasks.

List open tasks and reminders from CortexPlus.

Parámetros

NombreTipoDescripción
status string · queryTask status to filter by. · default "open"
client string · queryClient name or slug to filter by.
limit integer · queryMaximum number of tasks to return. · 1–50, default 20

Respuestas

200 Successful response.

NombreTipoDescripción
tasks *object[]
tasks[].id *string
tasks[].title *string
tasks[].client *string | null
tasks[].status *string | null
tasks[].dueAt *string | null
tasks[].url *string (uri)

Claves de API y uso

GET /v1/apikeys Clave Bearer

List API keys.

List the account’s API keys.

Respuestas

200 Successful response.

NombreTipoDescripción
items *object[]
POST /v1/apikeys Clave Bearer

Create an API key.

Create an API key. The plaintext key is returned only in this response.

Cuerpo de la solicitud application/json

NombreTipoDescripción
label *string

Respuestas

201 Successful response.

DELETE /v1/apikeys/{id} Clave Bearer

Revoke an API key.

Revoke one API key by id.

Parámetros

NombreTipoDescripción
id *string · pathAPI key id.

Respuestas

204 API key revoked.

GET /v1/usage Clave Bearer

Get usage summary.

Return the account’s usage counters and plan quotas.

Respuestas

200 Successful response.

Cuando algo sale mal

Los fallos responden con { "error": "..." } y un status correspondiente: 401 sin clave, 403 cuando la clave no puede escribir, 400 cuando la solicitud está malformada, 404 para un elemento desconocido, 429 cuando se alcanza el límite de tu plan y 503 cuando la memoria está brevemente inaccesible.

Alcanzar un límite nunca bloquea la lectura — solo pausa la indexación nueva. Puedes subirlo en Facturación o comparar planes en la página de precios.