Schema
GET /sandbox/v1/schemaDiscover connectors, streams, and field schemas. Same shape as /v1/schema on a real reference server.
curl -s /sandbox/v1/schema
Live `schema` envelope: object='schema', bearer, connectors[].streams[] with stream_metadata.
List streams
GET /sandbox/v1/streamsSupports cursor pagination via `limit` and `cursor`. Optional `connector_id` filter.
curl -s '/sandbox/v1/streams?limit=10'
Live `list` envelope of `stream` rows: { name, record_count, last_updated, freshness }.
Stream metadata
GET /sandbox/v1/streams/pay_statementsReplace the path segment with any stream name from /sandbox/v1/schema.
curl -s /sandbox/v1/streams/pay_statements
Live `stream_metadata` envelope with schema, primary_key, cursor_field, freshness.
List records
GET /sandbox/v1/streams/pay_statements/recordsSupports cursor pagination via `limit` and `cursor`.
curl -s '/sandbox/v1/streams/pay_statements/records?limit=2'
Live `list` envelope of `record` rows: { object:'record', id, stream, data, emitted_at }.
Record detail
GET /sandbox/v1/streams/pay_statements/records/rec_sb_paystmt_2026_03Use the `id` returned in list responses (record_key in the underlying RS).
curl -s /sandbox/v1/streams/pay_statements/records/rec_sb_paystmt_2026_03
Single live `record` envelope: { id, stream, data, emitted_at }.
Lexical search
GET /sandbox/v1/searchSame shape as the public lexical retrieval extension. Try `payroll`, `Northwind`, `follow-up`.
curl -s '/sandbox/v1/search?q=payroll'
Live `list` of `search_result` rows: { stream, record_key, connector_id, record_url, emitted_at, matched_fields, snippet?, score? } with score.kind='bm25'.