pixellint

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

Hosts
ads.nextdoor.com
Paths
/v2/api/conversions/track
Vendor docs
developer.nextdoor.com/reference/conversions-track

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.missing
vendor.nextdoor-conversions-api.body.event_name.empty
vendor.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.missing
vendor.nextdoor-conversions-api.body.action_source.empty
vendor.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.missing
vendor.nextdoor-conversions-api.body.event_id.empty
vendor.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.missing
vendor.nextdoor-conversions-api.body.data_source_id.empty
vendor.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.missing
vendor.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.empty
vendor.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.empty
vendor.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.empty
vendor.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.empty
vendor.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.empty
vendor.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.empty
vendor.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.empty
vendor.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.empty
vendor.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.empty
vendor.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.empty
vendor.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.empty
vendor.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.empty
vendor.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.empty
vendor.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.empty
vendor.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.empty
vendor.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.empty
vendor.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.empty
vendor.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.empty
vendor.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.empty
vendor.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.empty
vendor.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.empty
vendor.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.empty
vendor.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.empty
vendor.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.empty
vendor.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.empty
vendor.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.empty
vendor.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.empty
vendor.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.empty
vendor.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.empty
vendor.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.empty
vendor.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.empty
vendor.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.empty
vendor.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.deprecated
vendor.nextdoor-conversions-api.body.event_time.empty
vendor.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.deprecated
vendor.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.deprecated
vendor.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.empty
vendor.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.empty
vendor.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.empty
vendor.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.empty
vendor.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.empty
vendor.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.empty
vendor.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.empty
vendor.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.empty
vendor.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.empty
vendor.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.missing
vendor.nextdoor-conversions-api.http.method.empty
vendor.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.missing
vendor.nextdoor-conversions-api.http.content_type.empty
vendor.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.missing
vendor.nextdoor-conversions-api.http.headers.authorization.empty
vendor.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.missing
vendor.nextdoor-conversions-api.http.body_encoding.empty
vendor.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.empty
vendor.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