Bulk Jobs

Submit a Local Leads Search

Changed on

Find local businesses for keyword × location combinations. Each unique combination is one search, charged 200 credits up front. US ZIP codes are resolved to their city before anything is charged. Set dryRun to preview the resolved grid and cost without charging.

post/bulk/local-leads

Request

  • Base URL
    https://api.leadmagic.io
  • Auth
    API key in header X-API-Key

Request body

keywordsstring[] required

Business types to search (max 25). Each keyword runs once per location; duplicates are charged once.

citiesstring[] required

Locations to search (max 100): city names ("Austin", "Austin, TX", "Toronto") or US ZIP codes ("78704"). ZIPs resolve to their city; unrecognized ZIPs and non-US postal codes return 400. Outside the US, use the city name and set the country with countryCodes.

countryCodesstring[]

Two-letter country codes aligned by index with cities, or a single code applied to every city. Defaults to US.

fileNamestring

Label for the resulting job, shown in the dashboard.

dryRunboolean

Return the resolved searches, creditsRequired, and remaining daily capacity without charging or queueing.

magicKeystring

Promotional key that waives credit charges when valid.

Example request

{
  "keywords": [
    "plumber",
    "hvac contractor"
  ],
  "cities": [
    "Austin, TX",
    "75201"
  ],
  "countryCodes": [
    "US"
  ],
  "fileName": "texas-trades"
}

Response

Dry-run preview (only when dryRun is true). Nothing is charged.

object required

Changes

    • breaking

      removed the required property from the response with the status

    • breaking

      removed the required property from the response with the status

    • warning

      removed the optional property from the response with the status

    • warning

      removed the optional property from the response with the status

    • warning

      removed the optional property from the response with the status

    • warning

      removed the optional property from the response with the status

    • warning

      removed the optional property from the response with the status

    • warning

      removed the optional property from the response with the status

    • warning

      removed the optional property from the response with the status

    • warning

      removed the optional property from the response with the status

    • warning

      removed the optional property from the response with the status

    • warning

      removed the optional property from the response with the status

    • warning

      removed the optional property from the response with the status

    • warning

      removed the optional property from the response with the status

    • warning

      removed the optional property from the response with the status

    • warning

      removed the optional property from the response with the status

    • warning

      added the new processing enum value to the response property for the response status

    • warning

      added the new queued enum value to the response property for the response status

    • info

      added the new optional request property

    • info

      added the non-success response with the status

    • info

      added the non-success response with the status

    • info

      added the optional property to the response with the status

    • info

      added the required property to the response with the status

    • info

      added the required property to the response with the status

    • info

      added the required property to the response with the status

    • info

      added the success response with the status

    • breaking

      the ////// response's property format changed from uri to uri-reference for status

    • breaking

      the ////////// response's property format changed from uri to uri-reference for status

    • breaking

      the ////////// response's property format changed from uri to uri-reference for status