# List domains

> GET /v1/domains returns your registered domains with their team, Script tag or Agentic crawler mode, wildcard and suspension state, page by page.

Source: https://docs.scriptmonitoring.com/api/domains/list/ · Plan: All plans · Updated 2026-10-13

`GET /v1/domains` lists the domains registered in your organization, or in one team, with a cursor for paging. Pass `domain` to look up one hostname. Needs the `domains:read` scope; any `domains:*` scope can look up a single `domain`. Organization keys see every team; a team key sees its own team only.

With an organization key, for one team:

```shell
curl "https://data.scriptmonitoring.com/v1/domains/?team_id=YOUR_TEAM_ID&limit=50" \
  -H "Authorization: Bearer sm_org_14829305716342_…"
```

With a team key, which always reads its own team:

```shell
curl "https://data.scriptmonitoring.com/v1/domains/?limit=50" \
  -H "Authorization: Bearer sm_team_10937462815530_…"
```

## Which keys work?

| Key | Accepted |
| --- | --- |
| Organization key (`sm_org_…`) | Yes: every team in the organization, or one with `team_id`. |
| Team key (`sm_team_…`) | Yes: its own team only. A `team_id` for any other team gets `404 team_not_found`. |

A missing, mistyped or revoked key, a key whose prefix doesn't match its type, or a key created before the `sm_org_` / `sm_team_` format gets `401` with this body:

```json
{ "error": "unauthorized", "message": "Missing or invalid bearer token." }
```

## Query parameters

| Name | Description |
| --- | --- |
| `team_id` | Restrict to one team. It must belong to the key's organization; with a team key, it can only be the key's own team. |
| `domain` | Exact hostname to look up. |
| `limit` | Page size, 1 to 100 (default 50). |
| `cursor` | The `next_cursor` from the previous page. |

## Response

```json
{
  "data": [
    {
      "id": "...",
      "domain": "shop.example.com",
      "teamId": "14827391650423",
      "managed": true,
      "wildcard": false,
      "suspended": false,
      "createdAt": "..."
    }
  ],
  "next_cursor": null
}
```

`managed` is `true` for a Script tag domain and `false` for an Agentic crawler domain. Errors: `400`, `401`, `403`, `404 team_not_found`, `429`, `503`.

## Related

- [REST API](https://docs.scriptmonitoring.com/api/)
- [Register domains](https://docs.scriptmonitoring.com/api/domains/create/)
