> ## Documentation Index
> Fetch the complete documentation index at: https://docs.baselayer.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Online Presence: Response Reference

> Look up what each match value and source means, and where data sits in the response for each 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:

* [Website Analysis](https://docs.baselayer.com/docs/website-analysis-basics.md) — `website_analysis`, `input_website_analysis`, `ssl_validity`, `whois_record`
* [Industry Prediction](https://docs.baselayer.com/docs/industry-prediction-user-guide.md) — `industry_prediction`, `mcc_codes[]`, `sic_codes[]`
* [Social Media Profiles](https://docs.baselayer.com/docs/social-media-profiles.md) — `found_social_profiles[]`, platform metadata, `social_profiles_match[]`
* [Customer Reviews](https://docs.baselayer.com/docs/customer-reviews.md) — `found_reviews[]`, `reviews[]`, `metadata`
* [Directory Listings](https://docs.baselayer.com/docs/directory-listings.md) — `found_directory_listings[]`

***

### Match values

These fields appear at the top level of `POST /web_presence_requests` responses. `POST /searches` returns `business_address_match`, `business_website_match` and `business_website_redirect_match` only. They summarize how well the submitted data aligns with what Baselayer independently discovered online.

| Field | Possible values | Notes |
| :- | :- | :- |
| `business_address_match` | `EXACT`, `SIMILAR`, `CITY`, `STATE`, `NO_MATCH` | `SIMILAR` = address fields match but some are missing — most often city or ZIP, common when the source is a Google review. |
| `business_website_match` | `true`, `false`, `null` | `null` when no `website` was submitted in the request or no website was found. |
| `business_website_redirect_match` | `true`, `false`, `null` | Whether the submitted website redirects to the discovered website. |
| `email_match` | `EXACT`, `DOMAIN`, `NO_MATCH`, `null` | `DOMAIN` = different local-part but same domain as discovered email (e.g., `billing@acme.com` vs. `info@acme.com`). `null` when no email was submitted. |
| `phone_number_match` | `EXACT`, `AREA_CODE`, `NO_MATCH`, `null` | `AREA_CODE` = same area code but different number. `null` when no phone was submitted. |
| `people_match` | `true`, `false`, `null` | Whether any submitted officer names were found and matched online. `null` when no `officer_names` were submitted. |

***

### Match sources

Most `*_match` fields have 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.

| Value | Meaning |
| :- | :- |
| `FOUND_WEBSITE` | Found on the website Baselayer independently discovered |
| `INPUT_WEBSITE` | Found on the website submitted in the request |
| `SOCIAL_PROFILE` | Found on a social media profile |
| `INPUT_SOCIAL_PROFILE` | Found on a social media profile submitted in the request |
| `REVIEW` | Found on a review platform (Google, Yelp, etc.) |
| `DIRECTORY` | Found on an online directory |

Fields with a paired `*_sources` array: `business_address_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**.

| Data | Via `POST /searches` | Via `POST /web_presence_requests` |
| :- | :- | :- |
| Match flags | Top level | Top level |
| `*_match_sources` arrays | Not available | Top level |
| `found_website` | `business.website` | Top level — the URL Baselayer discovered |
| `website_analysis` | **Not inline.** Retrieved via `GET /website_analysis_requests/{id}` using the orderable tracking object in `orderables[]` | **Inline** at top level |
| `input_website_analysis` | Not 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_prediction` | **Not inline.** Retrieved via `GET /naics_prediction_requests/{id}` | **Inline** at top level |
| Social profiles | `business.social_profiles[]` (requires `Order.Enhanced`) | `found_social_profiles[]` at top level (requires `Order.SocialMedia`) |
| Reviews | `business.reviews[]` (requires `Order.Enhanced`); individual review text not available | `found_reviews[]` at top level (requires `Order.ReviewSummary` or `Order.ReviewFull`) |
| Directory listings | Not available | `found_directory_listings[]` at top level (requires `Order.DirectoryListing`) |
| `input_social_profiles[]` | Not available | Top level — scraped profiles derived from `social_profiles` input |
| `social_profiles_match[]` | Not available | Top level — verification result per submitted profile |
| Discovered addresses | Merged into `business.addresses[]` via `Order.Enhanced` | Nested inside `website_analysis.addresses[]`, `found_social_profiles[i]`, `found_reviews[i]`. No unified list. |
| Discovered officers/people | Merged into `business.business_officers[]` via `Order.Enhanced` | Nested inside `website_analysis.people[]`. No unified list. |
| PEP screening | Top level (via `Order.Pep`) | Not available |
| `orderables[]` | Top level — tracking objects for Website Analysis and Industry Prediction | Not applicable |

***

### The website fields, demystified

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

| Field | Path | What it is |
| :- | :- | :- |
| `website` | Both | The website URL **you submitted** in the request. `null` if none was provided. |
| `found_website` or `business.website` | Both (different name per path) | The website URL **Baselayer independently discovered** for the business. |
| `website_analysis.url` | Both (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_website` | Both | Website 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

| State | Meaning |
| :- | :- |
| `PENDING` | The request has been received and is queued for processing. |
| `EXECUTING` | The request is still in progress. Poll the status endpoint or wait for the webhook. |
| `COMPLETED` | All requested sub-products have finished processing. Results are available. |
| `FAILED` | The request could not be completed. On `/searches`, this typically means no registration record matched the submitted inputs, so orderables will be empty even if `options` were provided. |
| `CANCELLED` | The request was cancelled before completing. |

`COMPLETED`, `FAILED`, and `CANCELLED` are terminal — once a request reaches one of them, its `state` never changes.

***

### Related guides

* [Online Presence: Basics](https://docs.baselayer.com/docs/online-presence-basics.md) — integration path decision guide
* [Online Presence: Best Practices](https://docs.baselayer.com/docs/web-presence-orderables.md) — how to use these fields for onboarding decisions
* [Website Analysis](https://docs.baselayer.com/docs/website-analysis-basics.md)
* [Industry Prediction](https://docs.baselayer.com/docs/industry-prediction-user-guide.md)
* [Social Media Profiles](https://docs.baselayer.com/docs/social-media-profiles.md)
* [Customer Reviews](https://docs.baselayer.com/docs/customer-reviews.md)
* [Directory Listings](https://docs.baselayer.com/docs/directory-listings.md)


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.