Online Presence: Response Reference

Match values, match sources, and response shape by integration path.

This reference covers the structural elements shared across all Online Presence products — match values, match sources, how data is organized differently across integration paths, and how to distinguish the various website-related fields in a response.

For field-level documentation of individual sub-products, see the product guides:


Match values

These fields appear at the top level of both POST /searches and POST /web_presence_requests responses. They summarize how well the submitted data aligns with what Baselayer independently discovered online.

FieldPossible valuesNotes
business_address_matchEXACT, SIMILAR, CITY, STATE, NO_MATCHSIMILAR = address fields match but some are missing — most often city or ZIP, common when the source is a Google review.
business_website_matchtrue, false, nullnull when no website was submitted in the request or no website was found.
business_website_redirect_matchtrue, false, nullWhether the submitted website redirects to the discovered website.
email_matchEXACT, DOMAIN, NO_MATCH, nullDOMAIN = different local-part but same domain as discovered email (e.g., [email protected] vs. [email protected]). null when no email was submitted.
phone_number_matchEXACT, AREA_CODE, NO_MATCH, nullAREA_CODE = same area code but different number. null when no phone was submitted.
people_matchtrue, false, nullWhether any submitted officer names were found and matched online. null when no officer_names were submitted.

Match sources

Every *_match field has a paired *_match_sources array that lists where Baselayer found the matching data. Use these to understand the strength and provenance of each match — a phone number confirmed across FOUND_WEBSITE, REVIEW, and DIRECTORY is a much stronger signal than one sourced from a single location.

ValueMeaning
FOUND_WEBSITEFound on the website Baselayer independently discovered
INPUT_WEBSITEFound on the website submitted in the request
SOCIAL_PROFILEFound on a social media profile
INPUT_SOCIAL_PROFILEFound on a social media profile submitted in the request
REVIEWFound on a review platform (Google, Yelp, etc.)
DIRECTORYFound on an online directory

Fields with a paired *_sources array: business_address_match_sources, business_website_match_sources, email_match_sources, phone_number_match_sources, people_match_sources.


Response shape by integration path

The underlying field structures are identical across both paths — a website_analysis object looks the same regardless of how you requested it. What changes is where data sits and how you access it.

DataVia POST /searchesVia POST /web_presence_requests
Match flagsTop levelTop level
*_match_sources arraysTop levelTop level
found_websitebusiness.websiteTop level — the URL Baselayer discovered
website_analysisNot inline. Retrieved via GET /website_analysis_requests/{id} using the orderable tracking object in orderables[]Inline at top level
input_website_analysisNot a named field. When a website is submitted and a different domain is discovered, a second WebsiteAnalysisRequest orderable is returned in orderables[]. GET each to identify which domain was analyzed.Top level inline when website was submitted; null otherwise
industry_predictionNot inline. Retrieved via GET /naics_prediction_requests/{id}Inline at top level
Social profilesbusiness.social_profiles[] (requires Order.Enhanced)found_social_profiles[] at top level (requires Order.SocialMedia)
Reviewsbusiness.reviews[] (requires Order.Enhanced); individual review text not availablefound_reviews[] at top level (requires Order.ReviewSummary or Order.ReviewFull)
Directory listingsNot availablefound_directory_listings[] at top level (requires Order.DirectoryListing)
input_social_profiles[]Not availableTop level — scraped profiles derived from social_profiles input
social_profiles_match[]Not availableTop level — verification result per submitted profile
Discovered addressesMerged into business.addresses[] via Order.EnhancedNested inside website_analysis.addresses[], found_social_profiles[i], found_reviews[i]. No unified list.
Discovered officers/peopleMerged into business.business_officers[] via Order.EnhancedNested inside website_analysis.people[]. No unified list.
PEP screeningTop level (via Order.Pep)Not available
orderables[]Top level — tracking objects for Website Analysis and Industry PredictionNot applicable

The website fields, demystified

Several fields relate to websites and it is easy to confuse them. Here is what each one is:

FieldPathWhat it is
websiteBothThe website URL you submitted in the request. null if none was provided.
found_website or business.websiteBoth (different name per path)The website URL Baselayer independently discovered for the business.
website_analysis.urlBoth (inline on /web_presence_requests; via GET on /searches)The URL that was actually analyzed. Equal to found_website for the discovered analysis.
input_website_analysis.url/web_presence_requests (inline); /searches (second orderable via GET)The URL analyzed for the submitted domain. Only present when website was submitted.
business_websiteBothWebsite found within a social profile, review, or directory listing record — platform-reported, not Baselayer-discovered.

When do you get two website analyses? When a website is submitted and Baselayer discovers a different domain, both are analyzed. On /web_presence_requests this produces both website_analysis and input_website_analysis inline. On /searches it produces two WebsiteAnalysisRequest entries in orderables[] — indistinguishable in the array; call GET on each to identify which domain was analyzed via website_analysis.url.


Request states

StateMeaning
COMPLETEDAll requested sub-products have finished processing. Results are available.
EXECUTINGThe request is still in progress. Poll the status endpoint or wait for the webhook.
FAILEDThe request could not be completed. On /searches, this typically means no registration record matched the submitted inputs — orderables will be empty even if options were provided. On /web_presence_requests, check the error field for details.

Related guides