---
title: "List websites this key can read"
method: GET
path: "/websites"
tags: ["Websites"]
---

# List websites this key can read

`GET /websites`

## Request

- Base URL: `https://analytics.flowsery.com/analytics/api/v1`
- URL: `https://analytics.flowsery.com/analytics/api/v1/websites`
- Auth: HTTP bearer

A website key returns just its own website; a workspace token returns every website in the account. Use the returned ids as `websiteId` on the other endpoints.

## Headers

- `X-Workspace-Id` string

## Response `200`

Websites

- WebsitesResponse
  - `status` 'success', required
  - `data` Website[], required
    - `id` string
    - `domain` string
    - `timezone` string
    - `currency` string
    - `logo` string, nullable
    - `kpiColorScheme` string, nullable
    - `kpi` string, nullable
    - `trackingId` string
    - `apiKeyPrefix` string, nullable

## Other responses

- `401`: Missing, invalid, expired or revoked API key or access token. `code: token_issuer_lost_access` means the member who created the API key was deactivated or lost access to the workspace: ask a workspace admin for a new key
- `403`: The credentials are valid but cannot be used here. `code: permission_denied`: the workspace role behind the API key or OAuth sign-in lacks `flowsery.write`; `role`, `keyRole` and `issuerRole` say which role fell short. `code: subscription_required`: the organization plan does not include API access. `code: workspace_access_denied`: `X-Workspace-Id` names a workspace the caller cannot reach, or an API key was sent to a workspace other than its own
- `429`: Rate limit exceeded

---

[API](https://skmtc.dev/flowsery/apis/flowsery-analytics-public-api.md) · [All operations](https://skmtc.dev/flowsery/apis/flowsery-analytics-public-api/llms.txt) · [OpenAPI document](https://skmtc.dev/flowsery/apis/flowsery-analytics-public-api/revisions/8f23583fdf0e?raw)
