> Full API reference: https://docs.scrapecreators.com/llms.txt

# LinkedIn Ad Library - Search Ads

Searches the LinkedIn Ad Library by company name, keyword, or companyId with optional country and date filters. Custom date filtering requires both startDate and endDate. LinkedIn accepts dates from the date one year ago through yesterday. Each ad includes id, description, headline, adType, advertiser, targeting details, image or video URLs, totalImpressions, and impressionsByCountry. Date and impression fields are nullable when LinkedIn does not expose them on the public ad page. Supports pagination via paginationToken. Search results keep a consistent field set when detail hydration fails, with null or empty defaults for unavailable fields. The existing image, video, organicVideo, preRollVideo, and carouselImages fields keep their previous values. paidForBy is the public paying entity when LinkedIn shows one, without the 'Paid for by' prefix. targetingTable lists the public targeting-category flags that LinkedIn shows; it does not expand a collapsed location summary into individual locations. imageSources and thumbnailSources list the creative-image and video-poster URLs LinkedIn supplies. videoSources lists native video renditions as { src, type, bitrate }; preRollVideoSources uses the same structure but contains only pre-roll ad video. type and bitrate are null when absent; bitrate is in bits per second. Choose the lowest positive bitrate for a smaller video download, rather than assuming source order ranks quality. All four source fields are arrays and are empty when unavailable. Document-cover previews are included in imageSources where available, including search fallback results. LinkedIn may expose only one image or thumbnail resolution; URLs are signed and should not be rewritten to guess smaller sizes. Search detail hydration is best-effort, so blocked or timed-out detail fetches can leave videoSources empty even for a video ad. No extra parameter or credit charge is required. adDuration is the ad availability date-range text, not video playback duration; it is an empty string with null startDate/endDate when LinkedIn does not publish the availability block.

**Base URL:** `https://api.scrapecreators.com`

**Endpoint:** `GET /v1/linkedin/ads/search`

**Authentication:** Pass your API key via the `x-api-key` header.

## API Specification

````yaml get /v1/linkedin/ads/search
openapi: 3.1.0
info:
  title: Scrape Creators API
  description: >-
    The Scrape Creators API - the easiest way to scrape public social
    media data at scale.
  version: 1.0.0
  contact:
    name: Scrape Creators
    url: https://scrapecreators.com
servers:
  - url: https://api.scrapecreators.com
    description: Production server
security:
  - apiKeyAuth: []
tags:
  - name: "LinkedIn Ad Library"
    description: "Search the LinkedIn Ad Library"
paths:
  /v1/linkedin/ads/search:
    get:
      tags:
        - "LinkedIn Ad Library"
      summary: "Search Ads"
      description: "Searches the LinkedIn Ad Library by company name, keyword, or companyId with optional country and date filters. Custom date filtering requires both startDate and endDate. LinkedIn accepts dates from the date one year ago through yesterday. Each ad includes id, description, headline, adType, advertiser, targeting details, image or video URLs, totalImpressions, and impressionsByCountry. Date and impression fields are nullable when LinkedIn does not expose them on the public ad page. Supports pagination via paginationToken. Search results keep a consistent field set when detail hydration fails, with null or empty defaults for unavailable fields. The existing image, video, organicVideo, preRollVideo, and carouselImages fields keep their previous values. paidForBy is the public paying entity when LinkedIn shows one, without the 'Paid for by' prefix. targetingTable lists the public targeting-category flags that LinkedIn shows; it does not expand a collapsed location summary into individual locations. imageSources and thumbnailSources list the creative-image and video-poster URLs LinkedIn supplies. videoSources lists native video renditions as { src, type, bitrate }; preRollVideoSources uses the same structure but contains only pre-roll ad video. type and bitrate are null when absent; bitrate is in bits per second. Choose the lowest positive bitrate for a smaller video download, rather than assuming source order ranks quality. All four source fields are arrays and are empty when unavailable. Document-cover previews are included in imageSources where available, including search fallback results. LinkedIn may expose only one image or thumbnail resolution; URLs are signed and should not be rewritten to guess smaller sizes. Search detail hydration is best-effort, so blocked or timed-out detail fetches can leave videoSources empty even for a video ad. No extra parameter or credit charge is required. adDuration is the ad availability date-range text, not video playback duration; it is an empty string with null startDate/endDate when LinkedIn does not publish the availability block."
      parameters:
        - name: company
          in: query
          required: false
          description: "The company name to search for. 'Microsoft' for example"
          schema:
            type: string
          example: "microsoft"
        - name: keyword
          in: query
          required: false
          description: "The keyword to search for"
          schema:
            type: string
          example: "scraping"
        - name: companyId
          in: query
          required: false
          description: "The company id to search for"
          schema:
            type: string
          example: "157238"
        - name: countries
          in: query
          required: false
          description: "Comma separated list of countries. Example: US,CA,MX"
          schema:
            type: string
          example: "US,CA,MX"
        - name: startDate
          in: query
          required: false
          description: "Start date in YYYY-MM-DD format. Must be used with endDate and cannot be earlier than the date one year ago."
          schema:
            type: string
          example: "2026-01-01"
        - name: endDate
          in: query
          required: false
          description: "End date in YYYY-MM-DD format. Must be used with startDate and cannot be today or a future date."
          schema:
            type: string
          example: "2026-09-01"
        - name: paginationToken
          in: query
          required: false
          description: "Pagination token to paginate through results"
          schema:
            type: string
          example: "640547184-1743616612000"
      responses:
        '200':
          description: Successful response
          content:
            application/json:
              example: |
                {
                  "success": true,
                  "credits_remaining": 100,
                  "credits_charged": 1,
                  "ads": [
                    {
                      "id": "1629532086",
                      "description": "Offensive security for Insurance Brokers, TPAs, MGAs and Carriers.\n\nGet a full audit-grade NYDFS or SOC2 PDF report within 48 hours.",
                      "headline": "Meet us at Booth 3240",
                      "poster": "CodeAnt AI",
                      "posterTitle": null,
                      "promotedBy": null,
                      "targeting": {},
                      "image": null,
                      "video": "https://dms.licdn.com/playlist/vid/v2/D5610AQHhFKchr0EgUA/mp4-360p-30fp-crf28/B56aDdqz26GoCE-/0/1790425384702?e=2147483647&v=beta&t=JDvJ4pLmerMVdDjbUZskRZIeuno7_YD4b-t_y2aY_f0",
                      "preRollVideo": null,
                      "organicVideo": "https://dms.licdn.com/playlist/vid/v2/D5610AQHhFKchr0EgUA/mp4-360p-30fp-crf28/B56aDdqz26GoCE-/0/1790425384702?e=2147483647&v=beta&t=JDvJ4pLmerMVdDjbUZskRZIeuno7_YD4b-t_y2aY_f0",
                      "preRollAdvertiser": null,
                      "carouselImages": [],
                      "url": "https://www.linkedin.com/ad-library/detail/1629532086",
                      "adType": "Video Ad",
                      "creativeType": "SPONSORED_VIDEO",
                      "advertiser": "CodeAnt AI",
                      "advertiserLinkedinPage": "https://www.linkedin.com/company/96582348",
                      "advertiserLogo": "https://media.licdn.com/dms/image/v2/D560BAQGncbvGj9h-YA/company-logo_100_100/company-logo_100_100/0/1700642866542/codeant_ai_logo?e=1793836800&v=beta&t=m3Yqh1eMA4FSBoIhNZzLkOQO8FLl84sq6rMUXuYaqXA",
                      "cta": "Join",
                      "sponsoredMessageSender": null,
                      "sponsoredMessageSenderAvatar": null,
                      "sponsoredMessageButtons": [],
                      "destinationUrl": null,
                      "landingPage": null,
                      "adDuration": "",
                      "startDate": null,
                      "endDate": null,
                      "totalImpressions": null,
                      "impressionsByCountry": [],
                      "imageSources": [],
                      "videoSources": [
                        {
                          "src": "https://dms.licdn.com/playlist/vid/v2/D5610AQHhFKchr0EgUA/mp4-360p-30fp-crf28/B56aDdqz26GoCE-/0/1790425384702?e=2147483647&v=beta&t=JDvJ4pLmerMVdDjbUZskRZIeuno7_YD4b-t_y2aY_f0",
                          "type": "video/mp4",
                          "bitrate": 124294
                        },
                        {
                          "src": "https://dms.licdn.com/playlist/vid/v2/D5610AQHhFKchr0EgUA/progressive-servable-video/B56aDdqz26GoAc-/0/1790425383612?e=2147483647&v=beta&t=jLeuwEhS8XvYQ5FIqWJml09AkU54C5XXO9A_aY9fCwc",
                          "type": "video/mp4",
                          "bitrate": 10360657
                        },
                        {
                          "src": "https://dms.licdn.com/playlist/vid/v2/D5610AQHhFKchr0EgUA/mp4-720p-30fp-crf28/B56aDdqz26GoCI-/0/1790425385064?e=2147483647&v=beta&t=nGHquMqqYvnMF0jR0H-7y6U4HhxFLO2AYpKxDCokYBU",
                          "type": "video/mp4",
                          "bitrate": 378442
                        },
                        {
                          "src": "https://dms.licdn.com/playlist/vid/v2/D5610AQHhFKchr0EgUA/mp4-640p-30fp-crf28/B56aDdqz26GoBs-/0/1790425384967?e=2147483647&v=beta&t=Y8PX1J2nczCeLu_x4D2VbBJ3mI4Yb20DxAZ0yyOSu3E",
                          "type": "video/mp4",
                          "bitrate": 281999
                        }
                      ],
                      "thumbnailSources": [
                        "https://media.licdn.com/dms/image/v2/D5610AQHhFKchr0EgUA/videocover-high/B56aDdqz26GoBM-/0/1790425384196?e=2147483647&v=beta&t=f4890gDBvRXts6rJzik-j7iF8aDV6XOLTyaT10Bdkyg"
                      ],
                      "preRollVideoSources": []
                    },
                    {
                      "id": "1637580796",
                      "description": "Your code, cloud and team changed since your last pentest. Your auditor needs a report on today's environment.",
                      "headline": "Renewing PCI? Get a pentest report in 3 weeks",
                      "poster": "CodeAnt AI",
                      "posterTitle": null,
                      "promotedBy": null,
                      "targeting": {},
                      "image": "https://media.licdn.com/dms/image/v2/D5610AQFFRKthq08ivA/image-shrink_1280/B56aEaDZDNJcAc-/0/1791438459516/PCI-02png?e=2147483647&v=beta&t=VwX-vpFnz2szja2-UG5od2DYftS6aqGswIF3Dtbz0gY",
                      "video": null,
                      "preRollVideo": null,
                      "organicVideo": null,
                      "preRollAdvertiser": null,
                      "carouselImages": [],
                      "url": "https://www.linkedin.com/ad-library/detail/1637580796",
                      "adType": "Single Image Ad",
                      "creativeType": "SPONSORED_STATUS_UPDATE",
                      "advertiser": "CodeAnt AI",
                      "advertiserLinkedinPage": "https://www.linkedin.com/company/96582348",
                      "advertiserLogo": "https://media.licdn.com/dms/image/v2/D560BAQGncbvGj9h-YA/company-logo_100_100/company-logo_100_100/0/1700642866542/codeant_ai_logo?e=1793836800&v=beta&t=m3Yqh1eMA4FSBoIhNZzLkOQO8FLl84sq6rMUXuYaqXA",
                      "cta": "Learn more",
                      "sponsoredMessageSender": null,
                      "sponsoredMessageSenderAvatar": null,
                      "sponsoredMessageButtons": [],
                      "destinationUrl": null,
                      "landingPage": null,
                      "adDuration": "",
                      "startDate": null,
                      "endDate": null,
                      "totalImpressions": null,
                      "impressionsByCountry": [],
                      "imageSources": [
                        "https://media.licdn.com/dms/image/v2/D5610AQFFRKthq08ivA/image-shrink_1280/B56aEaDZDNJcAc-/0/1791438459516/PCI-02png?e=2147483647&v=beta&t=VwX-vpFnz2szja2-UG5od2DYftS6aqGswIF3Dtbz0gY"
                      ],
                      "videoSources": [],
                      "thumbnailSources": [],
                      "preRollVideoSources": []
                    }
                  ],
                  "paginationToken": "1587449116-1788316404963",
                  "isLastPage": false,
                  "totalAds": 258
                }
components:
  securitySchemes:
    apiKeyAuth:
      type: apiKey
      in: header
      name: x-api-key
      description: Your Scrape Creators API key.
````
