Getting started
Quickstart
Send your first event to Queuey in about five minutes — from zero to a delivered webhook with automatic retries. Examples in curl, TypeScript, and C#.
- 1Get an ingress URL and an API key
Create a Queuey account, then issue an API key for an API client (your integration's identity) in the console. Copy the key when it's shown — it's displayed once.
- 2Identify your tenant and queue
Your ingress URL is /events/{tenantPublicId}/{queueName}. The tenant id comes from the license picker; the queue name from its detail page.
- 3POST your first event
Pick a language below and send the request. Queuey replies 202 Accepted with an eventId the instant the event lands — delivery happens asynchronously after that.
- 4Watch it deliver
In the console, the event moves Received → InProgress → Delivered as the worker forwards it to your target. Failures retry with backoff and land in the dead-letter queue per your retry policy.
Send the event
curl -X POST "https://ingress.queuey.ai/events/ten_yourTenant/customer-events" \
-H "X-Api-Key: qak_8fK2mNpQ.aB3dE7gH9jK1mN4pR6tV8wX0yZ" \
-H "Content-Type: application/json" \
-d '{
"eventType": "customer.created",
"payload": { "customerId": "10042", "email": "alice@example.com" }
}'const res = await fetch(
`${process.env.QUEUEY_INGRESS_URL}/events/${tenantPublicId}/customer-events`,
{
method: "POST",
headers: {
"X-Api-Key": process.env.QUEUEY_API_KEY!,
"Content-Type": "application/json",
},
body: JSON.stringify({
eventType: "customer.created",
payload: { customerId: "10042", email: "alice@example.com" },
}),
},
);
if (res.status !== 202) throw new Error(`Ingress rejected: ${await res.text()}`);
const ack = await res.json();
console.log("Accepted:", ack.eventId);using var http = new HttpClient { BaseAddress = new Uri(ingressHost) };
http.DefaultRequestHeaders.Add("X-Api-Key", apiKey);
var res = await http.PostAsJsonAsync(
$"events/{tenantPublicId}/customer-events",
new
{
eventType = "customer.created",
payload = new { customerId = "10042", email = "alice@example.com" },
});
res.EnsureSuccessStatusCode(); // 202 AcceptedWhat you get back
A 202 Accepted with the eventId. Delivery is asynchronous — track it by eventId in the console.
HTTP/1.1 202 Accepted
Content-Type: application/json
{
"queuePublicId": "que_Rp2yPELnp4sr",
"eventId": "evt_nd9qgy1sjPIW",
"receivedAtUtc": "2026-06-25T14:38:36.69Z",
"mode": "Deliver",
"replayed": false
}- Going to production? Replace the API key with HMAC signed-request auth, and verify the signature on your receiver before flipping the queue's auth mode.
- Integrating a regulated or enterprise target? Use OAuth2 client credentials — including
private_key_jwtwith a P12 certificate. - Explore the full API reference or head back to the docs overview.