# Stormedo documentation

Source: https://stormedo.com/docs/

Learn how to send, schedule, inspect, and verify durable outbound HTTP requests with Stormedo.

## Choose your starting point

Start with one successful delivery. Then learn how Stormedo handles retries, duplicates, and delayed requests.

- [Send a request: Make one API call and inspect the accepted request.](https://stormedo.com/docs/get-started/first-request/)
- [Understand delivery: Learn how durable acceptance, scheduling, retries, and final states work.](https://stormedo.com/docs/concepts/request-lifecycle/)
- [Build your receiver: Verify the body and commit duplicate-safe work with a runnable example.](https://stormedo.com/docs/how-to/receive-deliveries/)

## The shortest integration

Use a project API key from a server environment. Replace the destination URL with a public endpoint you control.

```bash
curl --request POST \
  'https://api.stormedo.com/send?url=https://your-app.example/webhooks/stormedo&retry=3' \
  --header "Authorization: Bearer $STORMEDO_TOKEN" \
  --header 'Idempotency-Key: order-created-ord-123' \
  --header 'Content-Type: application/json' \
  --data '{"type":"order.created","order_id":"ord_123"}'
```

Stormedo returns `202 Accepted` after storing the request for durable delivery. Delivery continues independently from the API call.

## Complete your integration

- [Delay one request](https://stormedo.com/docs/how-to/delay-requests/) or [create a recurring schedule](https://stormedo.com/docs/how-to/schedule-requests/).
- [Handle duplicates and unknown acceptance](https://stormedo.com/docs/concepts/idempotency/).
- [Diagnose a failed delivery](https://stormedo.com/docs/how-to/troubleshoot-delivery/).
- For AI agents and tooling: use the [page index](https://stormedo.com/llms.txt), [Markdown documentation home](https://stormedo.com/docs.md), or [public OpenAPI schema](https://stormedo.com/openapi.json).

## Use the SDK that matches your service

- [JavaScript and TypeScript](https://stormedo.com/docs/sdks/javascript/) for Node.js 22 and newer.
- [Python](https://stormedo.com/docs/sdks/python/) for synchronous and asynchronous Python 3.10 applications.
- [HTTP API](https://stormedo.com/docs/api-reference/overview/) when you want direct control over requests and responses.
