Nextdoor conversions check captured requests and credentials.
Nextdoor CAPI v2 conversion events with captured POST and advisory Bearer, JSON entity, MIME and HTTPS checks. Existing privacy, legacy field and attribution policy conflicts remain explicit.
POST and captured JSON transport are checked, with advisory Bearer credentials. Existing legacy field and privacy policy differences remain explicit. Account authorization requires additional context.
What this pack matches
Rules
Codes are stable. A finding in CI, MCP, or the playground lands on the same id.
| Field | Required | What it checks | Rule ids | Source |
|---|---|---|---|---|
event_name |
required | It is the conversion event name. Nextdoor documents a fixed lowercase set. Native JSON type: string. Fix: Set `event_name` to a documented value such as `purchase` or `page_view`. | vendor.nextdoor-conversions-api.body.event_name.missingvendor.nextdoor-conversions-api.body.event_name.emptyvendor.nextdoor-conversions-api.body.event_name.invalid |
docs |
action_source |
required | It names the channel the conversion happened on. Native JSON type: string. Fix: Set `action_source` to a documented channel such as `website`. | vendor.nextdoor-conversions-api.body.action_source.missingvendor.nextdoor-conversions-api.body.action_source.emptyvendor.nextdoor-conversions-api.body.action_source.invalid |
docs |
event_id |
required | It identifies the event so Pixel and CAPI can deduplicate. Native JSON type: string. Fix: Set `event_id` to the same deterministic id the Pixel sent. | vendor.nextdoor-conversions-api.body.event_id.missingvendor.nextdoor-conversions-api.body.event_id.emptyvendor.nextdoor-conversions-api.body.event_id.invalid |
docs |
event_time_epoch |
optional | Unix seconds, not milliseconds. The current Data Types page defines Integer as signed32-bit. No arbitrary10-digit minimum is imposed. Native JSON type: integer. Minimum numeric value: -2147483648. Maximum numeric value: 2147483647. Fix: Send `event_time_epoch` as a 10-digit Unix timestamp in seconds. | vendor.nextdoor-conversions-api.body.event_time_epoch.invalid |
docs |
data_source_id |
required | It is the Pixel ID. Nextdoor documents `data_source_id` and deprecated `pixel_id`. Native JSON type: string. Fix: Set `data_source_id` to the Pixel ID from Nextdoor Ads. | vendor.nextdoor-conversions-api.body.data_source_id.missingvendor.nextdoor-conversions-api.body.data_source_id.emptyvendor.nextdoor-conversions-api.body.data_source_id.invalid |
docs |
customer |
required | It holds matching identifiers. Nextdoor documents it as required. Native JSON type: object. Fix: Send a `customer` object with at least one of hashed `email`, hashed `phone_number`, or `click_id`. | vendor.nextdoor-conversions-api.body.customer.missingvendor.nextdoor-conversions-api.body.customer.invalid |
docs |
action_source_url |
optional | It is the page URL. Nextdoor documents it as required for website events. Native JSON type: string. Fix: Set `action_source_url` to the absolute page URL. | vendor.nextdoor-conversions-api.body.action_source_url.emptyvendor.nextdoor-conversions-api.body.action_source_url.invalid |
docs |
customer.email |
optional | It is the SHA-256 digest of the email after trim and lowercase. Value diagnostic severity: warning. Native JSON type: string. Fix: Trim, lowercase, SHA-256, and send 64 lowercase hex characters. | vendor.nextdoor-conversions-api.body.customer.email.emptyvendor.nextdoor-conversions-api.body.customer.email.invalid |
docs |
customer.phone_number |
optional | It is the SHA-256 digest of the phone number. Value diagnostic severity: warning. Native JSON type: string. Fix: Hash the ten-digit phone and send 64 lowercase hex characters. | vendor.nextdoor-conversions-api.body.customer.phone_number.emptyvendor.nextdoor-conversions-api.body.customer.phone_number.invalid |
docs |
customer.click_id |
optional | It is the `ndclid` from the Nextdoor click URL. Native JSON type: string. | vendor.nextdoor-conversions-api.body.customer.click_id.emptyvendor.nextdoor-conversions-api.body.customer.click_id.invalid |
docs |
customer.client_user_agent |
optional | It is the raw browser user agent. Nextdoor documents it as required for website events, and not hashed. Native JSON type: string. | vendor.nextdoor-conversions-api.body.customer.client_user_agent.emptyvendor.nextdoor-conversions-api.body.customer.client_user_agent.invalid |
docs |
customer.client_ip_address |
optional | It is the browser IP, IPv4 or IPv6, sent unhashed. Native JSON type: string. | vendor.nextdoor-conversions-api.body.customer.client_ip_address.emptyvendor.nextdoor-conversions-api.body.customer.client_ip_address.invalid |
docs |
customer.first_name |
optional | It is the SHA-256 digest of the first name after lowercase. Value diagnostic severity: warning. Native JSON type: string. Fix: Lowercase, SHA-256, and send 64 lowercase hex characters. | vendor.nextdoor-conversions-api.body.customer.first_name.emptyvendor.nextdoor-conversions-api.body.customer.first_name.invalid |
docs |
customer.last_name |
optional | It is the SHA-256 digest of the last name after lowercase. Value diagnostic severity: warning. Native JSON type: string. Fix: Lowercase, SHA-256, and send 64 lowercase hex characters. | vendor.nextdoor-conversions-api.body.customer.last_name.emptyvendor.nextdoor-conversions-api.body.customer.last_name.invalid |
docs |
customer.date_of_birth |
optional | Data Types explicitly uses YYYYMMDD; older Track examples hash this field. Plain date calendar validity is checked separately. Value diagnostic severity: warning. Native JSON type: string. Fix: Format as YYYYMMDD, SHA-256, and send 64 lowercase hex characters. | vendor.nextdoor-conversions-api.body.customer.date_of_birth.emptyvendor.nextdoor-conversions-api.body.customer.date_of_birth.invalid |
docs |
customer.street_address |
optional | It is the SHA-256 digest of the street address. Value diagnostic severity: warning. Native JSON type: string. | vendor.nextdoor-conversions-api.body.customer.street_address.emptyvendor.nextdoor-conversions-api.body.customer.street_address.invalid |
docs |
customer.city |
optional | It is the SHA-256 digest of the city after lowercase with no spaces. Value diagnostic severity: warning. Native JSON type: string. | vendor.nextdoor-conversions-api.body.customer.city.emptyvendor.nextdoor-conversions-api.body.customer.city.invalid |
docs |
customer.state |
optional | Preserve hashed fields in the Track example and explicit plain two-letter fields in Data Types. Registered country policy requires separate source reconciliation. Value diagnostic severity: warning. Native JSON type: string. | vendor.nextdoor-conversions-api.body.customer.state.emptyvendor.nextdoor-conversions-api.body.customer.state.invalid |
docs |
customer.zip_code |
optional | Data Types describes a plain string postal code. Preserve hashed strings in the Track example without requiring every postal code to be a digest. Value diagnostic severity: warning. Native JSON type: string. | vendor.nextdoor-conversions-api.body.customer.zip_code.emptyvendor.nextdoor-conversions-api.body.customer.zip_code.invalid |
docs |
customer.country |
optional | Preserve hashed fields in the Track example and explicit plain two-letter fields in Data Types. Registered country policy requires separate source reconciliation. Value diagnostic severity: warning. Native JSON type: string. | vendor.nextdoor-conversions-api.body.customer.country.emptyvendor.nextdoor-conversions-api.body.customer.country.invalid |
docs |
customer.gender |
optional | Data Types explicitly permits f/m; preserve the older hashed branch. Value diagnostic severity: warning. Native JSON type: string. Fix: Hash `f`, `m`, or `n` with SHA-256 and send 64 lowercase hex characters. | vendor.nextdoor-conversions-api.body.customer.gender.emptyvendor.nextdoor-conversions-api.body.customer.gender.invalid |
docs |
customer.external_id |
optional | It is the advertiser's own user id, such as a loyalty id. Native JSON type: string. | vendor.nextdoor-conversions-api.body.customer.external_id.emptyvendor.nextdoor-conversions-api.body.customer.external_id.invalid |
docs |
custom.order_id |
optional | It is the order ID for the transaction. Nextdoor documents it as required for offline events. Native JSON type: string. | vendor.nextdoor-conversions-api.body.custom.order_id.emptyvendor.nextdoor-conversions-api.body.custom.order_id.invalid |
docs |
custom.order_value |
optional | The Track API example sends an amount string such as 100. The Data Types reference also documents Money strings such as USD 10. Native JSON type: string. Fix: Send a decimal amount string, optionally prefixed with an ISO currency code, such as 100 or USD 10. | vendor.nextdoor-conversions-api.body.custom.order_value.emptyvendor.nextdoor-conversions-api.body.custom.order_value.invalid |
docs |
custom.delivery_category |
optional | It names how the purchase was fulfilled. Nextdoor documents `in_store`, `curbside`, and `home_delivery`. Native JSON type: string. | vendor.nextdoor-conversions-api.body.custom.delivery_category.emptyvendor.nextdoor-conversions-api.body.custom.delivery_category.invalid |
docs |
custom.product_context[].id |
optional | It is the product id on a `product_context` row. Nextdoor documents `id` on each product object. Native JSON type: string. Fix: Set `custom.product_context[].id` to the SKU or catalog id, or drop the empty pair. | vendor.nextdoor-conversions-api.body.custom.product_context[].id.emptyvendor.nextdoor-conversions-api.body.custom.product_context[].id.invalid |
docs |
custom.product_context[].content_name |
optional | It is the product name on a `product_context` row. Nextdoor lists `content_name` with `id`, `quantity`, and `item_price`. Native JSON type: string. Fix: Set `custom.product_context[].content_name` to the product name, or drop the empty pair. | vendor.nextdoor-conversions-api.body.custom.product_context[].content_name.emptyvendor.nextdoor-conversions-api.body.custom.product_context[].content_name.invalid |
docs |
custom.product_context[].quantity |
optional | It is the quantity of that product. Nextdoor documents `quantity` as an integer on each product object. Native JSON type: integer. Minimum numeric value: -2147483648. Maximum numeric value: 2147483647. Fix: Send `custom.product_context[].quantity` as a whole number, such as `2`. | vendor.nextdoor-conversions-api.body.custom.product_context[].quantity.invalid |
docs |
custom.product_context[].item_price |
optional | It is the unit price of that product. The conversions/track example uses a decimal such as `5.99`. It is not a replacement for `custom.order_value`. Native JSON type: number. Fix: Send `custom.product_context[].item_price` as a number, such as `5.99`. Put the order total in `custom.order_value`. | vendor.nextdoor-conversions-api.body.custom.product_context[].item_price.emptyvendor.nextdoor-conversions-api.body.custom.product_context[].item_price.invalid |
docs |
app.app_id |
optional | It is the App Store or Google Play app id. Nextdoor documents the `app` object as required for app events. Native JSON type: string. Fix: Set `app.app_id` to the store app id. | vendor.nextdoor-conversions-api.body.app.app_id.emptyvendor.nextdoor-conversions-api.body.app.app_id.invalid |
docs |
app.platform |
optional | It is the mobile platform. Nextdoor documents `iOS` and `Android`. Native JSON type: string. Fix: Set `app.platform` to `iOS` or `Android`. | vendor.nextdoor-conversions-api.body.app.platform.emptyvendor.nextdoor-conversions-api.body.app.platform.invalid |
docs |
app.app_version |
optional | It is the mobile app version string. Native JSON type: string. | vendor.nextdoor-conversions-api.body.app.app_version.emptyvendor.nextdoor-conversions-api.body.app.app_version.invalid |
docs |
app.app_tracking_enabled |
optional | It is the ATT opt-in flag. Nextdoor documents a boolean. Native JSON type: boolean. Fix: Send `app.app_tracking_enabled` as `true` or `false`. | vendor.nextdoor-conversions-api.body.app.app_tracking_enabled.emptyvendor.nextdoor-conversions-api.body.app.app_tracking_enabled.invalid |
docs |
restricted_data_usage |
optional | When set, Nextdoor documents `1` (or `true`) to keep the event for reporting only. Native JSON type: integer or boolean or null. Fix: Send `restricted_data_usage` as an integer, such as `1`. | vendor.nextdoor-conversions-api.body.restricted_data_usage.invalid |
docs |
restricted_data_usage_country |
optional | It associates a country with Limited Data Use. Nextdoor documents `1` for the United States. Native JSON type: integer or null. Fix: Set `restricted_data_usage_country` to `1`. | vendor.nextdoor-conversions-api.body.restricted_data_usage_country.emptyvendor.nextdoor-conversions-api.body.restricted_data_usage_country.invalid |
docs |
restricted_data_usage_state |
optional | It associates a US state with Limited Data Use. Nextdoor documents codes `1000` (California) through `1018` (Rhode Island). Native JSON type: integer or null. Fix: Set `restricted_data_usage_state` to a documented code such as `1000` for California. | vendor.nextdoor-conversions-api.body.restricted_data_usage_state.emptyvendor.nextdoor-conversions-api.body.restricted_data_usage_state.invalid |
docs |
delivery_optimization |
optional | True means the event may be used for optimization. False means attribution only. Native JSON type: boolean. Fix: Send `delivery_optimization` as `true` or `false`. | vendor.nextdoor-conversions-api.body.delivery_optimization.emptyvendor.nextdoor-conversions-api.body.delivery_optimization.invalid |
docs |
event_timezone |
optional | It is an optional timezone for where the conversion took place. Native JSON type: string. | vendor.nextdoor-conversions-api.body.event_timezone.emptyvendor.nextdoor-conversions-api.body.event_timezone.invalid |
docs |
partner_id |
optional | It names the integration vendor or agency partner. Nextdoor documents it as reference, not attribution. Native JSON type: string. | vendor.nextdoor-conversions-api.body.partner_id.emptyvendor.nextdoor-conversions-api.body.partner_id.invalid |
docs |
test_event |
optional | It flags a test conversion. Nextdoor documents a string such as `TEST1234`. Native JSON type: string. | vendor.nextdoor-conversions-api.body.test_event.emptyvendor.nextdoor-conversions-api.body.test_event.invalid |
docs |
root |
optional | Each event is a JSON object, rather than a scalar or list. Native JSON type: object. | vendor.nextdoor-conversions-api.body.root.invalid |
docs |
custom |
optional | The vendor documents the JSON shape or value type of this field. Native JSON type: object. | vendor.nextdoor-conversions-api.body.custom.invalid |
docs |
app |
optional | The vendor documents the JSON shape or value type of this field. Native JSON type: object. | vendor.nextdoor-conversions-api.body.app.invalid |
docs |
event_time |
deprecated | The current Nextdoor reference explicitly marks this legacy field deprecated. Native JSON type: string. | vendor.nextdoor-conversions-api.body.event_time.deprecatedvendor.nextdoor-conversions-api.body.event_time.emptyvendor.nextdoor-conversions-api.body.event_time.invalid |
docs |
client_id |
deprecated | The current Nextdoor reference explicitly marks this legacy field deprecated. Native JSON type: string. | vendor.nextdoor-conversions-api.body.client_id.deprecatedvendor.nextdoor-conversions-api.body.client_id.invalid |
docs |
pixel_id |
deprecated | The current Nextdoor reference explicitly marks this legacy field deprecated. Native JSON type: string. | vendor.nextdoor-conversions-api.body.pixel_id.deprecatedvendor.nextdoor-conversions-api.body.pixel_id.invalid |
docs |
custom.product_context |
optional | The vendor documents the JSON shape or value type of this field. Native JSON type: array. | vendor.nextdoor-conversions-api.body.custom.product_context.invalid |
docs |
custom.product_context[] |
optional | The vendor documents the JSON shape or value type of this field. Native JSON type: object. | vendor.nextdoor-conversions-api.body.custom.product_context[].invalid |
docs |
custom_data.order_id |
optional | It is the order ID for the transaction. Nextdoor documents it as required for offline events. Native JSON type: string. | vendor.nextdoor-conversions-api.body.custom_data.order_id.emptyvendor.nextdoor-conversions-api.body.custom_data.order_id.invalid |
docs |
custom_data.order_value |
optional | The Track API example sends an amount string such as 100. The Data Types reference also documents Money strings such as USD 10. Native JSON type: string. Fix: Send a decimal amount string, optionally prefixed with an ISO currency code, such as 100 or USD 10. | vendor.nextdoor-conversions-api.body.custom_data.order_value.emptyvendor.nextdoor-conversions-api.body.custom_data.order_value.invalid |
docs |
custom_data.delivery_category |
optional | It names how the purchase was fulfilled. Nextdoor documents `in_store`, `curbside`, and `home_delivery`. Native JSON type: string. | vendor.nextdoor-conversions-api.body.custom_data.delivery_category.emptyvendor.nextdoor-conversions-api.body.custom_data.delivery_category.invalid |
docs |
custom_data.product_context[].id |
optional | It is the product id on a `product_context` row. Nextdoor documents `id` on each product object. Native JSON type: string. Fix: Set `custom.product_context[].id` to the SKU or catalog id, or drop the empty pair. | vendor.nextdoor-conversions-api.body.custom_data.product_context[].id.emptyvendor.nextdoor-conversions-api.body.custom_data.product_context[].id.invalid |
docs |
custom_data.product_context[].content_name |
optional | It is the product name on a `product_context` row. Nextdoor lists `content_name` with `id`, `quantity`, and `item_price`. Native JSON type: string. Fix: Set `custom.product_context[].content_name` to the product name, or drop the empty pair. | vendor.nextdoor-conversions-api.body.custom_data.product_context[].content_name.emptyvendor.nextdoor-conversions-api.body.custom_data.product_context[].content_name.invalid |
docs |
custom_data.product_context[].quantity |
optional | It is the quantity of that product. Nextdoor documents `quantity` as an integer on each product object. Native JSON type: integer. Minimum numeric value: -2147483648. Maximum numeric value: 2147483647. Fix: Send `custom.product_context[].quantity` as a whole number, such as `2`. | vendor.nextdoor-conversions-api.body.custom_data.product_context[].quantity.invalid |
docs |
custom_data.product_context[].item_price |
optional | It is the unit price of that product. The conversions/track example uses a decimal such as `5.99`. It is not a replacement for `custom.order_value`. Native JSON type: number. Fix: Send `custom.product_context[].item_price` as a number, such as `5.99`. Put the order total in `custom.order_value`. | vendor.nextdoor-conversions-api.body.custom_data.product_context[].item_price.emptyvendor.nextdoor-conversions-api.body.custom_data.product_context[].item_price.invalid |
docs |
custom_data |
optional | The vendor documents the JSON shape or value type of this field. Native JSON type: object. | vendor.nextdoor-conversions-api.body.custom_data.invalid |
docs |
custom_data.product_context |
optional | The vendor documents the JSON shape or value type of this field. Native JSON type: array. | vendor.nextdoor-conversions-api.body.custom_data.product_context.invalid |
docs |
custom_data.product_context[] |
optional | The vendor documents the JSON shape or value type of this field. Native JSON type: object. | vendor.nextdoor-conversions-api.body.custom_data.product_context[].invalid |
docs |
custom.app_id |
optional | Optional published custom-data field. The Track and Data Types object spellings are both preserved. Native JSON type: string. | vendor.nextdoor-conversions-api.body.custom.app_id.invalid |
docs |
custom.app_tracking_enabled |
optional | Optional published custom-data field. The Track and Data Types object spellings are both preserved. Native JSON type: boolean. | vendor.nextdoor-conversions-api.body.custom.app_tracking_enabled.invalid |
docs |
custom.platform |
optional | Optional published custom-data field. The Track and Data Types object spellings are both preserved. Native JSON type: string. | vendor.nextdoor-conversions-api.body.custom.platform.invalid |
docs |
custom.app_version |
optional | Optional published custom-data field. The Track and Data Types object spellings are both preserved. Native JSON type: string. | vendor.nextdoor-conversions-api.body.custom.app_version.invalid |
docs |
custom.currency |
optional | Optional published custom-data field. The Track and Data Types object spellings are both preserved. Native JSON type: string. | vendor.nextdoor-conversions-api.body.custom.currency.emptyvendor.nextdoor-conversions-api.body.custom.currency.invalid |
docs |
custom_data.app_id |
optional | Optional published custom-data field. The Track and Data Types object spellings are both preserved. Native JSON type: string. | vendor.nextdoor-conversions-api.body.custom_data.app_id.invalid |
docs |
custom_data.app_tracking_enabled |
optional | Optional published custom-data field. The Track and Data Types object spellings are both preserved. Native JSON type: boolean. | vendor.nextdoor-conversions-api.body.custom_data.app_tracking_enabled.invalid |
docs |
custom_data.platform |
optional | Optional published custom-data field. The Track and Data Types object spellings are both preserved. Native JSON type: string. | vendor.nextdoor-conversions-api.body.custom_data.platform.invalid |
docs |
custom_data.app_version |
optional | Optional published custom-data field. The Track and Data Types object spellings are both preserved. Native JSON type: string. | vendor.nextdoor-conversions-api.body.custom_data.app_version.invalid |
docs |
custom_data.currency |
optional | Optional published custom-data field. The Track and Data Types object spellings are both preserved. Native JSON type: string. | vendor.nextdoor-conversions-api.body.custom_data.currency.emptyvendor.nextdoor-conversions-api.body.custom_data.currency.invalid |
docs |
opt_out |
optional | Native JSON type: boolean. | vendor.nextdoor-conversions-api.body.opt_out.invalid |
docs |
event_source_url |
optional | Native JSON type: string. | vendor.nextdoor-conversions-api.body.event_source_url.emptyvendor.nextdoor-conversions-api.body.event_source_url.invalid |
docs |
body.user_needs_an_identifier |
required | `customer` carries none of the match keys Nextdoor requires. Send hashed `email`, hashed `phone_number`, or `click_id`. Fix: Add at least one of hashed email, hashed phone, or `ndclid`. | vendor.nextdoor-conversions-api.body.user_needs_an_identifier |
docs |
body.website_requires_url |
required | The event is `action_source: website` but carries no `action_source_url`. Nextdoor documents the page URL as required for website events. Fix: Set `action_source_url` to the absolute page URL. | vendor.nextdoor-conversions-api.body.website_requires_url |
docs |
body.website_requires_user_agent |
required | The event is `action_source: website` but carries no `customer.client_user_agent`. Nextdoor documents the user agent as required for website CAPI events. Fix: Send the raw browser user agent in `customer.client_user_agent`. | vendor.nextdoor-conversions-api.body.website_requires_user_agent |
docs |
body.purchase_requires_order_value |
required | Purchase requires an order value in one of the two published custom-data object variants. Fix: Send the order total as a decimal amount string, such as 100 or USD 10. | vendor.nextdoor-conversions-api.body.purchase_requires_order_value |
docs |
body.app_requires_app_id |
required | App events need an app ID in one of the published app/custom-data variants. Fix: Set `app.app_id` to the App Store or Google Play app id. | vendor.nextdoor-conversions-api.body.app_requires_app_id |
docs |
body.unhashed_email |
required | `customer.email` carries what looks like a raw email address. Nextdoor documents SHA-256 after trim and lowercase. Fix: Trim, lowercase, hash with SHA-256, and send the 64-character hex digest. | vendor.nextdoor-conversions-api.body.unhashed_email |
docs |
body.hashed_plaintext_field |
required | This field looks like a SHA-256 digest, but Nextdoor documents `client_ip_address` and `client_user_agent` as unhashed. Fix: Send the raw IP address or user agent. | vendor.nextdoor-conversions-api.body.hashed_plaintext_field |
docs |
body.event_timestamp_required |
required | The API requires epoch seconds or the legacy ISO timestamp. The legacy event_time field remains deprecated. | vendor.nextdoor-conversions-api.body.event_timestamp_required |
docs |
body.dob_calendar |
required | The plain birth-date branch must be a calendar-valid YYYYMMDD date. Hashed birth dates preserve their separate branch. | vendor.nextdoor-conversions-api.body.dob_calendar |
docs |
body.submission_delay_recommended |
recommended | Nextdoor recommends submitting conversions promptly within one hour. This is a data-quality recommendation, not an undocumented rejection window. | vendor.nextdoor-conversions-api.body.submission_delay_recommended |
docs |
body.legacy_submission_delay_recommended |
recommended | Nextdoor recommends submitting conversions within one hour. event_time remains a deprecated supported alternative. | vendor.nextdoor-conversions-api.body.legacy_submission_delay_recommended |
docs |
method |
required | The published conversion operation uses POST. Complete HTTP capture contract. Native JSON type: string. | vendor.nextdoor-conversions-api.http.method.missingvendor.nextdoor-conversions-api.http.method.emptyvendor.nextdoor-conversions-api.http.method.invalid |
docs |
content_type |
recommended | The official producer sends application/json. MIME variations receive advice without inventing an exhaustive receiver contract. Complete HTTP capture contract. Presence diagnostic severity: warning. Native JSON type: string. | vendor.nextdoor-conversions-api.http.content_type.missingvendor.nextdoor-conversions-api.http.content_type.emptyvendor.nextdoor-conversions-api.http.content_type.invalid |
docs |
headers.authorization |
recommended | The official Nextdoor integration example sends a Bearer access token in Authorization. Carrier advice does not verify token validity, permissions or issuance. Complete HTTP capture contract. Presence diagnostic severity: warning. Native JSON type: string. | vendor.nextdoor-conversions-api.http.headers.authorization.missingvendor.nextdoor-conversions-api.http.headers.authorization.emptyvendor.nextdoor-conversions-api.http.headers.authorization.invalid |
docs |
body_encoding |
recommended | The published conversion profile sends a JSON entity. Unsupported compressed bodies and unavailable capture evidence remain unknown. Complete HTTP capture contract. Applies when {"kind":"all","conditions":[{"kind":"not","condition":{"kind":"value_in","param":"body_encoding","values":["unsupported"]}},{"kind":"any","conditions":[{"kind":"value_in","param":"body_encoding","values":["none"]},{"kind":"value_in","param":"content_type","values":["application/json"]}]}]}. Presence diagnostic severity: warning. | vendor.nextdoor-conversions-api.http.body_encoding.missingvendor.nextdoor-conversions-api.http.body_encoding.emptyvendor.nextdoor-conversions-api.http.body_encoding.invalid |
docs |
url |
optional | The published conversion endpoint uses HTTPS. This is transport advice, without a receiver redirect claim. Complete HTTP capture contract. Presence diagnostic severity: warning. Native JSON type: string. | vendor.nextdoor-conversions-api.http.url.emptyvendor.nextdoor-conversions-api.http.url.invalid |
docs |
Validate a payload
pixellint validate request @request.json --rulepack vendor/nextdoor-conversions-api
Try this failing payload in the playground. An example with a validation finding.
{
"url": "https://ads.nextdoor.com/v2/api/conversions/track",
"method": "GET",
"headers": {
"Content-Type": "application/json",
"Authorization": "Bearer synthetic-token"
},
"body": "{\"event_name\":\"purchase\",\"event_id\":\"order-synthetic\",\"event_time_epoch\":1770000000,\"action_source\":\"physical_store\",\"data_source_id\":\"synthetic-pixel\",\"customer\":{\"click_id\":\"92dea472-8b8b-456f-8b5b-b2a55147c3cc\"},\"custom\":{\"order_value\":\"USD12.00\",\"order_id\":\"order-synthetic\"}}"
}
cargo install pixellint
·
npm install pixellint