A column can be sent as an HTTP header instead of as part of a query string in GET requests. HTTP headers can be specified in the column definition by setting the #header property to true and providing the header using the #eq property.

If the header to be filtered is a dynamic HTTP-request header, and therefore not returned in the result set, specify #virtual:true to have it exposed as searchable column. Otherwise, this property should be omitted.
Note: The driver does not support headers that are natively mapped to the JSON data type to be exposed as virtual columns. If the header is mapped to a JSON data type, the driver does not treat the header field as a virtual column and looks for it in the response. You can avoid this issue by natively mapping virtual fields that contain JSON strings to the VarChar data type.
The syntax to send a column as an HTTP header takes the following form:
"<column_name>[]":{
   "#type":"<data_type>",
   "#header":true,
   "#virtual":true,
   "#default":"<default_filter>",
   "#eq":"<header_name>"
}

where:

data_type
(optional) specifies the data type to which the column is mapped.
default_filter
(optional) specifies the value sent with the header that is used to filter results. When this value is specified, the value <header>:<default_filter> is sent in the HTTP request. If the default filter is not specified, a WHERE clause must provide the filter value. For example:

SELECT * FROM authentication WHERE authentication = 'scott/tiger'

header_name
specifies the name of the HTTP header sent in the request.

The following example demonstrates

"service":{"#type":"VarChar","#header":true,"#default":"scott/tiger","#eq":"X-Custom-Auth"}