---
title: "Get one site"
method: GET
path: "/v1/sites/{id}"
tags: ["Sites"]
---

# Get one site

`GET /v1/sites/{id}`

## Request

- Base URL: `https://api.feelingsurf.fr`
- URL: `https://api.feelingsurf.fr/v1/sites/{id}`
- Auth: HTTP bearer

## Path parameters

- `id` integer, required

## Response `200`

The site, with full configuration.

- SiteDetail: A website that receives automated visits. Relation-backed settings (geo targeting, blocked domains, actions, traffic sources, labels) are added alongside their write endpoints.
  - `id` integer: Unique identifier.
  - `url` string: The website's URL.
  - `name` string, nullable: Optional user-chosen name.
  - `paused` boolean: Whether the user has paused delivery.
  - `blocked` boolean: Whether the platform has blocked the site (e.g. dead link).
  - `limit_reached` boolean: Whether a configured visit cap has been reached.
  - `devices` object: Device targeting split, as percentages summing to 100.
    - `desktop` integer: Percentage of visits sent to desktop devices.
    - `mobile` integer: Percentage of visits sent to mobile devices.
    - `tablet` integer: Percentage of visits sent to tablet devices.
  - `visit_duration` object: Visit duration range, in seconds.
    - `min_seconds` integer: Shortest visit duration, in seconds.
    - `max_seconds` integer: Longest visit duration, in seconds.
  - `visit_distribution` 'even' | 'asap': How visits are paced — "even" spreads them across the day, "asap" delivers as fast as possible.
  - `limits` object: Visit caps; null means no limit.
    - `hourly` integer: Max visits per hour — always at least 1 (an hourly cap is mandatory).
    - `daily` integer, nullable: Max visits per day; null means no limit.
    - `total` integer, nullable: Max visits in total (lifetime); null means no limit.
  - `schedule` object: Active-hours scheduling.
    - `active_hours_mask` string, nullable: A weekly on/off schedule: a 168-character string, one character per hour (24 hours × 7 days). Each is `1` (active that hour) or `0` (paused). The first character is Monday 00:00 and each next is the following hour, ending Sunday 23:00, in `time_zone`. `null` or all-`1`s means always on; at least one hour must be active, so an all-`0`s mask is rejected.
    - `time_zone` string, nullable: IANA time zone for the active-hours schedule (e.g. "Europe/Paris"); null uses your account timezone.
  - `traffic_quality` object: Traffic quality controls.
    - `low_quality_ips` boolean: Whether low-quality IPs (VPN/proxy/datacenter) may deliver visits to this site.
    - `ipv6` boolean: Whether IPv6 visitors may deliver visits to this site.
  - `browsing` object: Browsing options.
    - `max_sub_windows` integer: How many pop-up windows the visited site may open during a visit.
  - `traffic_sources` integer[]: IDs of assigned traffic sources (resolve via GET /v1/traffic-sources).
  - `labels` integer[]: IDs of assigned labels (resolve via GET /v1/labels).
  - `total_visits` integer: Lifetime visits delivered.
  - `created_at` string, date-time, nullable: When it was created (UTC), or null.
  - `location_targeting` object: Country/continent targeting.
    - `mode` 'include' | 'exclude': Whether the locations list is an allow-list (include) or a block-list (exclude).
    - `locations` object[]: The countries/continents to include or exclude.
      - `type` 'country' | 'continent': Whether code is a country or a continent.
      - `code` string: ISO country code (alpha-2) or continent code, per type.
  - `blocked_domains` object: Domains blocked during visits.
    - `rate` integer: Percentage of visits to which domain blocking applies.
    - `domains` string[]: Hostnames to block (e.g. `ads.example.com`; no scheme or path), one per entry. Up to 10.
  - `actions` object: Auto-actions performed during visits.
    - `window` 'latest' | 'first': Which opened browser window the actions target — the most recent (latest) or the first (first).
    - `items` SiteAction[]: The actions to perform.
      - `type` 'click' | 'click_rss' | 'click_sitemap' | 'scroll' | 'refresh': What the app does — click a link, click an RSS or sitemap link, scroll, or refresh.
      - `ratio` integer: Percentage of visits that perform this action (default 100 = every visit).
      - `element` object: Present for click-type actions.
        - `selection` 'random' | 'first' | 'last', nullable: Which element to click when several match.
        - `type` 'any' | 'internal_link' | 'external_link' | 'link' | 'button', nullable: What to click: any element, a same-domain link (`internal_link`), an off-domain link (`external_link`), any link (`link`), or a button.
        - `url_filter` string, nullable: Only click links whose URL contains this text; ignored when the element type is `button`.
        - `text_filter` string, nullable: Only click elements whose visible text contains this.
  - `cookies` SiteCookie[]: Cookies set before each visit.
    - `name` string, required: Cookie name.
    - `value` string, required: Cookie value.
    - `domain` string, nullable: Domain to set the cookie on (a leading dot is dropped; subdomains are covered either way); null sets it on the visited site's host.
  - `visit_history` object: Recent visit counts.
    - `by_hour` integer[]: Visits per hour over the last 24h, oldest first (last = current hour).
    - `by_day` integer[]: Visits per day over the last 8 days, oldest first (last = today).

## Other responses

- `401`: Missing or invalid API key.
- `403`: The request is not allowed. A banned or disabled account is rejected with `forbidden`; a site setting your plan does not include is rejected with `premium_required`.
- `404`: Resource not found (or not owned by the caller).
- `429`: Too many requests — the per-account, per-minute rate limit was exceeded. Wait the number of seconds given in the `Retry-After` response header, then retry.

---

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