---
title: "List public assistants"
description: "List public assistants. Needs the assistants:read scope. Request and response shapes come from the OpenAPI description."
canonical: "https://lookio.app/docs/api/public-assistants/list-public-assistants"
updated: "2026-10-29"
---

# List public assistants



```http
GET https://api.lookio.app/v1/public-assistants
```

## Authorizations

- `Authorization` (bearer, in header, required)

## Query parameters

- `q` (`string`, length: `≤ 200 chars`): Words to find in the name or the description.
- `cursor` (`string`, length: `≤ 400 chars`): The `next_cursor` of the previous page, unchanged.
- `limit` (`integer`, range: `1–100`): Number of items to return. Values outside 1-100 are clamped, and the response reports the limit actually applied.

## Response

**200**: List public assistants

- `data` (`object[]`, required)
- `data.id` (`string`, required, pattern: `^ast_[abcdefghjkmnpqrstuvwxyz23456789]{12}$`)
- `data.name` (`string`, required)
- `data.description` (`string`, required)
- `data.publisher` (`string`, required): The name of the workspace that published it.
- `data.published_at` (`string,null`, required)
- `data.own` (`boolean`, required): It belongs to your workspace.
- `data.modes` (`object[]`, required): What a question costs you in each mode.
- `data.modes.id` (`enum<string>`, required, one of: `eco, flash, deep`)
- `data.modes.credits` (`integer`, required)
- `has_more` (`boolean`, required): True when another page follows: pass `next_cursor` back as `cursor`.
- `next_cursor` (`string,null`, required): Pass it back unchanged as `cursor`. Null on the last page.
- `limit` (`integer`, required): The page size actually applied.
- `request_id` (`string`, required)

```json
{
  "data": [
    {
      "id": "ast_66xcnwtzj8vt",
      "name": "German employment law",
      "description": "Answers questions on German employment law from the statutes and the federal court's leading decisions, with citations.",
      "publisher": "Lookio",
      "published_at": "2026-10-29T10:00:00.000Z",
      "own": false,
      "modes": [
        {
          "id": "eco",
          "credits": 10
        },
        {
          "id": "flash",
          "credits": 30
        },
        {
          "id": "deep",
          "credits": 80
        }
      ]
    }
  ],
  "has_more": false,
  "next_cursor": null,
  "request_id": "req_01K9X7M2Q4"
}
```

**400**: Possible codes: invalid_request, unknown_field, invalid_parameter, invalid_cursor

- `error` (`object`, required)
- `error.type` (`string`, required)
- `error.code` (`string`, required)
- `error.message` (`string`, required)
- `error.param` (`string`)
- `error.docs_url` (`string`, required)
- `error.action_url` (`string<uri>`)
- `request_id` (`string`, required)

```json
{
  "error": {
    "type": "<string>",
    "code": "<string>",
    "message": "<string>",
    "param": "<string>",
    "docs_url": "<string>",
    "action_url": "<string>"
  },
  "request_id": "<string>"
}
```

**401**: Possible codes: authentication_required, invalid_api_key, api_key_expired, api_key_revoked, invalid_access_key

- `error` (`object`, required)
- `error.type` (`string`, required)
- `error.code` (`string`, required)
- `error.message` (`string`, required)
- `error.param` (`string`)
- `error.docs_url` (`string`, required)
- `error.action_url` (`string<uri>`)
- `request_id` (`string`, required)

```json
{
  "error": {
    "type": "<string>",
    "code": "<string>",
    "message": "<string>",
    "param": "<string>",
    "docs_url": "<string>",
    "action_url": "<string>"
  },
  "request_id": "<string>"
}
```

**403**: Possible codes: insufficient_scope, feature_not_available, admin_required, permission_denied

- `error` (`object`, required)
- `error.type` (`string`, required)
- `error.code` (`string`, required)
- `error.message` (`string`, required)
- `error.param` (`string`)
- `error.docs_url` (`string`, required)
- `error.action_url` (`string<uri>`)
- `request_id` (`string`, required)

```json
{
  "error": {
    "type": "<string>",
    "code": "<string>",
    "message": "<string>",
    "param": "<string>",
    "docs_url": "<string>",
    "action_url": "<string>"
  },
  "request_id": "<string>"
}
```

**429**: Possible codes: rate_limited

- `error` (`object`, required)
- `error.type` (`string`, required)
- `error.code` (`string`, required)
- `error.message` (`string`, required)
- `error.param` (`string`)
- `error.docs_url` (`string`, required)
- `error.action_url` (`string<uri>`)
- `request_id` (`string`, required)

```json
{
  "error": {
    "type": "<string>",
    "code": "<string>",
    "message": "<string>",
    "param": "<string>",
    "docs_url": "<string>",
    "action_url": "<string>"
  },
  "request_id": "<string>"
}
```

**500**: Possible codes: internal_error

- `error` (`object`, required)
- `error.type` (`string`, required)
- `error.code` (`string`, required)
- `error.message` (`string`, required)
- `error.param` (`string`)
- `error.docs_url` (`string`, required)
- `error.action_url` (`string<uri>`)
- `request_id` (`string`, required)

```json
{
  "error": {
    "type": "<string>",
    "code": "<string>",
    "message": "<string>",
    "param": "<string>",
    "docs_url": "<string>",
    "action_url": "<string>"
  },
  "request_id": "<string>"
}
```

**Example request**

```bash
curl --request GET \
  --url 'https://api.lookio.app/v1/public-assistants' \
  --header 'Authorization: <api-key>'
```
