Skip to main content
POST
Remember

Authorizations

Authorization
string
header
required

Bearer authentication header of the form Bearer <token>, where <token> is your auth token.

Body

multipart/form-data
data
file[]
labels
string | null

Per-file labels, e.g. ["finance", "people", ""] — the Nth label applies to the Nth uploaded file, one entry per file, an empty entry skips that file. The comma-separated form "finance,people," is accepted equivalently (it is what Swagger UI sends when you type a JSON array here), so labels cannot contain commas unless the client sends real JSON. Stored on each file's data record and returned when listing dataset data. Only supported for normal ingestion — rejected when combined with session_id or content_type.

Example:

""

external_metadata
string | null

JSON array of per-file metadata objects, e.g. [{"source": "crm", "ticket": 42}, null]. Paired positionally like labels: the Nth entry applies to the Nth uploaded file (null or {} skips that file), and one entry per file is required when any is given. Merged into the file's stored external_metadata (your keys win over loader-derived ones; 'node_set' is reserved). Only supported for normal ingestion — rejected when combined with session_id or content_type.

Example:

""

datasetName
string | null

Name of the target dataset (created if it does not exist). Required unless datasetId is provided.

Example:

"default_dataset"

datasetId
Example:

""

session_id
string | null

Session to attribute this memory to (e.g. claude-code-1718000000). When set, the data is stored in the session cache (and bridged into the permanent graph in the background) and the session appears in the sessions dashboard. Leave empty for a direct add+cognify.

Example:

""

node_set
string[] | null

Tags the ingested data with named node sets (e.g. per-agent or per-project groups). Extracted graph nodes are linked to these sets, and recall/search can later be restricted to them via their node_name parameter. Leave empty to skip tagging.

Example:

null

run_in_background
boolean | null
default:false

If true, the request returns immediately (status 'running' with a pipeline_run_id) while ingestion and graph building continue server-side — poll GET /v1/datasets/status to track completion. If false, the request blocks until the knowledge graph is fully built, which can take minutes for large files.

custom_prompt
string | null
default:""

Replaces the default entity-extraction prompt used during graph building. Use it to steer which entities and relationships get extracted (e.g. focus on technical concepts, people, or contracts). Leave empty for the default prompt.

chunk_size
integer | null
default:4096

Maximum tokens per text chunk during ingestion (default: 4096). Each chunk is processed by the LLM separately for entity extraction: larger chunks give more context per extraction but fewer, coarser passes; smaller chunks give finer-grained extraction at higher LLM cost.

chunks_per_batch
integer | null
default:36

Number of chunks processed per cognify task batch (default: 36). Controls ingestion parallelism/throughput; rarely needs changing.

ontology_key
string[] | null

Keys of previously uploaded ontologies (see /v1/ontologies) to ground entity extraction. Leave empty to ingest without an ontology.

Example:
graph_model
string | null

JSON-serialised graph model schema (same format as the cognify endpoint), e.g. {"title": "CompanyGraph", "type": "object", "properties": {...}}. Must include a top-level 'title' key. Leave empty to use the default KnowledgeGraph model — a restrictive schema here can produce an empty graph. Invalid JSON or an unconvertible schema is rejected with 400.

Example:

""

content_type
string | null

Set to 'skills' to ingest SKILL.md files as dataset-scoped Skill nodes, or 'code' to index whole code repositories (pass them via 'repositories') as an architectural code graph through the enola-backed pipeline. Leave empty for normal ingestion.

Example:

""

import_mode
string | null

COGX archive imports only: 'preserve' (default), 'hybrid', or 're-derive'.

Example:

""

skills_text
string | null

content_type='skills' only: inline SKILL.md markdown to ingest without a file upload (no-code path). When set and no files are uploaded, it is written to a temporary SKILL.md and ingested via the normal skills pipeline. Pair with skill_name to control the resulting skill name.

Example:

""

skill_name
string | null

content_type='skills' + skills_text only: name/slug for the inline skill (defaults to 'skill').

Example:

""

repositories
string[] | null

content_type='code' only: repository specs to index — remote git URLs (cloned server-side, shallow) or local directory paths on the server's filesystem (requires ACCEPT_LOCAL_FILE_PATH; useful when the server shares the caller's filesystem). One code graph is built per entry. Combine with run_in_background=true for large repositories and poll GET /v1/datasets/status?pipeline=code_graph_pipeline.

Example:

null

index_vectors
boolean | null
default:false

content_type='code' only: also embed the extracted code facts so semantic/completion retrievers can see them (requires an embedding provider). Default false — the code graph pipeline is deterministic and makes no LLM or embedding calls, and SearchType.CODE uses graph indexes only.

Response

Successful Response

The response is of type Response Remember Api V1 Remember Post · object.