Kurl Quickstart
This page demonstrates how to load Kurl and perform basic sync and async requests against public and authenticated endpoints.
Setup
Ensure your cloud credentials are set as environment variables, for example:
export AWS_ACCESS_KEY_ID="… "
export AWS_SECRET_ACCESS_KEY="…"
export AWS_SESSION_TOKEN="… "
Basic usage
-
To make synchronous calls, use these details in your KDB-X session:
q).kurl:use`kx.kurl // load in the module q) info:`AccessKeyId`SecretAccessKey`Token!(getenv`AWS_ACCESS_KEY_ID;getenv`AWS_SECRET_ACCESS_KEY;getenv`AWS_SESSION_TOKEN) q).kurl.sync ("https://kx-mybucket.s3.us-east-2.amazonaws.com/test_data/data.csv";`GET;::) // sync calls fails as you have not registered 403i "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<Error><Code>AccessDenied</Code><Message>Access Denied.. q).kurl.register (`aws_cred;"*amazonaws.com";"";info) // register q).kurl.sync ("https://kx-mybucket.s3.us-east-2.amazonaws.com/test_data/data.csv";`GET;::) // successful sync call 200i "sym,price,size\nFDP,1.2,100\n" -
To make asynchronous calls:
q) .kurl.async ("https://kx-mybucket.s3.us-east-2.amazonaws.com/test_data/data.csv";`GET;``callback!(`;{.debug.x:x})) .debug.x 200i "sym,price,size\nFDP,1.2,100\n" -
For public datasets (no authentication required):
.kurl:use`kx.kurl .kurl.sync ("https://api.census.gov/data/2020/dec/pl?get=NAME,P1_001N&for=state:*"; `GET; ::) 200i "[[\"NAME\",\"P1_001N\",\"state\"],\n[\"Pennsylvania\",\"13002700\",\"42\"],\n[\"California\",\"395..
Next steps
- Take a look at the Kurl examples for a deeper understanding of how it works.