# Local Business Database - Searchable Google Maps Business Listings > Local business database API - search Google Maps business listings by city, state, country, ZIP, category, name, address, or phone, inside a bounding box or around a point, and read full listing records, reviews and photos by business ID. ## Overview Local Business Database is a search API over Google Maps local-business listings, returning structured JSON via REST. It answers set queries - every dentist in Texas, every cafe inside a map box - with an exact total match count and cursor pagination, reads back the full record of a listing by its identifier, and pages through a listing's reviews and photos. Who is this API for: developers building lead-generation and prospecting lists, territory and market analysis, CRM enrichment against a known city or category, coverage mapping over an area or around a point, and any pipeline that needs to page through a large result set rather than sample one. What it returns: listing records with name, full and short address, coordinates, categories, phone, website, rating, review count, opening hours, verification status, and first_seen / last_seen / last_changed timestamps. Business Details carries the enriched reading - the menu, the popular-times table, the service list and the price tier - that a search response does not. Business Reviews returns one page of a listing's reviews - rating, text and its translation, author, review photos, the owner's response and the per-aspect ratings - and Business Photos one page of its photos, each with image URLs, type (photo, street view or video), coordinates and date. Freshness: search and Business Details results are served from crawled listings rather than a live lookup at request time, so a change made to a listing minutes ago may not be reflected yet. Every record carries its own first_seen, last_seen and last_changed timestamps, so you can judge the age of each row yourself. Business Reviews and Business Photos are the exception: each reads its page from the source at request time. For a live read of a single business's full record at the moment you ask, use the separate Local Business Data API - a different product, despite the near-identical name. Need help integrating? Contact support@openwebninja.com. For high volume / large scale plans, please contact support@openwebninja.com. ## Endpoints ### GET /search - Search Search business listings by any combination of the field parameters below - name, category, address, city, ZIP code, state, country, phone number and more. Parameters: - name (string): Find businesses by their display name. **Examples:** `Office of City Treasurer` `Avante Catering` `Truist` - categories (string or array of string): Find businesses carrying a specific category. Accepts a comma separated list of up to 32 values, or the parameter repeated up to 32 times (values are OR'ed). **Examples:** `Restaurant` `Restaurant,Bank,Photography studio` - main_category (string or array of string): Find businesses whose primary category matches. Same value space as the categories parameter. Accepts a comma separated list of up to 32 values, or the parameter repeated up to 32 times (values are OR'ed). **Examples:** `Coffee shop` `Coffee shop,Hotel,Bakery` - address (string): Find businesses by their full formatted address, including the business name. **Examples:** `Office of City Treasurer, 121 N LaSalle St #106, Chicago, IL 60602` `Avante Catering, 5600 Delridge Wy SW, Seattle, WA 98106` `Truist, 12390 SW 120th St, Miami, FL 33186` - street_address (string or array of string): Find businesses by the street line of their address on its own. A single value is matched loosely, which also finds spelling and abbreviation variants. Several values are matched exactly instead, which narrows the result. Accepts up to 32 values by repeating the parameter *(e.g. `street_address=value1&street_address=value2`)*. Values cannot be comma separated here, as a comma can be part of the value. In the POST form, send an array instead. **Examples:** `121 N LaSalle St #106` - city (string or array of string): Find businesses in a specific city. Accepts up to 32 values by repeating the parameter *(e.g. `city=value1&city=value2`)*. Values cannot be comma separated here, as a comma can be part of the value. In the POST form, send an array instead. **Examples:** `Chicago` - zipcode (string or array of string): Find businesses in a specific ZIP / postal code. Accepts a comma separated list of up to 32 values, or the parameter repeated up to 32 times (values are OR'ed). **Examples:** `60602` `60602,98112,33186` - state (string or array of string): Find businesses in a specific state or province. Accepts a comma separated list of up to 32 values, or the parameter repeated up to 32 times (values are OR'ed). US states match either way they are sent, by full name or by two-letter code. **Examples:** `Illinois` `Illinois,Florida,Ontario` `IL,FL` - country (string or array of string): Find businesses in a specific country, as an ISO 3166-1 alpha-2 code. Accepts a comma separated list of up to 32 values, or the parameter repeated up to 32 times (values are OR'ed). For a list of supported country codes see *https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2*. **Examples:** `US` `US,MX,CA` - district (string or array of string): Find businesses in a specific district or neighbourhood, when the listing carries one. Accepts up to 32 values by repeating the parameter *(e.g. `district=value1&district=value2`)*. Values cannot be comma separated here, as a comma can be part of the value. In the POST form, send an array instead. **Examples:** `Chicago Loop` - business_id (string or array of string): Find businesses by their unique Business Id, matched exactly. Accepts a comma separated list of up to 32 values, or the parameter repeated up to 32 times (values are OR'ed). **Examples:** `0x102b644d009e013:0xea49e9ee285fa7bf` `0x102b644d009e013:0xea49e9ee285fa7bf,0x1792d85c519234b:0x91eebb9c864b198d` - phone_number (string or array of string): Find businesses by phone number. Accepts a comma separated list of up to 32 values, or the parameter repeated up to 32 times (values are OR'ed). Send the number with its country code, either in E.164 *(`+14325551234`, URL-encoded as `%2B14325551234`)* or in a decorated form such as `1-432-555-1234`, `(432) 555-1234` or `0014325551234`. **Examples:** `+13127443356` `+13127443356,+12063248900,+13053784725` - owner_name (string or array of string): Find businesses by the name on the owner profile. Accepts up to 32 values by repeating the parameter *(e.g. `owner_name=value1&owner_name=value2`)*. Values cannot be comma separated here, as a comma can be part of the value. In the POST form, send an array instead. **Examples:** `Office of City Treasurer` - main_category_id (string or array of string): Find businesses by Google's internal ID of the primary category. Accepts a comma separated list of up to 32 values, or the parameter repeated up to 32 times (values are OR'ed). This is the machine ID, not the display label the main_category parameter matches, and the two can name different primaries. **Examples:** `restaurant` `restaurant,hotel,dentist` - category_ids (string or array of string): Find businesses by Google's internal entity-type IDs. Accepts a comma separated list of up to 32 values, or the parameter repeated up to 32 times (values are OR'ed). These are entity types rather than the listing's categories: the values are broad and a listing usually carries several of them, so this is a wide filter. **Examples:** `bakery` `bakery,catholic_church,psychotherapist` - limit (integer): Maximum number of businesses to return. **Allowed values:** `1-500` - cursor (string): Pagination cursor for fetching the next page. Pass the `cursor` value returned in the previous response. Omit it on the first request. **Note:** a cursor is only valid for the exact query that produced it, and it expires. Do not build or edit one. - fields (array of string): A comma separated list of business fields to include in the response (field projection). By default all fields are returned. `business_id` is always included. **Note:** field projection trims the response body only. It does not change how the request is billed. Full URL: `https://api.openwebninja.com/local-business-database/search` ### POST /search - Search Search business listings by any combination of the fields below, sent as a JSON body. Parameters: - name (string, e.g. `Office of City Treasurer`): Find businesses by their display name. - categories (string or array of string, e.g. `Restaurant`): Find businesses carrying a specific category. Accepts a comma separated list of up to 32 values, or the parameter repeated up to 32 times (values are OR'ed). - main_category (string or array of string, e.g. `Coffee shop`): Find businesses whose primary category matches. Same value space as the categories parameter. Accepts a comma separated list of up to 32 values, or the parameter repeated up to 32 times (values are OR'ed). - address (string, e.g. `Office of City Treasurer, 121 N LaSalle St #106, Chicago, IL 60602`): Find businesses by their full formatted address, including the business name. - street_address (string or array of string, e.g. `121 N LaSalle St #106`): Find businesses by the street line of their address on its own. A single value is matched loosely, which also finds spelling and abbreviation variants. Several values are matched exactly instead, which narrows the result. Accepts up to 32 values by repeating the parameter *(e.g. `street_address=value1&street_address=value2`)*. Values cannot be comma separated here, as a comma can be part of the value. In the POST form, send an array instead. - city (string or array of string, e.g. `Chicago`): Find businesses in a specific city. Accepts up to 32 values by repeating the parameter *(e.g. `city=value1&city=value2`)*. Values cannot be comma separated here, as a comma can be part of the value. In the POST form, send an array instead. - zipcode (string or array of string, e.g. `60602`): Find businesses in a specific ZIP / postal code. Accepts a comma separated list of up to 32 values, or the parameter repeated up to 32 times (values are OR'ed). - state (string or array of string, e.g. `Illinois`): Find businesses in a specific state or province. Accepts a comma separated list of up to 32 values, or the parameter repeated up to 32 times (values are OR'ed). US states match either way they are sent, by full name or by two-letter code. - country (string or array of string, e.g. `US`): Find businesses in a specific country, as an ISO 3166-1 alpha-2 code. Accepts a comma separated list of up to 32 values, or the parameter repeated up to 32 times (values are OR'ed). For a list of supported country codes see *https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2*. - district (string or array of string, e.g. `Chicago Loop`): Find businesses in a specific district or neighbourhood, when the listing carries one. Accepts up to 32 values by repeating the parameter *(e.g. `district=value1&district=value2`)*. Values cannot be comma separated here, as a comma can be part of the value. In the POST form, send an array instead. - business_id (string or array of string, e.g. `0x102b644d009e013:0xea49e9ee285fa7bf`): Find businesses by their unique Business Id, matched exactly. Accepts a comma separated list of up to 32 values, or the parameter repeated up to 32 times (values are OR'ed). - phone_number (string or array of string, e.g. `+13127443356`): Find businesses by phone number. Accepts a comma separated list of up to 32 values, or the parameter repeated up to 32 times (values are OR'ed). Send the number with its country code, either in E.164 *(`+14325551234`, URL-encoded as `%2B14325551234`)* or in a decorated form such as `1-432-555-1234`, `(432) 555-1234` or `0014325551234`. - owner_name (string or array of string, e.g. `Office of City Treasurer`): Find businesses by the name on the owner profile. Accepts up to 32 values by repeating the parameter *(e.g. `owner_name=value1&owner_name=value2`)*. Values cannot be comma separated here, as a comma can be part of the value. In the POST form, send an array instead. - main_category_id (string or array of string, e.g. `restaurant`): Find businesses by Google's internal ID of the primary category. Accepts a comma separated list of up to 32 values, or the parameter repeated up to 32 times (values are OR'ed). This is the machine ID, not the display label the main_category parameter matches, and the two can name different primaries. - category_ids (string or array of string, e.g. `bakery`): Find businesses by Google's internal entity-type IDs. Accepts a comma separated list of up to 32 values, or the parameter repeated up to 32 times (values are OR'ed). These are entity types rather than the listing's categories: the values are broad and a listing usually carries several of them, so this is a wide filter. - bottom_left (string): The bottom-left (south-west) corner of the bounding box to search in, as a "lat,lng" string. Send either bottom_left with top_right, or lat with lng and radius - not both, and not a partial group. - top_right (string): The top-right (north-east) corner of the bounding box to search in, as a "lat,lng" string. Send either bottom_left with top_right, or lat with lng and radius - not both, and not a partial group. - lat (number): Latitude of the center coordinate point of the area to search in. Send either bottom_left with top_right, or lat with lng and radius - not both, and not a partial group. - lng (number): Longitude of the center coordinate point of the area to search in. Send either bottom_left with top_right, or lat with lng and radius - not both, and not a partial group. - radius (number): Radius of the area to search in, in meters. **Allowed values:** `1-100000` - limit (integer, e.g. `10`): Maximum number of businesses to return. **Allowed values:** `1-500` - cursor (string): Pagination cursor for fetching the next page. Pass the `cursor` value returned in the previous response. Omit it on the first request. **Note:** a cursor is only valid for the exact query that produced it, and it expires. Do not build or edit one. - fields (string or array of string): A comma separated list of business fields to include in the response (field projection). By default all fields are returned. `business_id` is always included. **Note:** field projection trims the response body only. It does not change how the request is billed. Full URL: `https://api.openwebninja.com/local-business-database/search` ### GET /area-search-by-bounding-box - Area Search By Bounding Box Search business listings within a rectangular area defined by its bottom-left (south-west) and top-right (north-east) corner coordinates. Parameters: - **top_right** (string, required): The top-right (north-east) corner of the bounding box to search in, as a "lat,lng" string. Required together with bottom_left. **Examples:** `41.9,-87.6` - **bottom_left** (string, required): The bottom-left (south-west) corner of the bounding box to search in, as a "lat,lng" string. Required together with top_right. **Examples:** `41.8,-87.7` - name (string): Find businesses by their display name. **Examples:** `Office of City Treasurer` `Avante Catering` `Truist` - categories (string or array of string): Find businesses carrying a specific category. Accepts a comma separated list of up to 32 values, or the parameter repeated up to 32 times (values are OR'ed). **Examples:** `Restaurant` `Restaurant,Bank,Photography studio` - main_category (string or array of string): Find businesses whose primary category matches. Same value space as the categories parameter. Accepts a comma separated list of up to 32 values, or the parameter repeated up to 32 times (values are OR'ed). **Examples:** `Coffee shop` `Coffee shop,Hotel,Bakery` - address (string): Find businesses by their full formatted address, including the business name. **Examples:** `Office of City Treasurer, 121 N LaSalle St #106, Chicago, IL 60602` `Avante Catering, 5600 Delridge Wy SW, Seattle, WA 98106` `Truist, 12390 SW 120th St, Miami, FL 33186` - street_address (string or array of string): Find businesses by the street line of their address on its own. A single value is matched loosely, which also finds spelling and abbreviation variants. Several values are matched exactly instead, which narrows the result. Accepts up to 32 values by repeating the parameter *(e.g. `street_address=value1&street_address=value2`)*. Values cannot be comma separated here, as a comma can be part of the value. In the POST form, send an array instead. **Examples:** `121 N LaSalle St #106` - city (string or array of string): Find businesses in a specific city. Accepts up to 32 values by repeating the parameter *(e.g. `city=value1&city=value2`)*. Values cannot be comma separated here, as a comma can be part of the value. In the POST form, send an array instead. **Examples:** `Chicago` - zipcode (string or array of string): Find businesses in a specific ZIP / postal code. Accepts a comma separated list of up to 32 values, or the parameter repeated up to 32 times (values are OR'ed). **Examples:** `60602` `60602,98112,33186` - state (string or array of string): Find businesses in a specific state or province. Accepts a comma separated list of up to 32 values, or the parameter repeated up to 32 times (values are OR'ed). US states match either way they are sent, by full name or by two-letter code. **Examples:** `Illinois` `Illinois,Florida,Ontario` `IL,FL` - country (string or array of string): Find businesses in a specific country, as an ISO 3166-1 alpha-2 code. Accepts a comma separated list of up to 32 values, or the parameter repeated up to 32 times (values are OR'ed). For a list of supported country codes see *https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2*. **Examples:** `US` `US,MX,CA` - district (string or array of string): Find businesses in a specific district or neighbourhood, when the listing carries one. Accepts up to 32 values by repeating the parameter *(e.g. `district=value1&district=value2`)*. Values cannot be comma separated here, as a comma can be part of the value. In the POST form, send an array instead. **Examples:** `Chicago Loop` - business_id (string or array of string): Find businesses by their unique Business Id, matched exactly. Accepts a comma separated list of up to 32 values, or the parameter repeated up to 32 times (values are OR'ed). **Examples:** `0x102b644d009e013:0xea49e9ee285fa7bf` `0x102b644d009e013:0xea49e9ee285fa7bf,0x1792d85c519234b:0x91eebb9c864b198d` - phone_number (string or array of string): Find businesses by phone number. Accepts a comma separated list of up to 32 values, or the parameter repeated up to 32 times (values are OR'ed). Send the number with its country code, either in E.164 *(`+14325551234`, URL-encoded as `%2B14325551234`)* or in a decorated form such as `1-432-555-1234`, `(432) 555-1234` or `0014325551234`. **Examples:** `+13127443356` `+13127443356,+12063248900,+13053784725` - owner_name (string or array of string): Find businesses by the name on the owner profile. Accepts up to 32 values by repeating the parameter *(e.g. `owner_name=value1&owner_name=value2`)*. Values cannot be comma separated here, as a comma can be part of the value. In the POST form, send an array instead. **Examples:** `Office of City Treasurer` - main_category_id (string or array of string): Find businesses by Google's internal ID of the primary category. Accepts a comma separated list of up to 32 values, or the parameter repeated up to 32 times (values are OR'ed). This is the machine ID, not the display label the main_category parameter matches, and the two can name different primaries. **Examples:** `restaurant` `restaurant,hotel,dentist` - category_ids (string or array of string): Find businesses by Google's internal entity-type IDs. Accepts a comma separated list of up to 32 values, or the parameter repeated up to 32 times (values are OR'ed). These are entity types rather than the listing's categories: the values are broad and a listing usually carries several of them, so this is a wide filter. **Examples:** `bakery` `bakery,catholic_church,psychotherapist` - limit (integer): Maximum number of businesses to return. **Allowed values:** `1-500` - cursor (string): Pagination cursor for fetching the next page. Pass the `cursor` value returned in the previous response. Omit it on the first request. **Note:** a cursor is only valid for the exact query that produced it, and it expires. Do not build or edit one. - fields (array of string): A comma separated list of business fields to include in the response (field projection). By default all fields are returned. `business_id` is always included. **Note:** field projection trims the response body only. It does not change how the request is billed. Full URL: `https://api.openwebninja.com/local-business-database/area-search-by-bounding-box` ### GET /area-search-by-radius - Area Search By Radius Search business listings within a given distance of a center coordinate point. Parameters: - **lat** (number, required): Latitude of the center coordinate point of the area to search in. Required together with lng and radius. - **lng** (number, required): Longitude of the center coordinate point of the area to search in. Required together with lat and radius. - **radius** (number, required): Radius of the area to search in, in meters. **Allowed values:** `1-100000` - name (string): Find businesses by their display name. **Examples:** `Office of City Treasurer` `Avante Catering` `Truist` - categories (string or array of string): Find businesses carrying a specific category. Accepts a comma separated list of up to 32 values, or the parameter repeated up to 32 times (values are OR'ed). **Examples:** `Restaurant` `Restaurant,Bank,Photography studio` - main_category (string or array of string): Find businesses whose primary category matches. Same value space as the categories parameter. Accepts a comma separated list of up to 32 values, or the parameter repeated up to 32 times (values are OR'ed). **Examples:** `Coffee shop` `Coffee shop,Hotel,Bakery` - address (string): Find businesses by their full formatted address, including the business name. **Examples:** `Office of City Treasurer, 121 N LaSalle St #106, Chicago, IL 60602` `Avante Catering, 5600 Delridge Wy SW, Seattle, WA 98106` `Truist, 12390 SW 120th St, Miami, FL 33186` - street_address (string or array of string): Find businesses by the street line of their address on its own. A single value is matched loosely, which also finds spelling and abbreviation variants. Several values are matched exactly instead, which narrows the result. Accepts up to 32 values by repeating the parameter *(e.g. `street_address=value1&street_address=value2`)*. Values cannot be comma separated here, as a comma can be part of the value. In the POST form, send an array instead. **Examples:** `121 N LaSalle St #106` - city (string or array of string): Find businesses in a specific city. Accepts up to 32 values by repeating the parameter *(e.g. `city=value1&city=value2`)*. Values cannot be comma separated here, as a comma can be part of the value. In the POST form, send an array instead. **Examples:** `Chicago` - zipcode (string or array of string): Find businesses in a specific ZIP / postal code. Accepts a comma separated list of up to 32 values, or the parameter repeated up to 32 times (values are OR'ed). **Examples:** `60602` `60602,98112,33186` - state (string or array of string): Find businesses in a specific state or province. Accepts a comma separated list of up to 32 values, or the parameter repeated up to 32 times (values are OR'ed). US states match either way they are sent, by full name or by two-letter code. **Examples:** `Illinois` `Illinois,Florida,Ontario` `IL,FL` - country (string or array of string): Find businesses in a specific country, as an ISO 3166-1 alpha-2 code. Accepts a comma separated list of up to 32 values, or the parameter repeated up to 32 times (values are OR'ed). For a list of supported country codes see *https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2*. **Examples:** `US` `US,MX,CA` - district (string or array of string): Find businesses in a specific district or neighbourhood, when the listing carries one. Accepts up to 32 values by repeating the parameter *(e.g. `district=value1&district=value2`)*. Values cannot be comma separated here, as a comma can be part of the value. In the POST form, send an array instead. **Examples:** `Chicago Loop` - business_id (string or array of string): Find businesses by their unique Business Id, matched exactly. Accepts a comma separated list of up to 32 values, or the parameter repeated up to 32 times (values are OR'ed). **Examples:** `0x102b644d009e013:0xea49e9ee285fa7bf` `0x102b644d009e013:0xea49e9ee285fa7bf,0x1792d85c519234b:0x91eebb9c864b198d` - phone_number (string or array of string): Find businesses by phone number. Accepts a comma separated list of up to 32 values, or the parameter repeated up to 32 times (values are OR'ed). Send the number with its country code, either in E.164 *(`+14325551234`, URL-encoded as `%2B14325551234`)* or in a decorated form such as `1-432-555-1234`, `(432) 555-1234` or `0014325551234`. **Examples:** `+13127443356` `+13127443356,+12063248900,+13053784725` - owner_name (string or array of string): Find businesses by the name on the owner profile. Accepts up to 32 values by repeating the parameter *(e.g. `owner_name=value1&owner_name=value2`)*. Values cannot be comma separated here, as a comma can be part of the value. In the POST form, send an array instead. **Examples:** `Office of City Treasurer` - main_category_id (string or array of string): Find businesses by Google's internal ID of the primary category. Accepts a comma separated list of up to 32 values, or the parameter repeated up to 32 times (values are OR'ed). This is the machine ID, not the display label the main_category parameter matches, and the two can name different primaries. **Examples:** `restaurant` `restaurant,hotel,dentist` - category_ids (string or array of string): Find businesses by Google's internal entity-type IDs. Accepts a comma separated list of up to 32 values, or the parameter repeated up to 32 times (values are OR'ed). These are entity types rather than the listing's categories: the values are broad and a listing usually carries several of them, so this is a wide filter. **Examples:** `bakery` `bakery,catholic_church,psychotherapist` - limit (integer): Maximum number of businesses to return. **Allowed values:** `1-500` - cursor (string): Pagination cursor for fetching the next page. Pass the `cursor` value returned in the previous response. Omit it on the first request. **Note:** a cursor is only valid for the exact query that produced it, and it expires. Do not build or edit one. - fields (array of string): A comma separated list of business fields to include in the response (field projection). By default all fields are returned. `business_id` is always included. **Note:** field projection trims the response body only. It does not change how the request is billed. Full URL: `https://api.openwebninja.com/local-business-database/area-search-by-radius` ### GET /business-details - Business Details Get full business details by Business Id, including the menu, popular times, services and price tier - fields the search endpoints do not return. Parameters: - **business_ids** (string or array of string, required): Unique Business Id, as returned in a business record's `business_id`. **Examples:** `0x102b644d009e013:0xea49e9ee285fa7bf` In addition, batching of up to 500 Business Ids is supported in a single request using a comma separated list *(e.g. business_ids=id1,id2)*. - fields (array of string): A comma separated list of business fields to include in the response (field projection). By default all fields are returned. `business_id` is always included. **Note:** field projection trims the response body only. It does not change how the request is billed. Full URL: `https://api.openwebninja.com/local-business-database/business-details` ### GET /business-reviews - Business Reviews Get / paginate business reviews by Business Id using a pagination cursor. Parameters: - **business_id** (string, required): Unique Business Id, as returned in a business record's `business_id`. **Examples:** `0x102b644d009e013:0xea49e9ee285fa7bf` - limit (integer): Maximum number of business reviews to return. **Allowed values:** `1-20` **Note:** a `cursor` is only returned when limit is left at its maximum of `20`. - cursor (string): Pagination cursor for fetching the next page. Pass the `cursor` value returned in the previous response. Omit it on the first request. **Note:** a cursor is only valid for the exact query that produced it, and it expires. Do not build or edit one. - sort_by (string, default: `most_relevant`, allowed: most_relevant | newest | highest_ranking | lowest_ranking): How to sort the reviews in the results. - language (string, default: `en`): Set the language of the results. For a list of supported language codes see *https://en.wikipedia.org/wiki/List_of_ISO_639-1_codes*. - region (string, default: `us`): Query Google Maps from a particular region or country. For a list of supported region/country codes see *https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2 (Alpha-2 code)*. Full URL: `https://api.openwebninja.com/local-business-database/business-reviews` ### GET /business-photos - Business Photos Get / paginate business photos by Business Id using a pagination cursor. Parameters: - **business_id** (string, required): Unique Business Id, as returned in a business record's `business_id`. **Examples:** `0x102b644d009e013:0xea49e9ee285fa7bf` - limit (integer): Maximum number of business photos to return. **Allowed values:** `1-100` - cursor (string): Pagination cursor for fetching the next page. Pass the `cursor` value returned in the previous response. Omit it on the first request. **Note:** a cursor is only valid for the exact query that produced it, and it expires. Do not build or edit one. - language (string, default: `en`): Set the language of the results. For a list of supported language codes see *https://en.wikipedia.org/wiki/List_of_ISO_639-1_codes*. - region (string, default: `us`): Query Google Maps from a particular region or country. For a list of supported region/country codes see *https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2 (Alpha-2 code)*. Full URL: `https://api.openwebninja.com/local-business-database/business-photos` ## Base URL and Authentication - Base URL: `https://api.openwebninja.com/local-business-database` - Auth: API key in the `x-api-key` header. Get a key by subscribing (free tier available) at https://app.openwebninja.com/api/local-business-database ## Topics local business database api, local business data api, google maps business listings api, business search api, business data api, poi data api, area search api, bounding box search api, radius search api, business details api, business reviews api, business photos api, lead generation api, prospecting data api, business records by city ## Links - API page: https://www.openwebninja.com/api/local-business-database - Get an API key / subscribe: https://app.openwebninja.com/api/local-business-database - Pricing & plans: https://app.openwebninja.com/api/local-business-database/pricing - Website: https://www.openwebninja.com - OpenAPI spec: https://openwebninja.s3.us-east-1.amazonaws.com/portal/openapi/near_realtime_business_data.yaml - Support: support@openwebninja.com _Last updated: 2026-09-28_