signals

Remember a scratchpad entry

Upsert a memory keyed on (team, key). Re-using a key updates the existing entry in place. A write carries the entry's whole state, so expires_at is set when passed and cleared when omitted.

post/api/projects/{project_id}/signals/scout/scratchpad/

Request

  • Base URL: https://us.posthog.com
  • URL: https://us.posthog.com/api/projects/{project_id}/signals/scout/scratchpad/
  • Auth: one of:
    • HTTP bearer
    • HTTP bearer

Path parameters

project_idstring required

Project ID of the project you're trying to access. To find the ID of the project, make a call to /api/projects/.

Request body

keystring required

Agent-chosen semantic key, unique per team; re-using a key overwrites the entry in place. Key off the stable identity of what you're tracking — never embed a date, timestamp, or run id (that mints a new row every run and breaks dedupe). For run state/cursors, use one fixed key and keep the timestamp in content.

contentstring required

Prose to write. Read verbatim into future prompts.

run_idstring uuid nullable

Run that authored this memory; persisted as created_by_run_id for lineage. Best-effort — a run_id that is unparseable, or that isn't a run on this project, is dropped rather than rejected, so the memory write is never lost. Omit it and the lineage still lands: a write from a scout sandbox is attributed to that sandbox's own run.

expires_atstring nullable

Optional ISO-8601 expiry for a memory that's only true for a while (a cooldown, a window you're watching). After this time the entry drops out of searches, so you don't have to come back and forget it. Omit for a durable memory — every write sets the whole entry, so omitting it on a later write clears an expiry set earlier. Best-effort — a value that can't be parsed or is already in the past is dropped (the memory stays durable), not rejected, so the memory write is never lost.

Response

Memory entry written or refreshed.

keystring required

Agent-chosen semantic key, unique per team.

contentstring required

Prose content for prompt injection. Blank when the search projected it out (keys_only=true); truncated to a preview when content_max_chars was set.

created_atstring nullable required

ISO-8601 creation timestamp.

updated_atstring nullable required

ISO-8601 last-write timestamp.

expires_atstring nullable

ISO-8601 expiry, or null for a durable memory that stays until it's forgotten.

created_by_run_idstring nullable required

Scout run that wrote this entry, or null when a report-pipeline stage or a human wrote it.

created_by_skillstring nullable

Who created this entry: the canonical skill name of the scout that wrote it (e.g. signals-scout-apm), or the report-pipeline stage that did (pipeline:report-research, pipeline:implementation). Null if human-authored.

created_by_run_urlstring nullable

Relative Tasks UI deep-link to the run that created this entry, or null if the run linkage isn't captured.

Changes

No recorded changes to this operation across all 1 revision of this API.