Overall
Features
How To
API Reference
- Authentication
- Messages
- Topics
- Schedules
- Signing Keys
- Events
- Dead Letter Queues
- v1 (Deprecated)
Migrating
Recipes
Integrations
Overall
API Examples
Use QStash via:
- cURL
- Typescript SDK
- Python SDK
Below are some examples to get you started. You can also check the how to section for more technical details or the API reference to test the API.
Publish a message to an endpoint
Copy
Ask AI
curl -XPOST \
-H 'Authorization: Bearer XXX' \
-H "Content-type: application/json" \
-d '{ "hello": "world" }' \
'https://qstash.upstash.io/v2/publish/https://example.com'
Copy
Ask AI
curl -XPOST \
-H 'Authorization: Bearer XXX' \
-H "Content-type: application/json" \
-d '{ "hello": "world" }' \
'https://qstash.upstash.io/v2/publish/https://example.com'
Copy
Ask AI
const client = new Client({ token: "<QSTASH_TOKEN>" });
await client.publishJSON({
url: "https://example.com",
body: {
hello: "world",
},
});
Copy
Ask AI
client = Client("<QSTASH_TOKEN>")
client.publish_json({
"url": "https://example.com",
"body": {
"hello": "world",
},
})
# Async version is also available
Publish a message to a topic
Copy
Ask AI
curl -XPOST \
-H 'Authorization: Bearer XXX' \
-H "Content-type: application/json" \
-d '{ "hello": "world" }' \
'https://qstash.upstash.io/v2/publish/myTopic'
Copy
Ask AI
curl -XPOST \
-H 'Authorization: Bearer XXX' \
-H "Content-type: application/json" \
-d '{ "hello": "world" }' \
'https://qstash.upstash.io/v2/publish/myTopic'
Copy
Ask AI
const client = new Client({ token: "<QSTASH_TOKEN>" });
await client.publishJSON({
topic: "myTopic",
body: {
hello: "world",
},
});
Copy
Ask AI
client = Client("<QSTASH_TOKEN>")
client.publish_json({
"topic": "myTopic",
"body": {
"hello": "world",
},
})
# Async version is also available
Publish a message with 5 minutes delay
Copy
Ask AI
curl -XPOST \
-H 'Authorization: Bearer XXX' \
-H "Content-type: application/json" \
-H "Upstash-Delay: 5m" \
-d '{ "hello": "world" }' \
'https://qstash.upstash.io/v2/publish/https://example.com'
Copy
Ask AI
curl -XPOST \
-H 'Authorization: Bearer XXX' \
-H "Content-type: application/json" \
-H "Upstash-Delay: 5m" \
-d '{ "hello": "world" }' \
'https://qstash.upstash.io/v2/publish/https://example.com'
Copy
Ask AI
const client = new Client({ token: "<QSTASH_TOKEN>" });
await client.publishJSON({
url: "https://example.com",
body: {
hello: "world",
},
delay: 300,
});
Copy
Ask AI
client = Client("<QSTASH_TOKEN>")
client.publish_json({
"url": "https://example.com",
"body": {
"hello": "world",
},
"delay": 300,
})
# Async version is also available
Send a custom header
Copy
Ask AI
curl -XPOST \
-H 'Authorization: Bearer XXX' \
-H 'Upstash-Forward-My-Header: my-value' \
-H "Content-type: application/json" \
-d '{ "hello": "world" }' \
'https://qstash.upstash.io/v2/publish/https://example.com'
Copy
Ask AI
curl -XPOST \
-H 'Authorization: Bearer XXX' \
-H 'Upstash-Forward-My-Header: my-value' \
-H "Content-type: application/json" \
-d '{ "hello": "world" }' \
'https://qstash.upstash.io/v2/publish/https://example.com'
Copy
Ask AI
const client = new Client({ token: "<QSTASH_TOKEN>" });
await client.publishJSON({
url: "https://example.com",
body: {
hello: "world",
},
headers: {
"My-Header": "my-value",
},
});
Copy
Ask AI
client = Client("<QSTASH_TOKEN>")
client.publish_json({
"url": "https://example.com",
"body": {
"hello": "world",
},
"headers": {
"My-Header": "my-value",
},
})
# Async version is also available
Schedule to run once a day
Copy
Ask AI
curl -XPOST \
-H 'Authorization: Bearer XXX' \
-H "Upstash-Cron: 0 0 * * *" \
-H "Content-type: application/json" \
-d '{ "hello": "world" }' \
'https://qstash.upstash.io/v2/schedules/https://example.com'
Copy
Ask AI
curl -XPOST \
-H 'Authorization: Bearer XXX' \
-H "Upstash-Cron: 0 0 * * *" \
-H "Content-type: application/json" \
-d '{ "hello": "world" }' \
'https://qstash.upstash.io/v2/schedules/https://example.com'
Copy
Ask AI
const client = new Client({ token: "<QSTASH_TOKEN>" });
const schedules = client.schedules();
await schedules.create({
destination: "https://example.com",
cron: "0 0 * * *",
});
Copy
Ask AI
client = Client("<QSTASH_TOKEN>")
schedules = client.schedules()
schedules.create({
"destination": "https://example.com",
"cron": "0 0 * * *",
})
# Async version is also available
Set max retry count to 3
Copy
Ask AI
curl -XPOST \
-H 'Authorization: Bearer XXX' \
-H "Upstash-Retries: 3" \
-H "Content-type: application/json" \
-d '{ "hello": "world" }' \
'https://qstash.upstash.io/v2/publish/https://example.com'
Copy
Ask AI
curl -XPOST \
-H 'Authorization: Bearer XXX' \
-H "Upstash-Retries: 3" \
-H "Content-type: application/json" \
-d '{ "hello": "world" }' \
'https://qstash.upstash.io/v2/publish/https://example.com'
Copy
Ask AI
const client = new Client({ token: "<QSTASH_TOKEN>" });
await client.publishJSON({
url: "https://example.com",
body: {
hello: "world",
},
retries: 3,
});
Copy
Ask AI
client = Client("<QSTASH_TOKEN>")
client.publish_json({
"url": "https://example.com",
"body": {
"hello": "world",
},
"retries": 3,
})
# Async version is also available
Set callback url
Copy
Ask AI
curl -XPOST \
-H 'Authorization: Bearer XXX' \
-H "Content-type: application/json" \
-H "Upstash-Callback: https://example.com/callback" \
-d '{ "hello": "world" }' \
'https://qstash.upstash.io/v2/publish/https://example.com'
Copy
Ask AI
curl -XPOST \
-H 'Authorization: Bearer XXX' \
-H "Content-type: application/json" \
-H "Upstash-Callback: https://example.com/callback" \
-d '{ "hello": "world" }' \
'https://qstash.upstash.io/v2/publish/https://example.com'
Copy
Ask AI
const client = new Client({ token: "<QSTASH_TOKEN>" });
await client.publishJSON({
url: "https://example.com",
body: {
hello: "world",
},
callback: "https://example.com/callback",
});
Copy
Ask AI
client = Client("<QSTASH_TOKEN>")
client.publish_json({
"url": "https://example.com",
"body": {
"hello": "world",
},
"callback": "https://example.com/callback",
})
# Async version is also available
List all events
Copy
Ask AI
curl https://qstash.upstash.io/v2/events \
-H "Authorization: Bearer <token>"
Copy
Ask AI
curl https://qstash.upstash.io/v2/events \
-H "Authorization: Bearer <token>"
Copy
Ask AI
const client = new Client({ token: "<QSTASH_TOKEN>" });
const events = await client.events()
Copy
Ask AI
client = Client("<QSTASH_TOKEN>")
events = client.events()
# Async version is also available
List all schedules
Copy
Ask AI
curl https://qstash.upstash.io/v2/schedules \
-H "Authorization: Bearer <token>"
Copy
Ask AI
curl https://qstash.upstash.io/v2/schedules \
-H "Authorization: Bearer <token>"
Copy
Ask AI
const client = new Client({ token: "<QSTASH_TOKEN>" });
const schedules = client.schedules();
const scheds = await schedules.list();
Copy
Ask AI
client = Client("<QSTASH_TOKEN>")
schedules = client.schedules()
scheds = schedules.list()
# Async version is also available
Was this page helpful?
Assistant
Responses are generated using AI and may contain mistakes.