We raised a $21M Series A to help companies ship and iterate faster.

Durable Endpoints

Build fault-tolerant
API endpoints

Add automatic retries, recovery, and observability to any application just by wrapping your code in Steps. No queues or workflows to manage.

Inngest traces showing durable endpoint execution

Scale without refactoring

All of your users deserve the same level of reliability from your product. Durable Endpoints lets you provide that experience from Day 1, without extra infra.

Inngest traces showing durable endpoint execution

Traditional Path to API Durability

  • Refactor your entire codebase
  • Manage separate queueing and event streams
  • Debug across multiple systems
  • Months to make code "production ready"

Inngest Durable Endpoints

  • Add one line of code to your existing API endpoints
  • No new infra to deploy or manage
  • All retries and failures handled transparently
  • Ship in minutes, not months

Wrap your API in Steps, and ship it.

Durable Endpoints makes your APIs bulletproof without any architectural changes. Handle failures automatically. Scale gracefully. Replay events. Observe everything.

1. Add Steps to API code

Wrap your API endpoint's critical logic with steps to transform them into unbreakable unit of work. No refactoring of your backend, no changes in your frontend.

export default inngest.endpoint(async (req, { step }) => {
  const { contactId, source } = await req.json();

  const contact = await step.run("fetch-contact", () =>
    sources[source].getContact(contactId)
  );
  const enriched = await step.run("enrich-data", () =>
    clearbit.enrich(contact.email)
  );
  await step.run("sync-to-crm", () =>
    salesforce.upsertContact({ ...contact, ...enriched })
  );

  return Response.json({ synced: true });
});

2. Trace success path with zero latency

When everything works, your users get their results immediately with no added latency. It's exactly as fast as your original API. No waiting, no polling, no compromise.

Illustration showing API response timings

3. Handle failures automatically

Any failing steps gets automatically retried by Inngest's durable execution engine. The API consumer gets redirected to an Inngest URL to wait for its final result.

Illustration showing API response timings

4. Observe everything.

You can't debug quickly if you're grepping logs or referencing external instrumentation. Investigate and repair quickly with built-in observability.

Illustration showing API response timings

All the benefits of durable workflows, none of the overhead.

Add production-grade reliability features without leaving your API codebase. Zero setup, zero new infrastructure. One line of code.

Automatic Recovery

Retry failed steps automatically, with exponential backoff. No more manual error handling, no more scattered logic.

Built for Events

Trigger, cancel, or hold ("wait for") runs based on event properties or other conditions.

Zero Refactoring

Add durability to existing APIs without changing your architecture or rewriting code. Meet you where you're at in your codebase...

Built-in Observability

See exactly what's happening in your APIs with automatic logging, tracing, and metrics for every step...

Start building today

Build your first Durable Endpoint with these helpful resources

Introducing: Durable Endpoints

Learn why we built Durable Endpoints, and find some code examples you can use.

Read article

DeepResearch built with Durable Endpoints

See Durable Endpoints in action with our DeepResearch example. Checkout the repository and try it locally.

Try the example

Durable Execution reference

Explore the Durable Endpoints TypeScript SDK reference with the complete list of options and use case examples.

View documentation