get_organic_performance
Google Search performance for a site from Adlyse’s nightly-synced Search Console rows: clicks, impressions, CTR and impressions-weighted average position, grouped by date, page or search query. Organic search only — no cost, no paid clicks.
Search Console settles about three days late; last_data_date is the newest settled day Adlyse holds. Query rows contain Google’s top returned rows and are not guaranteed exhaustive and sum below the site total.
Parameters#
| Name | Type | Required | Default | Description |
|---|---|---|---|---|
start_date | string | yes | YYYY-MM-DD, inclusive | |
end_date | string | yes | YYYY-MM-DD, inclusive | |
site_source_id | string | no | From list_organic_properties; omit for the primary site | |
group_by | string | no | date | date (site totals per day), page, or query (window totals) |
limit | integer | no | 100 | Max rows for page/query grouping (max 1000) |
page_contains | string | no | Page grouping: only URLs containing this text | |
query_contains | string | no | Query grouping: only queries containing this text |
Returns#
{
"status": "ok",
"property": {
"id": "oprop_abc123",
"domain": "example.com",
"gsc_site_url": "sc-domain:example.com"
},
"window": { "from": "2026-08-19", "to": "2026-09-13" },
"group_by": "query",
"rows": [
{
"key": "q:3f9a1c2b7d8e4f10",
"label": "best running shoes",
"date": null,
"clicks": 412,
"impressions": 18230,
"ctr_pct": 2.26,
"avg_position": 6.4,
"days_with_data": 26
}
],
"row_count": 100,
"truncated": true,
"totals": {
"clicks": 7210,
"impressions": 301220,
"ctr_pct": 2.39,
"avg_position": 11.8,
"days_with_data": 26
},
"last_data_date": "2026-09-13",
"source": "adlyse.organic_search@v1"
}status is no_property when the organization has no site source and no_search_console when its site has no Search Console connection; both return empty rows rather than an error.
Errors#
error_type | When |
|---|---|
auth_error | Missing / invalid API key |
not_found | site_source_id is not in your org |
validation_error | Bad dates or an unknown group_by |
Exact filters and pagination#
page_url filters one normalized absolute URL. query filters exact normalized text. Cross-dimensional filters use stored page_query facts; group_by="page_query" returns structured page and query fields. offset and next_offset paginate the stored rows. Always display coverage_notice and truncated; pagination cannot recover rows Google did not disclose. Query-level conversions are unavailable.