Request
POST
{prefix}/shares/{share}/schemas/{schema}/tables/{table}/queryHeaders
Bearer token for authentication
URL Parameters
The share name to query. This parameter is case-insensitive.
The schema name to query. This parameter is case-insensitive.
The table name to query. This parameter is case-insensitive.
Request Body
List of SQL boolean expressions for filtering files. Applied as best-effort hints.
- Uses a restricted subset of SQL
- Expressions are AND-ed together
- Server may return files that don’t satisfy predicates
- Will be deprecated in favor of
jsonPredicateHints
Query predicates on partition columns in structured JSON format. Best-effort filtering hint.
Hint for the maximum number of rows the client plans to read. Server may use file statistics to return a subset of files.Example: Set to
1000 for SELECT * FROM table LIMIT 1000Table version number for time travel queries. Returns files as of the specified version.Only supported on tables with history sharing enabled.
Timestamp string in ISO8601 format (UTC timezone). Returns files corresponding to the table version at this timestamp.Format:
2022-01-01T00:00:00ZOnly supported on tables with history sharing enabled.Starting version (inclusive) for streaming queries. Returns all data change files since this version, including historical metadata.Used for Delta Sharing Structured Streaming support.
Optional ending version hint when
startingVersion is set. Not enforced - client should handle files beyond this version.Response
Headers
- Without time travel: Current table version
- With time travel: Starting version of returned files
Response Body
The response is a sequence of newline-delimited JSON (NDJSON) objects:First line: Protocol version information
Second line: Table metadata including schema
Subsequent lines: Data file objects (for snapshot queries)
For streaming queries (
startingVersion set): Change data filesExample: Snapshot Query
Response
Example: Streaming Query
Error Responses
Best-effort filtering: Both
predicateHints and limitHint are hints, not guarantees. The client must always apply additional filtering and limiting if needed. If both are present, the server applies predicates first, then limits.Empty request: Provide an empty JSON object
{} when no parameters are needed.