{"uid":"cap_Wn8xJawTckpe96lG3Ntqx","slug":"agents-openwebninja-com-openweb-ninja-local-business-search-post-8c647265","name":"OpenWeb Ninja Local Business Search (POST)","description":"Search business listings by any combination of the fields below, sent as a JSON body. Same results as the GET form, and the form to use when the query is too long for a URL - for example a list of up to 32 values on several fields at once.\n\nAt least one of the filter parameters below is required for search. This form also accepts an area: either `bottom_left` with `top_right`, or `lat` with `lng` and `radius`.\n\n**Note:** `match_count` is the total number of matching businesses, not the number returned on this page. A `cursor` is returned while further pages are available and omitted on the last page.\n\n**Note:** a query that matches nothing is not an error. The response is a `200` with an empty `businesses` array.","url":"https://agents.openwebninja.com/local-business-database/search?utm_source=zero.xyz","method":"POST","headers":{},"bodySchema":{"type":"object","properties":{"lat":{"type":"number","maximum":90,"minimum":-90,"description":"Latitude of the center coordinate point of the area to search in.\n\nSend either bottom_left with top_right, or lat with lng and radius - not both, and not a partial group."},"lng":{"type":"number","maximum":180,"minimum":-180,"description":"Longitude of the center coordinate point of the area to search in.\n\nSend either bottom_left with top_right, or lat with lng and radius - not both, and not a partial group."},"city":{"oneOf":[{"type":"string","maxLength":256},{"type":"array","items":{"type":"string","maxLength":256},"maxItems":32,"minItems":1}],"example":"Chicago","description":"Find businesses in a specific city.\n\nAccepts up to 32 values by repeating the parameter *(e.g. `city=value1&city=value2`)*.\n\nValues cannot be comma separated here, as a comma can be part of the value. In the POST form, send an array instead."},"name":{"type":"string","example":"Office of City Treasurer","maxLength":256,"description":"Find businesses by their display name."},"limit":{"type":"integer","example":10,"description":"Maximum number of businesses to return.\n\n**Allowed values:** `1-500`"},"query":{"type":"string"},"state":{"oneOf":[{"type":"string","maxLength":256},{"type":"array","items":{"type":"string","maxLength":256},"maxItems":32,"minItems":1}],"example":"Illinois","description":"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).\n\nUS states match either way they are sent, by full name or by two-letter code."},"cursor":{"type":"string","maxLength":1024,"description":"Pagination cursor for fetching the next page. Pass the `cursor` value returned in the previous response. Omit it on the first request.\n\n**Note:** a cursor is only valid for the exact query that produced it, and it expires. Do not build or edit one."},"fields":{"oneOf":[{"type":"string","pattern":"^\\s*$|^\\s*(business_id|name|address|lat|lng|categories|main_category|phone|website|tld|status|rating|review_count|place_id|google_mid|cid|place_link|timezone|owner_id|owner_name|owner_link|address_short|district|street_address|city|zipcode|state|country|photo_count|photos_sample|verified|opening_status|working_hours|opening_date|reviews_per_rating|price_level|reviews_link|booking_link|order_link|reservations_link|category_ids|main_category_id|about|closed_dow|open_24_7|located_in|hotel_stars|hotel_amenities|hotel_location_rating|hotel_review_summary|hotel_booking_options|hotel_results_from_web|first_seen|last_seen|last_changed)(\\s*,\\s*(business_id|name|address|lat|lng|categories|main_category|phone|website|tld|status|rating|review_count|place_id|google_mid|cid|place_link|timezone|owner_id|owner_name|owner_link|address_short|district|street_address|city|zipcode|state|country|photo_count|photos_sample|verified|opening_status|working_hours|opening_date|reviews_per_rating|price_level|reviews_link|booking_link|order_link|reservations_link|category_ids|main_category_id|about|closed_dow|open_24_7|located_in|hotel_stars|hotel_amenities|hotel_location_rating|hotel_review_summary|hotel_booking_options|hotel_results_from_web|first_seen|last_seen|last_changed)){0,54}\\s*$"},{"type":"array","items":{"enum":["business_id","name","address","lat","lng","categories","main_category","phone","website","tld","status","rating","review_count","place_id","google_mid","cid","place_link","timezone","owner_id","owner_name","owner_link","address_short","district","street_address","city","zipcode","state","country","photo_count","photos_sample","verified","opening_status","working_hours","opening_date","reviews_per_rating","price_level","reviews_link","booking_link","order_link","reservations_link","category_ids","main_category_id","about","closed_dow","open_24_7","located_in","hotel_stars","hotel_amenities","hotel_location_rating","hotel_review_summary","hotel_booking_options","hotel_results_from_web","first_seen","last_seen","last_changed"],"type":"string"},"maxItems":55,"minItems":1}],"description":"A comma separated list of business fields to include in the response (field projection).\n\nBy default all fields are returned. `business_id` is always included.\n\n**Note:** field projection trims the response body only. It does not change how the request is billed."},"radius":{"type":"number","maximum":100000,"minimum":0,"description":"Radius of the area to search in, in meters.\n\n**Allowed values:** `1-100000`","exclusiveMinimum":true},"address":{"type":"string","example":"Office of City Treasurer, 121 N LaSalle St #106, Chicago, IL 60602","maxLength":256,"description":"Find businesses by their full formatted address, including the business name."},"country":{"oneOf":[{"type":"string","maxLength":256},{"type":"array","items":{"type":"string","maxLength":256},"maxItems":32,"minItems":1}],"example":"US","description":"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).\n\nFor a list of supported country codes see *https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2*."},"zipcode":{"oneOf":[{"type":"string","maxLength":256},{"type":"array","items":{"type":"string","maxLength":256},"maxItems":32,"minItems":1}],"example":"60602","description":"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)."},"district":{"oneOf":[{"type":"string","maxLength":256},{"type":"array","items":{"type":"string","maxLength":256},"maxItems":32,"minItems":1}],"example":"Chicago Loop","description":"Find businesses in a specific district or neighbourhood, when the listing carries one.\n\nAccepts up to 32 values by repeating the parameter *(e.g. `district=value1&district=value2`)*.\n\nValues cannot be comma separated here, as a comma can be part of the value. In the POST form, send an array instead."},"top_right":{"type":"string","description":"The top-right (north-east) corner of the bounding box to search in, as a \"lat,lng\" string.\n\nSend either bottom_left with top_right, or lat with lng and radius - not both, and not a partial group."},"owner_name":{"oneOf":[{"type":"string","maxLength":256},{"type":"array","items":{"type":"string","maxLength":256},"maxItems":32,"minItems":1}],"example":"Office of City Treasurer","description":"Find businesses by the name on the owner profile.\n\nAccepts up to 32 values by repeating the parameter *(e.g. `owner_name=value1&owner_name=value2`)*.\n\nValues cannot be comma separated here, as a comma can be part of the value. In the POST form, send an array instead."},"bottom_left":{"type":"string","description":"The bottom-left (south-west) corner of the bounding box to search in, as a \"lat,lng\" string.\n\nSend either bottom_left with top_right, or lat with lng and radius - not both, and not a partial group."},"business_id":{"oneOf":[{"type":"string","maxLength":256},{"type":"array","items":{"type":"string","maxLength":256},"maxItems":32,"minItems":1}],"example":"0x102b644d009e013:0xea49e9ee285fa7bf","description":"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":{"oneOf":[{"type":"string","maxLength":256},{"type":"array","items":{"type":"string","maxLength":256},"maxItems":32,"minItems":1}],"example":"+13127443356","description":"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).\n\nSend 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`."},"street_address":{"oneOf":[{"type":"string","maxLength":256},{"type":"array","items":{"type":"string","maxLength":256},"maxItems":32,"minItems":1}],"example":"121 N LaSalle St #106","description":"Find businesses by the street line of their address on its own.\n\nA single value is matched loosely, which also finds spelling and abbreviation variants. Several values are matched exactly instead, which narrows the result.\n\nAccepts up to 32 values by repeating the parameter *(e.g. `street_address=value1&street_address=value2`)*.\n\nValues cannot be comma separated here, as a comma can be part of the value. In the POST form, send an array instead."},"business_category":{"oneOf":[{"type":"string","maxLength":256},{"type":"array","items":{"type":"string","maxLength":256},"maxItems":32,"minItems":1}],"example":"restaurant","description":"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)."},"business_category_id":{"oneOf":[{"type":"string","maxLength":256},{"type":"array","items":{"type":"string","maxLength":256},"maxItems":32,"minItems":1}],"example":"bakery","description":"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).\n\nThese 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.\n\nThe IDs are gcids (Google Maps category IDs). For a list of gcids see *https://www.openwebninja.com/blog/all-google-maps-categories*."},"main_business_category":{"oneOf":[{"type":"string","maxLength":256},{"type":"array","items":{"type":"string","maxLength":256},"maxItems":32,"minItems":1}],"example":"Coffee shop","description":"Find businesses whose primary category matches. Same value space as the business_category parameter. Accepts a comma separated list of up to 32 values, or the parameter repeated up to 32 times (values are OR'ed)."},"main_business_category_id":{"oneOf":[{"type":"string","maxLength":256},{"type":"array","items":{"type":"string","maxLength":256},"maxItems":32,"minItems":1}],"example":"restaurant","description":"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).\n\nThis is the machine ID, not the display label the main_business_category parameter matches, and the two can name different primaries.\n\nThe IDs are gcids (Google Maps category IDs). For a list of gcids see *https://www.openwebninja.com/blog/all-google-maps-categories*."}},"description":"At least one of the filter parameters below is required for search. An area is one field: a request carrying only `bottom_left` with `top_right`, or only `lat` with `lng` and `radius`, is a valid query.","additionalProperties":false},"responseSchema":{"type":"object","required":["status","request_id","parameters","data"],"properties":{"data":{"type":"object","required":["businesses","match_count","limit"],"properties":{"limit":{"type":"number","description":"Maximum number of results requested for this page (the limit parameter, or its default)."},"businesses":{"type":"array","items":{"type":"object","required":["business_id"],"properties":{"cid":{"type":"string","description":"Google CID (Customer ID) of the business."},"lat":{"type":"number","description":"Latitude of the business location."},"lng":{"type":"number","description":"Longitude of the business location."},"tld":{"type":"string","description":"Domain of the business website."},"city":{"type":"string","description":"City of the business location."},"name":{"type":"string","description":"Display name of the business."},"about":{"type":"object","required":["summary","details"],"properties":{"details":{"type":"object","nullable":true,"description":"Structured attribute map, grouped by attribute category (e.g. accessibility, amenities), each mapping an attribute identifier to a boolean.","additionalProperties":{"type":"object","additionalProperties":{"type":"boolean"}}},"summary":{"type":"string","nullable":true,"description":"Free-text description of the business."}},"description":"Free-form summary and a structured details map of business attributes.","additionalProperties":false},"phone":{"type":"string","description":"Business phone number in E.164 format when available."},"state":{"type":"string","description":"State / region of the business location."},"rating":{"type":"number","description":"Average review rating (1-5) on Google Maps."},"status":{"enum":["operational","closed","temporarily_closed"],"type":"string","description":"Operational status of the business. Values: operational, closed, temporarily_closed."},"address":{"type":"string","description":"Full formatted address, including the business name."},"country":{"type":"string","description":"ISO 3166-1 alpha-2 country code of the business location."},"website":{"type":"string","description":"Business website URL."},"zipcode":{"type":"string","description":"ZIP / postal code of the business location."},"district":{"type":"string","description":"District or neighbourhood of the business location."},"owner_id":{"type":"string","description":"ID of the Google Maps contributor account that owns this listing."},"place_id":{"type":"string","description":"Google Maps Place ID."},"timezone":{"type":"string","description":"IANA timezone of the business location."},"verified":{"type":"boolean","description":"Whether the business is verified by Google."},"last_seen":{"type":"string","description":"ISO 8601 UTC datetime the listing was last collected."},"open_24_7":{"type":"boolean","description":"Whether the business is open 24 hours a day, every day of the week."},"categories":{"type":"array","items":{"type":"string"},"description":"List of business categories as labelled by Google Maps."},"closed_dow":{"type":"array","items":{"type":"number"},"description":"Days of the week the business is closed, as ISO-8601 day numbers (1 = Monday, 7 = Sunday)."},"first_seen":{"type":"string","description":"ISO 8601 UTC datetime the listing was first collected."},"google_mid":{"type":"string","description":"Google Knowledge Graph machine ID."},"located_in":{"type":"object","required":["google_id","name"],"properties":{"name":{"type":"string","description":"Name of the parent place."},"google_id":{"type":"string","description":"Google ID of the parent place."}},"description":"Parent place this business is located in (e.g. mall) when applicable.","additionalProperties":false},"order_link":{"type":"string","description":"URL to place an order (when published)."},"owner_link":{"type":"string","description":"Link to the owner profile on Google Maps."},"owner_name":{"type":"string","description":"Display name of the owner profile."},"place_link":{"type":"string","description":"Google Maps URL for the business."},"business_id":{"type":"string","description":"Unique Google identifier of the business."},"hotel_stars":{"type":"number","description":"Hotel-only: star rating (1-5). Present only for hotels."},"photo_count":{"type":"number","description":"Total number of photos available for the business."},"price_level":{"type":"string","description":"Price level as shown on Google Maps (e.g. '$10-20')."},"booking_link":{"type":"string","description":"URL to book a service or appointment (when published)."},"category_ids":{"allOf":[{"type":"array","items":{"type":"string"}},{"type":"object","properties":{}}],"description":"Google's internal entity-type IDs for the business. Broader than categories, and usually several per business."},"last_changed":{"type":"string","description":"ISO 8601 UTC datetime the listing data last changed."},"opening_date":{"type":"string","description":"Date the business opened (when published by Google)."},"review_count":{"type":"number","description":"Total number of Google Maps reviews on the business."},"reviews_link":{"type":"string","description":"URL to view reviews on Google Maps."},"address_short":{"type":"string","description":"Formatted address without the business name."},"main_category":{"type":"string","description":"Primary business category as labelled by Google Maps."},"photos_sample":{"type":"array","items":{"type":"object","required":["photo_id","photo_url","photo_url_large","video_thumbnail_url","latitude","longitude","type","photo_datetime_utc","photo_timestamp"],"properties":{"type":{"enum":["photo","street_view","video"],"type":"string","description":"Media type. Values: photo, video, street_view."},"latitude":{"type":"number","nullable":true,"description":"Latitude where the photo was taken (when known)."},"photo_id":{"type":"string","description":"Unique Google identifier of the photo."},"longitude":{"type":"number","nullable":true,"description":"Longitude where the photo was taken (when known)."},"photo_url":{"type":"string","nullable":true,"description":"URL of the photo (default resolution)."},"photo_timestamp":{"type":"number","nullable":true,"description":"Unix epoch seconds matching photo_datetime_utc."},"photo_url_large":{"type":"string","nullable":true,"description":"URL of the photo at a larger resolution."},"photo_datetime_utc":{"type":"string","nullable":true,"description":"Original publication datetime of the photo in ISO 8601 UTC."},"video_thumbnail_url":{"type":"string","nullable":true,"description":"Thumbnail URL when the media is a video; null for still photos."}},"additionalProperties":false},"description":"Sample of representative photos for the business."},"working_hours":{"type":"object","description":"Working hours map keyed by day of the week. Each value is an array of time-range strings; absent when not published.","additionalProperties":{"type":"array","items":{"type":"string"}}},"opening_status":{"type":"string","description":"Current opening status string as shown on Google Maps (e.g. 'Open', 'Closed', 'Open 24 hours')."},"street_address":{"type":"string","description":"Street name and number portion of the address."},"hotel_amenities":{"type":"object","description":"Hotel-only: map of amenity name to availability (true/false). Present only for hotels.","additionalProperties":{"type":"boolean"}},"main_category_id":{"type":"string","description":"Google's internal ID of the primary category."},"reservations_link":{"type":"string","description":"URL to make a reservation (when published)."},"reviews_per_rating":{"type":"object","required":["1","2","3","4","5"],"properties":{"1":{"type":"number","description":"Number of 1-star reviews."},"2":{"type":"number","description":"Number of 2-star reviews."},"3":{"type":"number","description":"Number of 3-star reviews."},"4":{"type":"number","description":"Number of 4-star reviews."},"5":{"type":"number","description":"Number of 5-star reviews."}},"description":"Counts of reviews per integer rating from 1 to 5.","additionalProperties":false},"hotel_review_summary":{"type":"object","description":"Hotel-only: AI-generated review summary. Present only for hotels.","additionalProperties":{"type":"object","required":["score","summary"],"properties":{"score":{"type":"number","nullable":true},"summary":{"type":"string","nullable":true}},"additionalProperties":false}},"hotel_booking_options":{"type":"array","items":{"type":"object","required":["source","price","link","source_favicon"],"properties":{"link":{"type":"string","nullable":true,"description":"URL to book with the provider."},"price":{"type":"string","nullable":true,"description":"Nightly price as shown by the provider."},"rooms":{"type":"array","items":{"type":"object","required":["room_type","link","price"],"properties":{"link":{"type":"string","nullable":true,"description":"URL to book this room type."},"price":{"type":"string","nullable":true,"description":"Price of this room type as shown by the provider."},"room_type":{"type":"string","nullable":true,"description":"Name of the room type."}},"additionalProperties":false},"description":"Room types offered by this provider."},"source":{"type":"string","nullable":true,"description":"Booking provider the option comes from."},"source_favicon":{"type":"string","nullable":true,"description":"URL of the provider favicon."}},"additionalProperties":false},"description":"Hotel-only: booking options (provider, price, link). Present only for hotels with live rates."},"hotel_location_rating":{"type":"object","required":["Overall","Things to do","Transit","Airports"],"properties":{"Overall":{"type":"number","nullable":true,"description":"Hotel-only: overall location rating."},"Transit":{"type":"number","nullable":true,"description":"Hotel-only: location rating for transit access."},"Airports":{"type":"number","nullable":true,"description":"Hotel-only: location rating for airport access."},"Things to do":{"type":"number","nullable":true,"description":"Hotel-only: location rating for things to do nearby."}},"description":"Hotel-only: location rating breakdown when the business is a hotel.","additionalProperties":false},"hotel_results_from_web":{"type":"array","items":{"type":"object","required":["source","link","source_favicon"],"properties":{"link":{"type":"string","nullable":true,"description":"URL of the result."},"source":{"type":"string","nullable":true,"description":"Website the result comes from."},"source_favicon":{"type":"string","nullable":true,"description":"URL of the source favicon."}},"additionalProperties":false},"description":"Hotel-only: additional web-sourced results shown alongside the Google listing."}},"additionalProperties":false},"description":"List of businesses returned."},"match_count":{"type":"number","description":"Total number of businesses matching the query, across all pages."}},"description":"Businesses matching the query, with the total match count and the page size applied."},"cursor":{"type":"string","description":"Pagination cursor for the next page of results. Pass it back as the `cursor` parameter together with the same query. Absent on the last page."},"status":{"type":"string","description":"The status of the API response."},"parameters":{"type":"object","description":"The parameters the API received and used for this request, echoed back.","additionalProperties":true},"request_id":{"type":"string","description":"A unique ID to trace the API request."}}},"example":null,"exampleRequest":null,"tags":[],"displayCostAmount":"unknown","displayCostAsset":"USD","priceDynamic":true,"priceHint":null,"priceStatus":"unprobed","priceSource":"registry","requiresHandshake":false,"reviewCount":0,"rating":{"score":"0.00","successRate":"0.00","reviews":0,"stars":null,"state":"unrated"},"availabilityStatus":"unknown","priceObserved":null,"sessionDeposit":null,"pricing":{"kind":"unknown","summary":"price unknown","primary":{"kind":"dynamic","protocol":"mpp","network":"tempo","amountUsd":null,"per":"call","confidence":"unknown"},"accepted":[{"kind":"dynamic","protocol":"mpp","network":"tempo","amountUsd":null,"per":"call","confidence":"unknown"}]},"paymentMethods":[{"uid":"pm_zRSOl4i9cqgttc7T7J9Ul","protocol":"mpp","methodType":"crypto","chain":"tempo","mode":"charge","costAmount":"unknown","costPer":"request","priority":0,"asset":null,"unit":"request","depositMicros":null,"planRef":null}],"brandName":"agents.openwebninja.com","brandSlug":"agents-openwebninja-com-x402","brandBaseUrl":"https://agents.openwebninja.com","brandDocsUrl":null,"whatItDoes":"Search a local business database by name, location, category, city, state, or geographic area using a JSON POST body, supporting up to 32 multi-value filters and paginated results.","exampleAgentPrompt":"Find me up to 20 pizza restaurants in Chicago, Illinois — include their addresses, phone numbers, and ratings.","exampleUseCases":[{"title":"Multi-city competitor research","prompt":"Search for all coffee shops named 'Blue Bottle' across San Francisco, Los Angeles, and New York — show me their addresses, ratings, and phone numbers, up to 50 results."},{"title":"Regional business directory build","prompt":"Find the top 100 operational dental clinics in Texas, paginating through results if needed, and return their names, addresses, and websites."},{"title":"Nearby venue discovery by coordinates","prompt":"Search for gyms and fitness centers within 5 kilometers of latitude 40.7128, longitude -74.0060 in New York — give me their names, ratings, and operational status."}],"resultDescription":"Returns a JSON object containing a paginated array of business listings, each with fields such as business ID, name, address, city, state, country, phone, website domain, latitude, longitude, Google CID, average rating, operational status, and optionally a free-text summary and structured attribute map. Also includes the total match count and a pagination cursor when more pages are available.","failureModes":["No filter parameters provided — API requires at least one filter field","Empty businesses array returned (200) when query matches no listings — not an error","Cursor expired or used with a different query — pagination cursor is query-specific and time-limited","Conflicting area parameters — sending both bounding box and radius at once is not allowed","Field limit exceeded — arrays of city/state/etc accept at most 32 values","Truncated or malformed JSON body — POST body must be valid JSON"],"whenToPreferThis":"Use this POST endpoint over the GET search form when the query parameters are too long for a URL, when you need to filter by multiple values on several fields simultaneously (up to 32 values per field), or when you are constructing complex multi-field filters programmatically. Prefer this over area-specific endpoints when you want to combine named location filters (city, state) with optional geographic constraints in one request.","instructions":null,"reviewSummary":null,"reviewSummaryHighlights":null,"reviewSummaryConcerns":null,"reviewSummaryGeneratedAt":null,"activationCount":0,"lastUsedAt":null,"lastSuccessfullyRanAt":null,"lastHealthCheckAt":"2026-10-14T00:36:43.074Z","isFirstParty":false,"canonicalSlug":"agents-openwebninja-com-openweb-ninja-local-business-search-post-8c647265"}