class singer_sdk.GraphQLStream(tap: singer_sdk.plugin_base.PluginBase, name: Optional[str] = None, schema: Optional[Union[Dict[str, Any], singer.schema.Schema]] = None, path: Optional[str] = None)

Abstract base class for API-type streams.

GraphQL streams inherit from the class GraphQLStream, which in turn inherits from the RESTStream class. GraphQL streams are very similar to REST API-based streams, but instead of specifying a path and url_params, developers override the GraphQL query text.

prepare_request_payload(context: Optional[dict], next_page_token: Optional[Any]) Optional[dict]

Prepare the data payload for the GraphQL API request.

Developers generally should generally not need to override this method. Instead, developers set the payload by properly configuring the query attribute.

  • context – Stream partition or context dictionary.

  • next_page_token – Token, page number or any request argument to request the next page of data.


Dictionary with the body to use for the request.


ValueError – If the query property is not set in the request body.

property query: str

Set or return the GraphQL query string.


NotImplementedError – If the derived class doesn’t define this property.

property records_jsonpath: str

Get the JSONPath expression to extract records from an API response.


JSONPath expression string