IonWarp logoIonWarp
Get started
IonWarp Docs
Collections

Learnings

What IonWarp learned about this repo, with an expiry.

Base path /api/v1/learnings on https://ionwarp.com. Authenticate with Authorization: Bearer $DASH_API_KEY and name the project with the Project-ID header. Writes are validated in declared mode; an operation this resource does not declare answers 405 operation_not_supported.

List learnings

GET /api/v1/learnings

curl "https://ionwarp.com/api/v1/learnings" \
  -H "Authorization: Bearer $DASH_API_KEY" \
  -H "Project-ID: pr_acme"
What has IonWarp learned about this repo so far?
data_query {
  "collection": "learnings"
}

Returns a paginated list of learning objects, newest first.

{
  "object": "list",
  "data": [
    {
      "object": "learning",
      "id": "obj_123",
      "learning": "The test suite runs under bun, not jest.",
      "why": "package.json's test script invokes `bun test`; no jest config exists.",
      "created_at": "2026-07-25T12:00:00.000Z",
      "updated_at": "2026-07-25T12:00:00.000Z"
    }
  ],
  "has_more": false,
  "next_cursor": null
}

Parameters

ParameterTypeKindDescription
qstringsearchFree-text search across learning, why.
sortstringsortOne of learned_at; prefix with - to reverse.
limitnumberpageRows to return, 1–100. Defaults to 20.
cursorstringpagenext_cursor from the previous page.

Retrieve a learning

GET /api/v1/learnings/learning-tests-run-under-bun

curl "https://ionwarp.com/api/v1/learnings/learning-tests-run-under-bun" \
  -H "Authorization: Bearer $DASH_API_KEY" \
  -H "Project-ID: pr_acme"
Open the learning {id}
data_get {
  "collection": "learnings",
  "object_id": "learning-tests-run-under-bun"
}

Returns the learning object.

{
  "object": "learning",
  "id": "obj_123",
  "learning": "The test suite runs under bun, not jest.",
  "why": "package.json's test script invokes `bun test`; no jest config exists.",
  "created_at": "2026-07-25T12:00:00.000Z",
  "updated_at": "2026-07-25T12:00:00.000Z"
}

Parameters

ParameterTypeKindDescription
idstringpathThe learning's id or slug.

Append an event to a learning

POST /api/v1/learnings/{id}/events

curl -X POST "https://ionwarp.com/api/v1/learnings/learning-tests-run-under-bun/events" \
  -H "Authorization: Bearer $DASH_API_KEY" \
  -H "Project-ID: pr_acme" \
  -H "Content-Type: application/json" \
  -d '{"event":"Noted by the operator","context":{"source":"api"}}'
Add a note to the learning {id}
data_event {
  "collection": "learnings",
  "object_id": "learning-tests-run-under-bun",
  "event": "Noted by the operator"
}

Returns the appended event object.

{
  "object": "event",
  "id": "evt_123",
  "event": "Noted by the operator"
}

Parameters

FieldTypeRequiredDescription
eventstringyesThe human-readable timeline entry.
contextobjectnoProvenance — source, integration, worker_run_id, …

What comes back (read-only)

Every learning carries the envelope below. The fields under it are computed or stamped by the platform — they are returned, never sent.

FieldTypeDescription
objectstringAlways learning.
idstringStable object id. Also accepted in place of slug on any path.
slugstringURL-safe name, unique within the collection.
created_atstringISO-8601 timestamp of the first write.
updated_atstringISO-8601 timestamp of the most recent write. The cursor sorts on this.
learningstringOne sentence IonWarp now believes about this repository or team.
whystringWhat IonWarp saw that made it believe this.
learned_atstringWhen the learning was recorded (ISO 8601).
forgets_atstringWhen the learning expires and stops being fed to future runs (ISO 8601). A learning is create/forget — it never decays by degrees.

Errors

Failures use { error: { type, code, message, param } }. The full code table is generated at Error Codes.

On this page

IonWarp logoIonWarp

Ready to build? Connect an agent and go — no credit card needed to start.

Get startedSee our plans