---
title: "List Learnings"
method: GET
path: "/learnings"
tags: ["Learnings"]
---

# List Learnings

`GET /learnings`

List learning records with pagination and optional filters. For a scoped (non-admin) caller with user isolation enabled, results are bound to that user and also include records with no owner (`user_id IS NULL`) — this covers global, agent, team, session, and entity-scoped learnings; passing a `user_id` that differs from the caller is rejected with 403. Admins and unscoped callers see all records (optionally filtered by `user_id`).

## Query parameters

- `learning_type` string, nullable — Filter by learning type
- `user_id` string, nullable — Filter by user ID
- `agent_id` string, nullable — Filter by agent ID
- `team_id` string, nullable — Filter by team ID
- `session_id` string, nullable — Filter by session ID
- `namespace` string, nullable — Filter by namespace
- `entity_id` string, nullable — Filter by entity ID
- `entity_type` string, nullable — Filter by entity type
- `limit` integer — Page size
- `page` integer — 1-indexed page number
- `sort_by` string, nullable — Field to sort by, e.g. `created_at` or `updated_at` (the default). An unrecognised field is ignored (the default ordering is used).
- `sort_order` 'asc' | 'desc'
- `db_id` string, nullable — Database ID to query
- `table` string, nullable — The database table to use (requires db_id)

## Response `200`

Successful Response

- PaginatedResponseLearningResponse
  - `data` LearningResponse[], required — List of items for the current page
    - `learning_id` string, required — Unique identifier for the learning record
    - `learning_type` string, required — Type of learning (e.g. 'user_profile', 'entity_memory')
    - `namespace` string, nullable — Namespace for scoping ('user', 'global', or custom)
    - `user_id` string, nullable — Associated user ID
    - `agent_id` string, nullable — Associated agent ID
    - `team_id` string, nullable — Associated team ID
    - `session_id` string, nullable — Associated session ID
    - `entity_id` string, nullable — Associated entity ID (for entity-specific learnings)
    - `entity_type` string, nullable — Entity type (e.g. 'person', 'company')
    - `content` object, nullable — The learning content payload
    - `metadata` object, nullable — Optional metadata
    - `created_at` integer, nullable — Creation timestamp (Unix epoch seconds)
    - `updated_at` integer, nullable — Last update timestamp (Unix epoch seconds)
  - `meta` PaginationInfo, required
    - `page` integer — Current page number (0-indexed)
    - `limit` integer — Number of items per page
    - `total_pages` integer — Total number of pages
    - `total_count` integer — Total count of items
    - `search_time_ms` number — Search execution time in milliseconds

## Other responses

- `400` — Bad Request
- `401` — Unauthorized
- `404` — Not Found
- `422` — Validation Error
- `500` — Internal Server Error

---

[API](https://skmtc.net/agno/apis/agno-api-reference.md) · [All operations](https://skmtc.net/agno/apis/agno-api-reference/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/agno/agno-api-reference/revisions/5f6149d395d0/schema)
