---
title: "The rows of the Paid results CSV export, as JSON"
method: GET
path: "/projects/{project_id}/exports/paid-results"
tags: ["Reports"]
---

# The rows of the Paid results CSV export, as JSON

`GET /projects/{project_id}/exports/paid-results`

## Request

- Base URL: `https://adslighthouse.com/api/v1`
- URL: `https://adslighthouse.com/api/v1/projects/{project_id}/exports/paid-results`
- Auth: HTTP bearer

Returns exactly the rows and columns of the Paid results CSV export for the same window, filters, keywords, segment, domain search, imported study and sort, paged as JSON. visibility is observations where the domain showed at least one ad / observations, with four decimals as in the CSV; it is not impression share. List values are joined with ' | ' as in the CSV. total_rows counts rows of the whole export before paging.

## Path parameters

- `project_id` string, required: The project: its id, its brand domain (for example nike.example) or its exact project or brand name. Unknown or ambiguous references return not_found; call list_projects then.

## Query parameters

- `segment` 'all' | 'affiliate' | 'brand_mention' | 'coupon' | 'lookalike': Segment tab of the Paid results table.
- `domain_contains` string: Keep domains that contain this text, like the domain search box.
- `study_id` string: Only this imported study; an unknown id returns no rows.
- `keywords` union: Searched keyword, or a list of up to 100 combined with OR. Case and extra spaces are ignored.
  - string
  - string[]
- `sort` 'domain' | 'advertiser' | 'ads' | 'keywords' | 'visibility' | 'affiliates' | 'countries' | 'lastFound' | 'policy'
- `direction` 'asc' | 'desc': Defaults to A to Z for text columns and largest first otherwise.
- `range` '7d' | '14d' | '30d' | '12m' | 'custom': Window ending today: 7d, 14d, 30d (default) or 12m. Use custom with from and to for fixed dates.
- `from` string: First local day, YYYY-MM-DD (custom range).
- `to` string: Last local day, YYYY-MM-DD, included in full (custom range).
- `time_zone` string: IANA time zone for day boundaries, such as America/New_York. Defaults to the time zone of the person the credential acts for.
- `engine` union: Search engine, or a list of engines combined with OR.
  - 'google' | 'bing'
  - string[]
- `device` union: Device, or a list combined with OR.
  - 'desktop' | 'mobile'
  - string[]
- `os` union: Operating system. unspecified matches checks that did not pin one. Must fit the chosen device.
  - 'windows' | 'macos' | 'android' | 'ios' | 'unspecified'
  - string[]
- `country` union: ISO 3166-1 alpha-2 country code such as US, or a list.
  - string
  - string[]
- `location` union: Saved location key: code:<location code>, name:<label> or country:<ISO code>. get_project_details lists the keys that have data.
  - string
  - string[]
- `limit` integer: Items per page, 1 to 200.
- `cursor` string: The next_cursor value from the previous page. Omit it for the first page.

## Response `200`

The rows of the Paid results CSV export, as JSON

- object
  - `data` object[], required
    - `domain` string, required
    - `advertiser` string, required: Your saved label, or empty.
    - `ads_analyzed` integer, required
    - `keywords` integer, required
    - `keyword_list` string, required
    - `visibility` string, required
    - `affiliates` integer, required
    - `affiliate_list` string, required
    - `countries` string, required
    - `locations` string, required
    - `segments` string, required
    - `own_domain` boolean, required
    - `first_seen` string, required
    - `last_seen` string, required
    - `google_advertiser_name` string, required: The primary advertiser Google's Ads Transparency Center lists for the domain, when it was looked up (get_advertiser_identity); empty otherwise.
    - `google_verified` union, required: Whether Google verified that advertiser; empty when no identity is on record.
      - boolean
      - ''
  - `next_cursor` string, nullable, required: Pass as cursor to get the next page; null on the last page.
  - `total_rows` integer, required
  - `observations` integer, required
  - `note` string, nullable, required: A caution about sample size or configuration to repeat when reporting results.
  - `window` object, required
    - `from` string, required: First local day included, YYYY-MM-DD.
    - `to` string, required: Last local day included, YYYY-MM-DD.
    - `time_zone` string, required
    - `start` string, required: Inclusive start instant, ISO 8601.
    - `end` string, required: Exclusive end instant, ISO 8601.
  - `request_id` string

## Other responses

- `400`: Invalid parameters, cursor or body.
- `401`: Missing, invalid, expired or revoked credential.
- `403`: The credential lacks the write scope, the plan does not include the API, or the allowance is used up.
- `404`: Unknown project, keyword or run in this account.
- `409`: The idempotency key was already used for a different request.
- `429`: Rate limit reached. Retry after the Retry-After seconds.
- `503`: The requested service or file is temporarily unavailable.

---

[API](https://skmtc.dev/adslighthouse/apis/ads-lighthouse-api.md) · [All operations](https://skmtc.dev/adslighthouse/apis/ads-lighthouse-api/llms.txt) · [OpenAPI document](https://skmtc.dev/adslighthouse/apis/ads-lighthouse-api/revisions/e1a4a40b11a9?raw)
