---
title: "Recorded changes"
method: GET
path: "/sites/{site}/changes"
tags: ["Changes"]
---

# Recorded changes

`GET /sites/{site}/changes`

## Request

- Base URL: `https://api.onelence.com/v1`
- URL: `https://api.onelence.com/v1/sites/{site}/changes`
- Auth: one of:
  - OAuth 2 (authorization code, authorization URL `https://api.onelence.com/oauth/authorize`, token URL `https://api.onelence.com/oauth/token`, scopes: `decisions:read`)
  - HTTP bearer

Business changes the team recorded on a site (budget, offer, pricing, tracking, creative, campaign, partner, email, social post, launch, TV or radio, outdoor, influencer, press, event), newest first, and whether the period after each can be observed yet. Each row includes the category, end date, picture, link and markets when they were recorded, and the target the change was recorded on. Pass start and end for the changes made in a period.

## Path parameters

- `site` string, required

## Query parameters

- `start` string
- `end` string
- `limit` integer
- `cursor` string

## Response `200`

Success.

- object
  - `object` 'list', required
  - `data` object[], required
    - `object` 'recorded_change', required
    - `id` string, required
    - `label` string, required
    - `occurred_at` string, required
    - `timezone` string, required
    - `target` object, required
      - `kind` 'source' | 'source_family' | 'source_set' | 'portfolio', required
      - `label` string, required
    - `observation_scope` 'target' | 'portfolio', required
    - `affected_sources` string[], required
    - `family` string, nullable, required
    - `category` 'budget_change' | 'campaign_change' | 'creative_change' | 'partner_change' | 'email_campaign' | 'social_post' | 'pricing_change' | 'offer_change' | 'tracking_change' | 'site_launch' | 'tv_radio_ad' | 'outdoor_ad' | 'influencer_campaign' | 'press_coverage' | 'event_sponsorship' | 'other', nullable, required
    - `ends_on` string, nullable, required
    - `image_url` string, nullable, required
    - `link_url` string, nullable, required
    - `markets` string[], required
    - `quantified_change` string, nullable, required
    - `note` string, nullable, required
    - `recorded_at` string, required
    - `observation_state` 'not_eligible' | 'observation_pending' | 'observation_ready' | 'insufficient_evidence' | 'dependency_unavailable', required
  - `has_more` boolean, required
  - `next_cursor` string, nullable, required
  - `note` string, required
  - `unreadable` number, required

## Other responses

- `400`: Invalid input; `error.param` names the field.
- `401`: Missing, expired or revoked token. WWW-Authenticate points to the resource metadata.
- `402`: subscription_required or upgrade_required; the error carries billing_url.
- `403`: insufficient_scope or admin_required.
- `404`: Unknown endpoint, site, source or record.
- `429`: Rate limited. Retry after Retry-After seconds.
- `500`: OneLence could not complete the request.

---

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