{
  "meta": {
    "attribution": "Anchor Terminal (https://www.anchorterminal.com)",
    "docs": "https://www.anchorterminal.com/docs/",
    "generatedAt": "2026-10-08",
    "license": "CC-BY-4.0",
    "method": "https://www.anchorterminal.com/benchmark/",
    "methodology": "0.4",
    "openapi": "https://www.anchorterminal.com/openapi.json",
    "preview": false,
    "run": "2026-10-01",
    "runLabel": "October 2026 research run"
  },
  "tool": {
    "slug": "linkedin-marketing-api",
    "name": "LinkedIn Marketing APIs",
    "vendor": "LinkedIn Corporation",
    "vendorUrl": "https://www.linkedin.com",
    "kind": "http-api",
    "category": "advertising",
    "summary": "LinkedIn's advertising APIs for campaign management, performance reporting, matched audiences, conversions and lead sync. Agents call versioned REST endpoints at api.linkedin.com/rest with a member's OAuth token, after LinkedIn approves the developer application.",
    "url": "https://www.anchorterminal.com/tools/linkedin-marketing-api",
    "markdownUrl": "https://www.anchorterminal.com/tools/linkedin-marketing-api.md",
    "slimMarkdownUrl": "https://www.anchorterminal.com/tools/linkedin-marketing-api.min.md",
    "jsonUrl": "https://www.anchorterminal.com/api/v1/tools/linkedin-marketing-api.json",
    "license": "Proprietary service under the LinkedIn API terms of use and the Marketing API terms. The beta Python and JavaScript clients carry LinkedIn's API development software licence",
    "transports": [
      "http"
    ],
    "packages": [
      {
        "registry": "pypi",
        "name": "linkedin-api-client"
      },
      {
        "registry": "npm",
        "name": "linkedin-api-client"
      }
    ],
    "auth": "oauth",
    "authNotes": "Access is by application review. A person creates a LinkedIn Page and a developer application, applies for the Advertising API and completes LinkedIn's vetting. Calls then use a member's three-legged OAuth 2.0 token with scopes such as r_ads, r_ads_reporting and rw_ads. Two-legged OAuth is not available for Marketing APIs. Access tokens last 60 days. The member also needs a role on the ad account, and Development tier limits edits to five ad accounts until LinkedIn approves Standard tier.",
    "pricing": "free",
    "pricingNotes": "No fee for API access was found in the docs or terms, and no price page exists. Ad spend is set by campaign budgets and billed to the ad account. An agent can start without a contract on Development tier, where one test ad account needs no payment details and its campaigns are never served or billed (checked 2026-10-08).",
    "priceSummary": "Free",
    "where": "local",
    "x402": {
      "level": "no",
      "evidence": "No x402, MPP or L402 in the Marketing API documentation or the API terms (checked 2026-10-08).",
      "endpoints": []
    },
    "toolCount": null,
    "popularity": {
      "githubStars": null,
      "npmWeekly": 25354,
      "pypiWeekly": 385632,
      "asOf": "2026-10-08"
    },
    "docsUrl": "https://learn.microsoft.com/en-us/linkedin/marketing/",
    "capabilities": [
      "ads.reporting",
      "ads.campaigns",
      "ads.budgets",
      "ads.audiences",
      "ads.creatives"
    ],
    "tags": [
      "hosted",
      "free",
      "oauth",
      "app-review",
      "versioned",
      "test-account",
      "status-page",
      "bug-bounty",
      "closed-source",
      "python",
      "javascript"
    ],
    "lastRelease": "2026-09-16",
    "graded": true,
    "anchor": {
      "graded": true,
      "score": 62.4,
      "grade": "B",
      "agentReady": false,
      "rank": 304,
      "ranked": true,
      "rankOf": 629,
      "categoryRank": 3,
      "methodology": "0.4",
      "run": "2026-10-01",
      "scores": {
        "ergonomics": 63,
        "maintenance": 64,
        "payments": 30,
        "reliability": 66,
        "schema": 66,
        "security": 66,
        "transparency": 84
      },
      "pending": [
        "performance",
        "tasks"
      ],
      "breakdown": [
        {
          "key": "reliability",
          "name": "Reliability",
          "weight": 16,
          "effectiveWeight": 20,
          "score": 66,
          "points": 13.2,
          "reason": "Read with the hosted rubric, grading the public REST API. Statuspage at linkedin-apistatus.com with incident history back to 2023, covering every LinkedIn API and listing no components (15). No incident since 18 June 2026, so the 90 days to 8 October are clean. The last major entry was API server timeouts for about seven hours on 20 May 2026 (30). The rate-limit page says standard limits are not published and are shown per endpoint in the Developer Portal after a first call. Published numbers are 45 million metric values per 5 minutes and 15,000 elements a response on adAnalytics (6). 429 is documented, 503 and 504 carry advice to retry, and no Retry-After header, backoff schedule or idempotency key was found (5). No SLA found, and the API terms supply the service as is (0). The Advertising API is generally available on version 202609 (10)."
        },
        {
          "key": "performance",
          "name": "Performance",
          "weight": 10,
          "effectiveWeight": 0,
          "pending": true,
          "points": 0,
          "reason": "Pending. Latency is measured per call by our probes, which haven't run yet, so this run doesn't score it. Its weight is shared across the assessed categories until the first probe window closes."
        },
        {
          "key": "schema",
          "name": "Schema \u0026 documentation",
          "weight": 13,
          "effectiveWeight": 16.25,
          "score": 66,
          "points": 10.73,
          "reason": "No OpenAPI specification found. The docs link a public Postman workspace, which needs JavaScript and was not read (5). Every docs page we requested with `Accept: text/markdown` came back as Markdown with front matter. No llms.txt at learn.microsoft.com (8). Reference pages state limits and restrictions per endpoint, with use-case guides and a restricted-uses page (14). Field tables give type, required and enum values, but queries use Rest.li syntax such as `List(urn%3Ali%3AsponsoredAccount%3A...)` and nested targeting criteria (11). curl and HTTP samples on each method, error tables per endpoint and a structured error schema on three resources (13). Monthly versions selected by header and a dated changelog (15)."
        },
        {
          "key": "ergonomics",
          "name": "Agent ergonomics",
          "weight": 13,
          "effectiveWeight": 16.25,
          "score": 63,
          "points": 10.24,
          "reason": "Field projections with `fields=` and a `fields` list on adAnalytics size responses (20). Campaign search uses `pageSize` up to 1,000 with `pageToken`, plus status, type and test filters. adAnalytics stops at 15,000 elements (18). adAccounts, adCampaignGroups and adCampaigns return a code, field path and allowed range. Other endpoints return message, serviceErrorCode and status only (14). No idempotency key found. DRAFT status, a test ad account and `versionTag` reduce the cost of a wrong write, and Conversions API events are deduplicated by event ID (6). Every call needs two extra headers and Rest.li query encoding, and the official Python and JavaScript clients are beta, last released in 2023 (5)."
        },
        {
          "key": "security",
          "name": "Security \u0026 auth",
          "weight": 14,
          "effectiveWeight": 17.5,
          "score": 66,
          "points": 11.55,
          "reason": "Three-legged OAuth 2.0 only, with scopes per product such as r_ads, r_ads_reporting, rw_ads, rw_dmp_segments and rw_conversions. Access tokens last 60 days, refresh tokens 365, a member can revoke them, and a token introspection endpoint exists. The docs tell developers not to pass tokens in URLs (26). Read scopes are separate from rw_ads, the VIEWER role is read-only even with rw_ads, and Development tier limits edits to five ad accounts. No confirmation step for writes (16). Campaign data is mostly the advertiser's own, lead form responses are written by members, and no prompt-injection guidance was found (5). Entities carry created and last-modified times and the Developer Portal shows usage per endpoint. No audit log API found (5). security.txt names a HackerOne programme and has no Expires field. The DPA promises an annual SOC report and an ISO 27001 mapping on request. The HackerOne page needs JavaScript and was not read (14)."
        },
        {
          "key": "payments",
          "name": "Payments \u0026 pricing",
          "weight": 10,
          "effectiveWeight": 12.5,
          "score": 30,
          "points": 3.75,
          "reason": "No x402, MPP or L402 (0). No fee for API access appears in the docs, the API terms or the Marketing API terms, and no page states a price or says the API is free. Ad spend is set by campaign budgets and billed to the ad account (10). A developer application costs nothing and a test ad account needs no card or payment details (20). A person has to create a LinkedIn Page and a developer application, apply for the product and give OAuth consent in a browser (0)."
        },
        {
          "key": "tasks",
          "name": "Task success",
          "weight": 10,
          "effectiveWeight": 0,
          "pending": true,
          "points": 0,
          "reason": "Pending. Task success needs the category task suites run through each tool, which haven't run yet, so this run doesn't score it. Its weight is shared across the assessed categories until then. A data provider's data-quality score is published on its listing now and becomes half of this category when it's scored."
        },
        {
          "key": "maintenance",
          "name": "Maintenance \u0026 community",
          "weight": 7,
          "effectiveWeight": 8.75,
          "score": 64,
          "points": 5.6,
          "reason": "Version 202609 is the latest and the changelog page is dated 16 September 2026 (30). Versions 202607, 202608 and 202609 fall inside the last 90 days (20). Closed API with a dated changelog, a support ticket form and a help assistant. Standard tier reviews can take up to 30 business days (9). The official Python and JavaScript clients are marked beta. PyPI's newest is 0.3.0 from 29 June 2023 and npm's is 0.3.0 (3). Both client repositories have CI workflows, with last commits in November 2023 and March 2023 (2)."
        },
        {
          "key": "transparency",
          "name": "Transparency \u0026 trust",
          "weight": 7,
          "effectiveWeight": 8.75,
          "score": 84,
          "points": 7.35,
          "note": "editorial 74, provenance 94",
          "reason": "Closed API under the API terms of use (13 December 2022) and the Marketing API terms (25 July 2025), naming LinkedIn Corporation or LinkedIn Ireland Unlimited Company by region. The clients carry LinkedIn's own software licence (15). Privacy policy effective 3 November 2025, a DPA with 48-hour breach notice, a table of storage periods for API data, and reporting retention of ten years for performance data and two for demographics. The privacy policy gives no fixed retention periods (22). Each monthly version is supported for at least a year with a sunset date published, and the terms promise 30 days' notice before an API is discontinued, with security and legal exceptions (20). Subprocessor list dated 25 August 2026 with corporate locations (17)."
        }
      ],
      "assessment": {
        "date": "2026-10-08",
        "basis": "public evidence",
        "confidence": "medium",
        "notes": {
          "ergonomics": "Field projections with `fields=` and a `fields` list on adAnalytics size responses (20). Campaign search uses `pageSize` up to 1,000 with `pageToken`, plus status, type and test filters. adAnalytics stops at 15,000 elements (18). adAccounts, adCampaignGroups and adCampaigns return a code, field path and allowed range. Other endpoints return message, serviceErrorCode and status only (14). No idempotency key found. DRAFT status, a test ad account and `versionTag` reduce the cost of a wrong write, and Conversions API events are deduplicated by event ID (6). Every call needs two extra headers and Rest.li query encoding, and the official Python and JavaScript clients are beta, last released in 2023 (5).",
          "maintenance": "Version 202609 is the latest and the changelog page is dated 16 September 2026 (30). Versions 202607, 202608 and 202609 fall inside the last 90 days (20). Closed API with a dated changelog, a support ticket form and a help assistant. Standard tier reviews can take up to 30 business days (9). The official Python and JavaScript clients are marked beta. PyPI's newest is 0.3.0 from 29 June 2023 and npm's is 0.3.0 (3). Both client repositories have CI workflows, with last commits in November 2023 and March 2023 (2).",
          "payments": "No x402, MPP or L402 (0). No fee for API access appears in the docs, the API terms or the Marketing API terms, and no page states a price or says the API is free. Ad spend is set by campaign budgets and billed to the ad account (10). A developer application costs nothing and a test ad account needs no card or payment details (20). A person has to create a LinkedIn Page and a developer application, apply for the product and give OAuth consent in a browser (0).",
          "reliability": "Read with the hosted rubric, grading the public REST API. Statuspage at linkedin-apistatus.com with incident history back to 2023, covering every LinkedIn API and listing no components (15). No incident since 18 June 2026, so the 90 days to 8 October are clean. The last major entry was API server timeouts for about seven hours on 20 May 2026 (30). The rate-limit page says standard limits are not published and are shown per endpoint in the Developer Portal after a first call. Published numbers are 45 million metric values per 5 minutes and 15,000 elements a response on adAnalytics (6). 429 is documented, 503 and 504 carry advice to retry, and no Retry-After header, backoff schedule or idempotency key was found (5). No SLA found, and the API terms supply the service as is (0). The Advertising API is generally available on version 202609 (10).",
          "schema": "No OpenAPI specification found. The docs link a public Postman workspace, which needs JavaScript and was not read (5). Every docs page we requested with `Accept: text/markdown` came back as Markdown with front matter. No llms.txt at learn.microsoft.com (8). Reference pages state limits and restrictions per endpoint, with use-case guides and a restricted-uses page (14). Field tables give type, required and enum values, but queries use Rest.li syntax such as `List(urn%3Ali%3AsponsoredAccount%3A...)` and nested targeting criteria (11). curl and HTTP samples on each method, error tables per endpoint and a structured error schema on three resources (13). Monthly versions selected by header and a dated changelog (15).",
          "security": "Three-legged OAuth 2.0 only, with scopes per product such as r_ads, r_ads_reporting, rw_ads, rw_dmp_segments and rw_conversions. Access tokens last 60 days, refresh tokens 365, a member can revoke them, and a token introspection endpoint exists. The docs tell developers not to pass tokens in URLs (26). Read scopes are separate from rw_ads, the VIEWER role is read-only even with rw_ads, and Development tier limits edits to five ad accounts. No confirmation step for writes (16). Campaign data is mostly the advertiser's own, lead form responses are written by members, and no prompt-injection guidance was found (5). Entities carry created and last-modified times and the Developer Portal shows usage per endpoint. No audit log API found (5). security.txt names a HackerOne programme and has no Expires field. The DPA promises an annual SOC report and an ISO 27001 mapping on request. The HackerOne page needs JavaScript and was not read (14).",
          "transparency": "Closed API under the API terms of use (13 December 2022) and the Marketing API terms (25 July 2025), naming LinkedIn Corporation or LinkedIn Ireland Unlimited Company by region. The clients carry LinkedIn's own software licence (15). Privacy policy effective 3 November 2025, a DPA with 48-hour breach notice, a table of storage periods for API data, and reporting retention of ten years for performance data and two for demographics. The privacy policy gives no fixed retention periods (22). Each monthly version is supported for at least a year with a sunset date published, and the terms promise 30 days' notice before an API is discontinued, with security and legal exceptions (20). Subprocessor list dated 25 August 2026 with corporate locations (17)."
        },
        "sources": [
          {
            "what": "Marketing API hub",
            "url": "https://learn.microsoft.com/en-us/linkedin/marketing/",
            "seen": "2026-10-08"
          },
          {
            "what": "access tiers, products and scopes",
            "url": "https://learn.microsoft.com/en-us/linkedin/marketing/increasing-access",
            "seen": "2026-10-08"
          },
          {
            "what": "quick start and access steps",
            "url": "https://learn.microsoft.com/en-us/linkedin/marketing/quick-start",
            "seen": "2026-10-08"
          },
          {
            "what": "versioning policy",
            "url": "https://learn.microsoft.com/en-us/linkedin/marketing/versioning",
            "seen": "2026-10-08"
          },
          {
            "what": "changelog",
            "url": "https://learn.microsoft.com/en-us/linkedin/marketing/integrations/recent-changes",
            "seen": "2026-10-08"
          },
          {
            "what": "version sunset table",
            "url": "https://learn.microsoft.com/en-us/linkedin/marketing/integrations/migrations",
            "seen": "2026-10-08"
          },
          {
            "what": "rate limits",
            "url": "https://learn.microsoft.com/en-us/linkedin/shared/api-guide/concepts/rate-limits",
            "seen": "2026-10-08"
          },
          {
            "what": "error handling",
            "url": "https://learn.microsoft.com/en-us/linkedin/shared/api-guide/concepts/error-handling",
            "seen": "2026-10-08"
          },
          {
            "what": "structured marketing error responses",
            "url": "https://learn.microsoft.com/en-us/linkedin/marketing/error-responses",
            "seen": "2026-10-08"
          },
          {
            "what": "campaigns reference",
            "url": "https://learn.microsoft.com/en-us/linkedin/marketing/integrations/ads/account-structure/create-and-manage-campaigns",
            "seen": "2026-10-08"
          },
          {
            "what": "ad accounts and test ad accounts",
            "url": "https://learn.microsoft.com/en-us/linkedin/marketing/integrations/ads/account-structure/create-and-manage-accounts",
            "seen": "2026-10-08"
          },
          {
            "what": "ad account user roles",
            "url": "https://learn.microsoft.com/en-us/linkedin/marketing/integrations/ads/account-structure/create-and-manage-account-users",
            "seen": "2026-10-08"
          },
          {
            "what": "reporting reference, limits and retention",
            "url": "https://learn.microsoft.com/en-us/linkedin/marketing/integrations/ads-reporting/ads-reporting",
            "seen": "2026-10-08"
          },
          {
            "what": "authorisation code flow",
            "url": "https://learn.microsoft.com/en-us/linkedin/shared/authentication/authorization-code-flow",
            "seen": "2026-10-08"
          },
          {
            "what": "programmatic refresh tokens",
            "url": "https://learn.microsoft.com/en-us/linkedin/shared/authentication/programmatic-refresh-tokens",
            "seen": "2026-10-08"
          },
          {
            "what": "breaking change policy",
            "url": "https://learn.microsoft.com/en-us/linkedin/shared/breaking-change-policy",
            "seen": "2026-10-08"
          },
          {
            "what": "partner support guide",
            "url": "https://learn.microsoft.com/en-us/linkedin/shared/linkedin-api-partner-support-guide",
            "seen": "2026-10-08"
          },
          {
            "what": "data storage requirements",
            "url": "https://learn.microsoft.com/en-us/linkedin/marketing/data-storage-requirements",
            "seen": "2026-10-08"
          },
          {
            "what": "status page incidents",
            "url": "https://www.linkedin-apistatus.com/api/v2/incidents.json",
            "seen": "2026-10-08"
          },
          {
            "what": "API terms of use",
            "url": "https://www.linkedin.com/legal/l/api-terms-of-use",
            "seen": "2026-10-08"
          },
          {
            "what": "Marketing API terms",
            "url": "https://www.linkedin.com/legal/l/marketing-api-terms",
            "seen": "2026-10-08"
          },
          {
            "what": "privacy policy",
            "url": "https://www.linkedin.com/legal/privacy-policy",
            "seen": "2026-10-08"
          },
          {
            "what": "data processing agreement",
            "url": "https://www.linkedin.com/legal/l/dpa",
            "seen": "2026-10-08"
          },
          {
            "what": "subprocessor list",
            "url": "https://www.linkedin.com/legal/l/customer-subprocessors",
            "seen": "2026-10-08"
          },
          {
            "what": "security.txt",
            "url": "https://www.linkedin.com/.well-known/security.txt",
            "seen": "2026-10-08"
          },
          {
            "what": "Python client repository",
            "url": "https://github.com/linkedin-developers/linkedin-api-python-client",
            "seen": "2026-10-08"
          },
          {
            "what": "JavaScript client repository",
            "url": "https://github.com/linkedin-developers/linkedin-api-js-client",
            "seen": "2026-10-08"
          }
        ],
        "openQuestions": [
          "unchecked: the HackerOne programme page (JavaScript only), so bounty terms and scope were not read",
          "unchecked: the Postman workspace contents (JavaScript only), so whether the collections cover every endpoint is not established",
          "unchecked: the developer product catalogue and the Developer Portal's rate-limit figures, which need a signed-in app",
          "Whether LinkedIn holds SOC 2 or ISO 27001 certification for Marketing Solutions. The DPA mentions an annual SOC report and an ISO 27001 mapping on request, and no public trust page was read",
          "The release date of each monthly version is inferred from the changelog page date (16 September 2026) and the sunset dates, not stated per version",
          "Whether an official MCP server or OpenAPI specification exists outside the pages reviewed. None was found",
          "Whether API access is free under every tier. No fee was found, and no page states it"
        ]
      },
      "negative": 0,
      "verdict": "Monthly API versions are each supported for at least a year, with dated sunsets and a changelog, and a test ad account lets an agent create campaigns that are never served or billed. Access needs LinkedIn's approval and a member's OAuth consent, standard rate limits are not published, and no OpenAPI specification was found.",
      "bestFor": "An agent that reports on and manages LinkedIn campaigns for accounts its operator administers, especially read-only reporting, which has no account limit on Development tier.",
      "strengths": [
        "Monthly versions (latest 202609) each supported for at least one year, with a sunset date per version on the migrations page",
        "A test ad account, created through the API with no payment details, holds campaigns and creatives that are never served or billed",
        "Separate read and write scopes (r_ads, r_ads_reporting, rw_ads), and the VIEWER account role stays read-only even with rw_ads",
        "Structured validation errors with a code, field path and allowed value on adAccounts, adCampaignGroups and adCampaigns",
        "Field projections and cursor pagination (pageSize up to 1,000) on campaign search, and a `fields` parameter on adAnalytics"
      ],
      "weaknesses": [
        "Standard rate limits are not published. An app sees its limit in the Developer Portal only after calling the endpoint",
        "No OpenAPI specification, llms.txt or MCP server was found. The contract is reference pages and a Postman workspace",
        "Access needs a LinkedIn Page, an approved developer application and member consent. Standard tier review can take up to 30 business days",
        "No idempotency keys or Retry-After header were found in the reviewed documentation",
        "The official Python and JavaScript clients are marked beta and were last released in 2023"
      ],
      "agentNotes": [
        "Send `Linkedin-Version: YYYYMM` and `X-Restli-Protocol-Version: 2.0.0` on every call. A missing or sunset version returns an error (426 for a deprecated one)",
        "Create one test ad account with `\"test\": true` and build there first. Its creatives are auto-rejected and never billed, and it returns no reporting data",
        "Create campaigns as DRAFT or PAUSED and check `servingStatuses` before activating. Some validation is postponed until activation",
        "Pass `fields=` on adAnalytics. Responses stop at 15,000 elements and the endpoint throttles at 45 million metric values per 5 minutes",
        "On Development tier, map each ad account to the app in the Developer Portal. Edits are limited to five accounts"
      ],
      "metrics": {
        "kind": "remote",
        "measured": false
      },
      "reviewCount": 0,
      "avgRating": 0,
      "history": [
        {
          "basis": "public evidence",
          "confidence": "medium",
          "grade": "B",
          "methodology": "0.4",
          "pending": [
            "performance",
            "tasks"
          ],
          "run": "2026-10-01",
          "runLabel": "October 2026 research run",
          "score": 62.4
        }
      ],
      "editorialScores": {
        "ergonomics": 63,
        "maintenance": 64,
        "payments": 30,
        "reliability": 66,
        "schema": 66,
        "security": 66,
        "transparency": 74
      },
      "provenanceScore": 94
    },
    "connect": {
      "http": "curl -X GET 'https://api.linkedin.com/rest/adAnalytics?accounts=List(urn%3Ali%3AsponsoredAccount%3A511183580)\u0026dateRange=(start:(day:28,month:7,year:2019))\u0026pivot=(MEMBER_COUNTRY_V2)\u0026q=analytics\u0026timeGranularity=ALL\u0026fields=impressions,pivotValues' \\\n  -H 'Authorization: Bearer {INSERT_TOKEN}' \\\n  -H 'Linkedin-Version: 202609' \\\n  -H 'X-Restli-Protocol-Version: 2.0.0'"
    },
    "letme": {
      "capability": "https://letme.dev/ads.reporting",
      "tool": "https://letme.dev/linkedin-marketing-api"
    },
    "notable": [
      "Each monthly version is supported for at least one year, and the migrations page lists a sunset date for every version back to 2022 (https://learn.microsoft.com/en-us/linkedin/marketing/integrations/migrations)",
      "The rate-limit page says standard limits are not published in documentation and are shown in the Developer Portal after one call to an endpoint (https://learn.microsoft.com/en-us/linkedin/shared/api-guide/concepts/rate-limits)",
      "A test ad account is created with `\"test\": true`, needs no payment information, and its creatives are never served (https://learn.microsoft.com/en-us/linkedin/marketing/integrations/ads/account-structure/create-and-manage-accounts)",
      "Advertising API Development tier allows reads on any administered account, one test ad account and edits on up to five accounts. Standard tier is requested by support ticket with a demo video (https://learn.microsoft.com/en-us/linkedin/marketing/increasing-access)",
      "adAnalytics throttles at 45 million metric values per 5 minutes and returns at most 15,000 elements (https://learn.microsoft.com/en-us/linkedin/marketing/integrations/ads-reporting/ads-reporting)",
      "The status page lists no incident between 18 June and 8 October 2026. The last major one was API server timeouts on 20 May 2026 (https://www.linkedin-apistatus.com/api/v2/incidents.json)"
    ],
    "area": "communication",
    "details": [
      {
        "label": "Surface graded",
        "value": "The public REST API at https://api.linkedin.com/rest (Rest.li protocol 2.0.0). No official MCP server or OpenAPI specification was found"
      },
      {
        "label": "Products",
        "value": "Advertising API (campaign management and reporting), Matched Audiences, Conversions, Lead Sync, Events Management and Community Management, open to approved developers. Audience Insights and Media Planning are restricted. Company Intelligence is closed to new applications"
      },
      {
        "label": "Access",
        "value": "A LinkedIn Page, a developer application and an approved product application. Advertising API starts on Development tier (read any administered account, one test ad account, edits on up to five accounts). Standard tier is requested by support ticket with a demo video, and review can take up to 30 business days"
      },
      {
        "label": "Credentials",
        "value": "Three-legged OAuth 2.0 only. Scopes include r_ads, r_ads_reporting, rw_ads, rw_dmp_segments and rw_conversions. Access tokens last 60 days. Programmatic refresh tokens (365 days) are enabled for a limited set of partners"
      },
      {
        "label": "Account roles",
        "value": "ACCOUNT_BILLING_ADMIN, ACCOUNT_MANAGER, CAMPAIGN_MANAGER, CREATIVE_MANAGER and VIEWER, which is read-only even with rw_ads"
      },
      {
        "label": "Versioning",
        "value": "Monthly versions named YYYYMM in the `Linkedin-Version` header, latest 202609. Each is supported for at least one year. 202510 sunsets on 15 October 2026 and 202609 on 15 September 2027"
      },
      {
        "label": "Rate limits",
        "value": "Daily per application and per member, reset at midnight UTC. Standard limits are not published and appear in the Developer Portal's Analytics tab after one call to the endpoint. adAnalytics allows 45 million metric values per 5 minutes and 15,000 elements a response"
      },
      {
        "label": "Test mode",
        "value": "One test ad account per developer application, created with `\"test\": true` on POST /adAccounts. Creatives are never served or billed and are auto-rejected in review. No reporting data and no audience segment upload"
      },
      {
        "label": "Checks before spend",
        "value": "Campaigns can be created as DRAFT or PAUSED. The API validates fields by objective type, returns `servingStatuses` holds, and needs an audience of at least 300 members. Creatives go through review on activation"
      },
      {
        "label": "Reporting",
        "value": "adAnalytics with pivots by account, campaign, creative and member demographics. Performance metrics are near real time, demographic metrics lag 12 to 24 hours and video watch time up to 48. Performance data is kept ten years, demographics two"
      },
      {
        "label": "Errors",
        "value": "message, serviceErrorCode and status on all endpoints. adAccounts, adCampaignGroups and adCampaigns add `code`, `errorDetailType` and `errorDetails` with field paths and allowed values"
      },
      {
        "label": "Clients",
        "value": "linkedin-api-client on PyPI (0.3.0, 29 June 2023) and npm (0.3.0), both marked beta, under LinkedIn's API development software licence"
      },
      {
        "label": "Status",
        "value": "https://www.linkedin-apistatus.com on Statuspage, shared by all LinkedIn APIs, no components listed. Latest incident 18 June 2026"
      },
      {
        "label": "Data rules",
        "value": "The data storage page caps how long API data may be kept, for example one year for ad account admin and reporting data and 24-hour caching for other members' profile data"
      }
    ],
    "provenance": {
      "legalEntity": "LinkedIn Corporation",
      "domain": "linkedin.com",
      "domainRegistered": "2002-11-02",
      "endpointOnVendorDomain": true,
      "terms": "https://www.linkedin.com/legal/l/api-terms-of-use",
      "privacy": "https://www.linkedin.com/legal/privacy-policy",
      "statusPage": "https://www.linkedin-apistatus.com",
      "changelog": "https://learn.microsoft.com/en-us/linkedin/marketing/integrations/recent-changes",
      "securityTxt": "valid",
      "checked": "2026-10-08",
      "notes": [
        "The API terms of use (last revised 13 December 2022) contract with LinkedIn Corporation, 1000 West Maude Avenue, Sunnyvale, California, or with LinkedIn Ireland Unlimited Company for developers in the Designated Countries.",
        "The Marketing API terms at https://www.linkedin.com/legal/l/marketing-api-terms were last revised on 25 July 2025.",
        "API calls go to https://api.linkedin.com/rest. The documentation is hosted by Microsoft at learn.microsoft.com/en-us/linkedin.",
        "www.linkedin.com/.well-known/security.txt has two Contact lines, a Canonical line and a Policy line pointing to hackerone.com/linkedin, and no Expires field.",
        "RDAP for linkedin.com gives a registration date of 2002-11-02."
      ],
      "score": 94,
      "checks": [
        {
          "check": "Legal entity named",
          "value": "LinkedIn Corporation",
          "points": 20,
          "max": 20,
          "state": "ok"
        },
        {
          "check": "Domain age",
          "value": "linkedin.com, registered 2002-11-02 (23 years)",
          "points": 15,
          "max": 15,
          "state": "ok"
        },
        {
          "check": "Endpoint on the vendor's domain",
          "value": "linkedin.com",
          "points": 15,
          "max": 15,
          "state": "ok"
        },
        {
          "check": "Terms of service",
          "value": "published, but our reader couldn't read it",
          "points": 7,
          "max": 10,
          "state": "part"
        },
        {
          "check": "Privacy policy",
          "value": "published, but our reader couldn't read it",
          "points": 7,
          "max": 10,
          "state": "part"
        },
        {
          "check": "Status page",
          "value": "www.linkedin-apistatus.com",
          "points": 10,
          "max": 10,
          "state": "ok"
        },
        {
          "check": "Changelog",
          "value": "published",
          "points": 10,
          "max": 10,
          "state": "ok"
        },
        {
          "check": "security.txt",
          "value": "valid",
          "points": 10,
          "max": 10,
          "state": "ok"
        }
      ],
      "policies": [
        {
          "kind": "terms",
          "url": "https://www.linkedin.com/legal/l/api-terms-of-use",
          "state": "unreadable",
          "reason": "robots.txt asks readers like ours not to fetch it",
          "readAt": "2026-10-08",
          "points": 7,
          "max": 10
        },
        {
          "kind": "privacy",
          "url": "https://www.linkedin.com/legal/privacy-policy",
          "state": "unreadable",
          "reason": "robots.txt asks readers like ours not to fetch it",
          "readAt": "2026-10-08",
          "points": 7,
          "max": 10
        }
      ]
    },
    "pageJsonUrl": "https://www.anchorterminal.com/tools/linkedin-marketing-api.json",
    "live": {
      "slug": "linkedin-marketing-api",
      "vendorStatus": {
        "page": "https://www.linkedin-apistatus.com",
        "indicator": "none",
        "summary": "All Systems Operational",
        "checkedAt": "2026-10-08T18:22:06.797969043Z"
      },
      "versions": [
        {
          "registry": "npm",
          "name": "linkedin-api-client",
          "version": "0.3.0",
          "seenAt": "2026-10-08T16:18:57.594437926Z"
        },
        {
          "registry": "pypi",
          "name": "linkedin-api-client",
          "version": "0.3.0",
          "released": "2023-06-29",
          "seenAt": "2026-10-08T16:18:55.599903721Z"
        }
      ],
      "npmWeekly": 25354,
      "pypiWeekly": 385632,
      "securityTxt": {
        "url": "https://linkedin.com/.well-known/security.txt",
        "state": "none",
        "checkedAt": "2026-10-08T15:38:54.169049162Z"
      },
      "pages": [
        {
          "url": "https://learn.microsoft.com/en-us/linkedin/marketing/integrations/recent-changes",
          "kind": "changelog",
          "status": 200,
          "checkedAt": "2026-10-08T18:21:42.006346735Z",
          "changedAt": "0001-01-01T00:00:00Z",
          "fingerprint": "69c4f2489866"
        }
      ],
      "updatedAt": "2026-10-08T18:22:06.797969043Z"
    }
  }
}
