---
title: "LinkedIn audience demographics"
method: POST
path: "/api/v1/tools/linkedin_get_audience_insights/execute"
tags: ["LinkedIn Ads"]
---

# LinkedIn audience demographics

`POST /api/v1/tools/linkedin_get_audience_insights/execute`

## Request

- Base URL: `https://adako.ai`
- URL: `https://adako.ai/api/v1/tools/linkedin_get_audience_insights/execute`
- Auth: HTTP bearer

Breaks delivery down by who saw it: job title, industry, seniority, company size, country, job function or company. This is the demographic report LinkedIn is uniquely good at, and the main reason to advertise there.
Use when: deciding whether the targeting actually reached the intended buyer, finding a segment worth its own campaign, or finding one worth excluding. It is the evidence behind every targeting change you propose.
Do not read a segment with a handful of impressions as a signal — LinkedIn reports a long tail of tiny segments and the bottom of the table is noise. Do not treat these as targeting URNs: they are report labels, and a write needs URNs from linkedin_search_targeting.
Returns the segments sorted by spend with impressions, clicks, CTR, leads and cost per lead per segment. LinkedIn ad accounts carry no reporting timezone, so every window here is UTC days.
If the user has not said which dimension, ask — job title and company size lead to different decisions. Do not guess.

## Headers

- `Idempotency-Key` string

## Request body

- object
  - `arguments` object, required
    - `ad_account_id` string: LinkedIn ad account id — the numeric id from Campaign Manager, as a string ("506699162"). Omit it to use the primary account; pass it when the user manages several.
    - `pivot` 'MEMBER_JOB_TITLE' | 'MEMBER_INDUSTRY' | 'MEMBER_SENIORITY' | 'MEMBER_COMPANY_SIZE' | 'MEMBER_COUNTRY_V2' | 'MEMBER_JOB_FUNCTION' | 'MEMBER_COMPANY', required: Which dimension to break delivery down by: MEMBER_JOB_TITLE, MEMBER_INDUSTRY, MEMBER_SENIORITY, MEMBER_COMPANY_SIZE, MEMBER_COUNTRY_V2, MEMBER_JOB_FUNCTION or MEMBER_COMPANY.
    - `campaign_ids` string[]: Limit to these campaigns.
    - `date_range` 'today' | 'yesterday' | 'last_7_days' | 'last_14_days' | 'last_30_days' | 'this_month' | 'last_month': Preset window. The "last N days" ones end yesterday, so no partial day is mixed in. Either this or start_date + end_date, never both.
    - `start_date` string: First day, YYYY-MM-DD. Needs end_date.
    - `end_date` string: Last day, YYYY-MM-DD, inclusive. Needs start_date.
    - `limit` integer: Maximum rows to return (default 100).
    - `raw_data` boolean: Return compact JSON only (no markdown). Use when you will compute on the result.

## Response `200`

The tool ran. A write returns proposal_id and approve_url while the change waits for approval.

- SuccessEnvelope
  - `success` unknown, required
  - `tool` string, required
  - `data` object, required: Machine-readable result.
  - `markdown` string, required: The same result written for a person or a model.
  - `quota` Quota: Task usage for the current billing period.
    - `plan` string
    - `used` integer
    - `limit` integer
    - `period_end` string
    - `upgrade_url` string
  - `proposal_id` string: Present for writes. Nothing changes on the ad platform until it is approved.
  - `approve_url` string: Where a person approves the proposal.
  - `request_id` string, required

## Other responses

- `400`: Invalid arguments, or the ad account could not be resolved.
- `401`: Missing, invalid, revoked or expired API key.
- `402`: Monthly task quota used up, or the plan does not include this tool.
- `403`: The connected ad account lacks the access level this tool needs.
- `404`: Unknown tool name.
- `409`: Not connected, reconnect needed, confirmation required, a proposal already pending or no longer pending, an identical create that failed earlier today (proposal_failed_before), a create that duplicates an approved one (duplicate_create), the ad-account limit of the plan reached (account_limit), or an Idempotency-Key reused with different arguments.
- `429`: Rate limited by Adako or by the ad platform. See Retry-After.
- `500`: Unexpected error inside Adako.
- `502`: The ad platform returned an error.

---

[API](https://skmtc.dev/adako/apis/adako-rest-api.md) · [All operations](https://skmtc.dev/adako/apis/adako-rest-api/llms.txt) · [OpenAPI document](https://skmtc.dev/adako/apis/adako-rest-api/revisions/59ee60d48a56?raw)
