Query Parameters
Configure endpoints to extract and relay data from URL query parameters using raw key-value pairs or Base64-encoded JSON.
Use query parameter formats when senders pass data in the URL instead of the request body.
Purpose
This guide covers:
- Available query parameter formats and when to use each.
- Supported data types and value parsing.
- Base64 JSON mode configuration.
- Feature interactions with field validation, captcha, and relay targets.
Prerequisites and permissions
- Endpoint create/edit access.
- Knowledge of how the sender formats outgoing requests.
Available query parameter formats
None (ignore body)
Select None (ignore body) when the endpoint should accept requests without processing any payload. The request body is completely ignored regardless of content type. This is useful for health checks, simple triggers, or fire-and-forget notifications.
Query Parameters
All query parameters from the URL are parsed into a flat JSON object. Each parameter becomes a key-value pair.
Supported value formats:
| URL value | Parsed as | Example |
|---|---|---|
| Plain string | String | ?name=John → {"name": "John"} |
| Number | String | ?count=42 → {"count": "42"} |
| Boolean | String | ?active=true → {"active": "true"} |
| Multi-value | Array of strings | ?tag=a&tag=b → {"tag": ["a", "b"]} |
| Empty / no value | Empty string | ?flag= or ?flag → {"flag": ""} |
| URL-encoded | Decoded string | ?msg=hello%20world → {"msg": "hello world"} |
Example request:
GET https://api.payloadrelay.com/relay/abc123?name=John&age=30&active=trueParsed payload sent to relay targets:
{
"name": "John",
"age": "30",
"active": "true"
}Single query parameter values are parsed as strings. Repeated parameters become arrays of strings.
Query Parameters (Base64 JSON)
A single query parameter contains the entire payload as a Base64-encoded JSON string. This allows sending complex structured data (nested objects, arrays, typed values) through query parameters.
How it works:
- The sender Base64-encodes a JSON payload.
- The encoded string is sent as a single query parameter.
- PayloadRelay decodes the Base64 string and parses the resulting JSON.
- The parsed JSON is forwarded to all relay targets.
Encoding support: Both standard Base64 and URL-safe Base64 (using - and _ instead of + and /) are accepted. If standard Base64 includes + or /, percent-encoding is safest in URLs; unescaped + is also tolerated for this encoded payload value.
Configuration:
When selecting this format, two additional settings appear:
- Query parameter name (required, max 255 characters): The name of the URL parameter containing the encoded payload. Spaces, control characters,
#, and?are rejected. URL-special characters such as+or&can be used when the sender percent-encodes the parameter name in the URL. - Required parameter (checked by default): When enabled, requests missing this parameter are rejected with a 400 error. When disabled, missing parameters are treated as an empty payload.
Example:
Given query parameter name data:
Original JSON payload:
{"name": "John", "age": 30, "items": ["a", "b"]}Base64-encoded: eyJuYW1lIjoiSm9obiIsImFnZSI6MzAsIml0ZW1zIjpbImEiLCJiIl19
Request URL:
GET https://api.payloadrelay.com/relay/abc123?data=eyJuYW1lIjoiSm9obiIsImFnZSI6MzAsIml0ZW1zIjpbImEiLCJiIl19The decoded JSON is forwarded to relay targets as-is.
Feature interactions
| Feature | None | Query Parameters | Base64 JSON |
|---|---|---|---|
| Field validation | Disabled | Enabled | Object payloads only |
| Captcha | Disabled | Disabled | Disabled |
| Google Sheets fields | payload only | All fields | All fields |
| Email rendering | Empty payload | JSON rendering | JSON rendering |
| Webhook forwarding | Empty body | JSON body | JSON body |
Field validation
Noneformat has no payload to validate — field validation is disabled.Query Parametersalways produce a JSON object and support the standard field validation rules (type checks, required fields, regex patterns).Base64 JSONsupports field validation when the decoded JSON root is an object. Arrays and scalar JSON values are forwarded to relay targets, but field validation rules cannot be applied to them.
Captcha verification
Captcha verification is not available with any of these formats. Captcha tokens are typically embedded in JSON, form, or XML request bodies.
Google Sheets
Noneformat: only the syntheticpayloadfield is supported.Query ParametersandBase64 JSON: all parsed JSON fields are available for column mapping.
Body handling
When None, Query Parameters, or Query Parameters (Base64 JSON) is selected, the request body is completely ignored regardless of method or content type. The endpoint accepts any Content-Type header.
Error handling
| Scenario | Outcome |
|---|---|
| Missing required Base64 parameter | MALFORMED_QUERY_PARAM (400) |
| Invalid Base64 encoding | MALFORMED_QUERY_PARAM (400) |
| Base64 decodes but is not valid JSON | MALFORMED_QUERY_PARAM (400) |
| Base64 JSON exceeds the plan payload size limit | PAYLOAD_TOO_LARGE (413) |
| Query string exceeds the plan payload size limit | PAYLOAD_TOO_LARGE (413) |
| More than 64 query parameter pairs | MALFORMED_QUERY_PARAM (400) |
| No query parameters (Query Params mode) | Empty JSON object {} is forwarded |
| Optional Base64 parameter missing | Empty payload is forwarded |
HTTP method compatibility
GETandHEADmethods only supportNone,Query Parameters, andQuery Parameters (Base64 JSON).- All other methods support all formats including query parameter formats.