Before you start
You need:- permission to edit and activate the target Fastly service;
- a service serving the hostname configured for the Qwairy brand;
- access to Measure > Crawler Analytics > Settings;
- a secure place to retain the one-time connector secret.
Create and protect the key
- In Crawler Analytics settings, select Fastly.
- Select Create Key.
- Enter a name and the IANA time zone used for daily snapshots.
- Copy the secret when it appears. It cannot be displayed again.
- Keep it only in Fastly’s custom header value or another restricted secret store.
Configure the HTTPS endpoint
- In the target Fastly service, add an HTTPS logging endpoint.
-
Set the delivery URL to:
-
Fastly validates ownership through this public challenge endpoint:
The challenge authorizes domain validation only. Log delivery still requires the connector key.
-
Use
POST, set the content type toapplication/json, and add this custom header: - Set Message type to blank.
-
Set Request max entries to
10000and Request max bytes to2000000. - Choose either an array of JSON or newline-delimited JSON. gzip compression is supported.
Use the minimal log format
Paste this format into the HTTPS logging endpoint:Test delivery
First confirm that Fastly accepts the domain-control challenge. Then request a safe path on the monitored hostname:Limits, filtering, and cost
- Keep the configured request boundaries at 10,000 entries and 2,000,000 bytes.
- Qwairy accepts JSON arrays, NDJSON, and gzip for this route and splits valid deliveries into bounded internal claims.
- Upstream filtering reduces delivered volume. Sampling or a condition that omits crawler requests makes counts partial for the excluded scope.
- Without an upstream condition, Fastly forwards other requests and Qwairy discards them after receipt. Those rows can still affect provider delivery volume and cost.
- Shared daily ingestion ceilings also apply.
Troubleshooting
- Endpoint validation fails: confirm that the URL uses
www.qwairy.coand that Fastly can reach the displayed well-known challenge path. - 401: check the exact
X-API-Keyheader name and the current Fastly connector secret. - 413: restore the 2,000,000-byte request maximum or reduce the delivery size.
- Logs are rejected or ignored: keep Message type blank, use valid JSON or NDJSON, and preserve the timestamp, host, path, method, User-Agent, and status fields from the minimal format.
- Qwairy stays pending: activate the service version and generate a current
GETorHEADrequest with a recognized crawler User-Agent on the configured hostname.

