LurkAPI
Docs · Search Ad Library companies

Search Ad Library companies

Find an advertiser's Facebook page id by name in Meta's Ad Library, with followers and linked Instagram.

1 credit per callFresh within 1 dayMCP tool: facebook_search_companies
GEThttps://api.lurkapi.com/v1/facebook/adLibrary/search/companies

Example responseView as markdown

When to use this

Use it to turn a brand name into the page_id that company ads (facebook_company_ads) needs. Big brands have several pages (regional, product lines); pick by name, likes and verification.

Typeahead search over advertisers in the Ad Library, like the search box on facebook.com/ads/library. Returns up to about 15 matches, no pagination.

Parameters

All parameters go in the query string.

ParameterDescription
query
stringrequired
Brand or page name, e.g. nike.
Example
nike
country
stringoptional
2-letter country code that biases which pages rank first, or ALL.
Default
US

Example request

Replace YOUR_API_KEY with your key, or set LURKAPI_KEY for the code. Get a free key.

Language

Example response

A real response from this endpoint, captured from the live API and trimmed to a couple of items. Strings over 96 characters (mostly signed media URLs) are cut short and end in ….

Show the example response (2 KB)
{
  "success": true,
  "credits_remaining": 996,
  "credits_charged": 1,
  "searchResults": [
    {
      "category": "Sportswear Store",
      "country": null,
      "entity_type": "PERSON_PROFILE",
      "ig_followers": 291075731,
      "ig_username": "nike",
      "ig_verification": true,
      "image_uri": "https://scontent.fbts1-1.fna.fbcdn.net/v/t39.30808-1/284964043_101599038…",
      "likes": 39514042,
      "name": "Nike",
      "page_alias": "nike",
      "page_id": "15087023444",
      "page_is_deleted": false,
      "verification": "BLUE_VERIFIED"
    },
    {
      "category": "Product/service",
      "country": null,
      "entity_type": "PERSON_PROFILE",
      "ig_followers": 44794371,
      "ig_username": "nikefootball",
      "ig_verification": true,
      "image_uri": "https://scontent.fbts1-1.fna.fbcdn.net/v/t39.30808-1/387181570_863325755…",
      "likes": 40028551,
      "name": "Nike Football",
      "page_alias": "nikefootball",
      "page_id": "51212153078",
      "page_is_deleted": false,
      "verification": "BLUE_VERIFIED"
    }
  ]
}

Response fields

Every field of a successful response. [] marks a list: a[].b is the b of each item in a. nullable fields can be null; optional fields can be missing.

Show all 17 fields
FieldTypeDescription
successtrueAlways true here; errors have success: false.
credits_remainingnumberYour balance after this call. On anonymous playground calls: free tries left today.
credits_chargednumberCredits this call cost; 0 on free endpoints. On anonymous playground calls: tries used (1).
searchResultsobject[]Matching advertiser pages, best match first.
searchResults[].page_idstringnullableThe page id. Pass it as pageId to the company ads endpoint.
searchResults[].namestringnullableThe page's name.
searchResults[].page_aliasstringnullableVanity name: facebook.com/<page_alias>.
searchResults[].categorystringnullablePage category, e.g. "Sportswear Store".
searchResults[].likesnumbernullablePage followers.
searchResults[].verificationstringnullableBLUE_VERIFIED or NOT_VERIFIED.
searchResults[].image_uristringnullableProfile picture URL.
searchResults[].ig_usernamestringnullableLinked Instagram username, without @; null when none is linked.
searchResults[].ig_followersnumbernullableFollowers of the linked Instagram account; null when none is linked.
searchResults[].ig_verificationbooleanWhether the linked Instagram account is verified; false when none is linked.
searchResults[].countrystringnullableThe page's country; null in every response we've seen.
searchResults[].entity_typestringnullableFacebook's page type; PERSON_PROFILE for most pages, brands included.
searchResults[].page_is_deletedbooleanWhether the page has been deleted.

Caching and freshness

Responses are cached for up to 1 day, so a repeat call within that window can return the same data. It still costs 1 credit.

Errors

Errors return { success: false, error, code, docs } with the HTTP status below. Validation errors, 401/402/429 rejections and 5xx failures are free; not_found is charged (how charging works). All error codes.

StatusCodeMeaning
401missing_api_keyNo API key. Send it in the x-api-key header.
401invalid_api_keyThe key is unknown or was revoked.
402insufficient_creditsNot enough credits for this call. Buy a pack or wait for tomorrow's top-up.
405method_not_allowedEndpoints take GET with query params.
429rate_limitedToo many calls at once. Wait for the retry-after seconds, then retry.
500internal_errorSomething broke on our side. Retry; 5xx errors are free.
502upstream_errorThe platform didn't give a usable answer. Retry; 5xx errors are free.
503upstream_busyAll our connections to the platform are busy. Retry in a few seconds; 5xx errors are free.
504upstream_timeoutThe platform took over 30 seconds to answer. Retry; timeouts are free.

Use it in Claude

Once LurkAPI is connected to Claude, this endpoint is the facebook_search_companies tool. Ask in plain English, for example:

Ask Claude
Use LurkAPI's facebook_search_companies with query "nike" and summarize what you find.

Claude calls facebook_search_companies with arguments like these, and each call costs 1 credit:

Tool arguments
{
  "query": "nike"
}

Tool results skip nulls and empty lists to save tokens.