GET /v1/sites/me
Retrieve metadata about the site that owns the API key making the request. This is the canonical way to resolve the site’s public domain, locale, theme, and high-level customization without having to hardcode them in the consumer.
- URL:
https://api.canverly.com/v1/sites/me - Method:
GET - Auth: Bearer API key
- Required scope:
sites:read - Rate limit: 60 req/min per key
Request
No parameters. The site is inferred from the API key — there is no :id to pass. To inspect a different site, use an API key minted on that site.
Example
curl https://api.canverly.com/v1/sites/me \ -H "Authorization: Bearer ck_live_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"Response
200 OK
{ "id": "01HZX0000000000000000000SITE", "tenant_id": "01HZX0000000000000000TENANT0", "slug": "example-site", "name": "Example Site", "primary_domain": "example.com", "domains": ["example.com", "www.example.com", "example-site.canverly.com"], "locale": "pt-BR", "timezone": "America/Sao_Paulo", "status": "active", "settings": { "theme_base": "minimal", "colors": { "primary": "#0F62FE", "background": "#FFFFFF", "text": "#161616" }, "typography": { "heading_font": "Inter", "body_font": "Inter" }, "layout": { "container_max_width": 1200, "header_variant": "compact" } }, "created_at": "2025-11-02T13:15:00Z", "updated_at": "2026-06-01T09:42:00Z"}Fields
| Field | Type | Description |
|---|---|---|
id | string (ULID) | Site identifier. |
tenant_id | string (ULID) | The owning tenant. |
slug | string | Internal slug used in *.canverly.com subdomains. |
name | string | Human-readable site name. |
primary_domain | string | The canonical domain — use this when building public URLs. |
domains | string[] | All domains that serve this site (including the *.canverly.com fallback). |
locale | string | BCP-47 locale tag. |
timezone | string | IANA timezone. |
status | enum | active | suspended | archived. |
settings | object | Snapshot of the customization JSON (colors, theme_base, layout, typography). Read-only via the public API; edit in admin. |
created_at | string (ISO 8601) | When the site was provisioned. |
updated_at | string (ISO 8601) | Last settings change. |
When to use it
- Bootstrapping a consumer: at startup, fetch
/v1/sites/meonce, cacheprimary_domainandlocale, and use them to construct the verification URL in POST /v1/posts. - Theming integrations: if your tool generates content (e.g. featured-image cards), read
settings.colors.primaryto match the site’s palette. - Health check: a low-cost call that proves the API key is still valid and the site is
active.
Do not poll this endpoint — settings rarely changes. Cache the response for at least 5 minutes; refresh on updated_at change if you need stricter freshness.
Errors
| Status | type slug | When |
|---|---|---|
401 | unauthenticated | Missing/invalid Authorization. |
403 | insufficient-scope | Key lacks sites:read. |
410 | site-archived | The site was archived; the key is effectively dead. |
429 | rate-limited | Exceeded 60 req/min. |