Hatchet website screenshot

Hatchet

Hatchet is an open-source distributed task queue and workflow orchestration engine for background jobs, AI agents, and durable workflows. It is Postgres-backed, MIT-licensed, and ships with first-class SDKs for Python, TypeScript, Go, and Ruby plus a managed offering (Hatchet Cloud) and a self-hostable engine (Docker Compose, Hatchet Lite, Helm chart). The platform separates the orchestration engine from worker execution so workers can run on the operator's own infrastructure (Kubernetes, ECS, Render, Railway, Porter, or any container platform).

1 APIs 15 Features
Task QueueWorkflow EngineDurable ExecutionBackground TasksAI AgentsOrchestrationPostgreSQLOpen Source

APIs

Hatchet API

The Hatchet REST API is the control plane for the Hatchet engine. It exposes operations for tasks, workflow runs, durable tasks, events, filters (CEL-based event routing), webho...

Collections

Pricing Plans

Hatchet Plans Pricing

5 plans

PLANS

Rate Limits

Hatchet Rate Limits

6 limits

RATE LIMITS

FinOps

Features

Durable Execution

Task and workflow state is persisted to Postgres so executions survive worker restarts, network partitions, and engine upgrades.

Low-Latency Scheduling

Sub-20ms task start times with intelligent assignment rules.

Code-First SDKs

Native language SDKs for Python, TypeScript, Go, and Ruby; tasks are versionable, testable functions.

Engine / Worker Separation

The orchestration engine and workers are decoupled; workers run on the customer's own infrastructure.

Postgres-Backed

Hatchet's only hard dependency is PostgreSQL; RabbitMQ is optional for higher-throughput deployments.

First-Class Rate Limits

Engine-level rate-limit primitive throttles task execution by named key, scope, and window — independent of HTTP rate limits.

CEL Event Filters

Common Expression Language filters bind incoming events to workflows with payload predicates.

Scheduled and Cron Workflows

One-shot scheduled runs and recurring cron-triggered workflows are first-class engine resources.

Webhook Workers

External HTTPS endpoints can be registered as workers; the engine delivers task runs as signed webhook requests.

OpenTelemetry Tracing

Workflows and tasks emit OTel traces; the engine exposes a trace lookup endpoint.

Replays and Restores

Failed or cancelled tasks can be replayed with the same input or restored to the run queue.

Multi-Tenant

Tenants isolate workflows, tasks, workers, and tokens; quotas and throughput are scoped per tenant.

Dashboard

Built-in web dashboard for inspecting runs, replaying tasks, and managing tenants.

Slack and SNS Alerting

Alerts can be dispatched to Slack channels or AWS SNS topics for ops escalation.

MIT-Licensed

Engine, API, SDKs, dashboard, and Helm chart are all MIT-licensed.

Use Cases

AI Agent Orchestration

Manage tool calls, conversation state, timeouts, and checkpointing for production AI agents.

Background Jobs

Classic distributed task-queue use case — replace Celery, Sidekiq, BullMQ, or RQ with durable equivalents.

Durable Workflows

Multi-step pipelines with retries, conditional branching, and exactly-once semantics.

Ingestion and Indexing

Keep vector databases, knowledge graphs, and search indexes up-to-date as upstream sources change.

Massive Parallelization

Fan out to thousands of workers for batch processing and embarrassingly parallel workloads.

Mission-Critical Workloads

Workloads where retries, checkpointing, and replay are non-negotiable (payments, billing, compliance).

Event-Driven Architectures

Use events + CEL filters to route external signals into the right workflows without bespoke routing code.

Integrations

PostgreSQL

The durability substrate; Hatchet ships with managed migrations and is happy on RDS, Cloud SQL, Neon, Supabase, or self-hosted Postgres.

RabbitMQ

Optional message bus for inter-service communication and high-throughput real-time updates.

Kubernetes

Official Helm chart at hatchet-dev/hatchet-charts for production self-hosting.

Docker

Hatchet Lite single-image deployment plus a production Docker Compose stack.

AWS (ECS, SNS)

ECS-friendly worker deployment patterns and first-class SNS alerting.

Slack

Native Slack alerting integration for run failures and SLA breaches.

GitHub

GitHub OAuth login for the dashboard plus repo-linked workflow source.

OpenTelemetry

Engine and SDKs emit OTel traces; the API exposes trace lookup.

Terraform

Official Terraform provider for managing Hatchet Cloud resources as code.

Homebrew

brew install via the hatchet-dev/homebrew-hatchet tap.

FastAPI

Documented quickstart for combining Hatchet Python SDK with FastAPI services.

Next.js

Multiple Next.js starter templates wire Hatchet into App Router and Pages Router projects.

Anthropic

Hatchet's durable-execution model is a natural substrate for orchestrating Anthropic Claude tool calls and multi-step agents; the hatchet-typescript-deep-research and hatchet-typescript-code-agent reference patterns illustrate the integration shape.

Solutions

Hatchet Cloud

Fully managed orchestration engine on Hatchet's infrastructure with tier-included task-run allowances and SOC 2 / HIPAA controls.

Self-Hosted (Open Source)

MIT-licensed engine, API, dashboard, and Helm chart for running Hatchet on the operator's own infrastructure.

Hatchet Lite

Single-image bundled deployment of engine, API, and dashboard for development, testing, and low-throughput production.

Bring-Your-Own-Cloud (Enterprise)

Enterprise tier deploys the Hatchet engine inside the customer's own VPC while remaining managed by Hatchet.

Semantic Vocabularies

Hatchet Context

34 classes · 15 properties

JSON-LD

API Governance Rules

Hatchet API Rules

13 rules · 2 errors 8 warnings 3 info

SPECTRAL

JSON Structure

Hatchet Api Token Structure

0 properties

JSON STRUCTURE

Hatchet Rate Limit Structure

0 properties

JSON STRUCTURE

Hatchet Tenant Structure

0 properties

JSON STRUCTURE

Hatchet V1 Event Structure

0 properties

JSON STRUCTURE

Hatchet V1 Filter Structure

0 properties

JSON STRUCTURE

Hatchet V1 Log Line Structure

0 properties

JSON STRUCTURE

Hatchet V1 Task Event Structure

0 properties

JSON STRUCTURE

Hatchet V1 Task Structure

0 properties

JSON STRUCTURE

Hatchet V1 Webhook Structure

0 properties

JSON STRUCTURE

Hatchet V1 Workflow Run Structure

0 properties

JSON STRUCTURE

Hatchet Worker Structure

0 properties

JSON STRUCTURE

Hatchet Workflow Structure

0 properties

JSON STRUCTURE

Example Payloads

Rate Limit Upsert Example

3 fields

EXAMPLE

V1 Event Create Example

3 fields

EXAMPLE

V1 Filter Create Example

2 fields

EXAMPLE

V1 Log Line List Example

2 fields

EXAMPLE

V1 Task Cancel Example

3 fields

EXAMPLE

V1 Task Get Example

11 fields

EXAMPLE

V1 Task Replay Example

3 fields

EXAMPLE

Worker List Example

2 fields

EXAMPLE

Resources

🔗
Website
Website
🔗
Documentation
Documentation
🔗
LlmsText
LlmsText
💰
Pricing
Pricing
🔗
Plans
Plans
📰
Blog
Blog
👥
GitHubOrganization
GitHubOrganization
👥
hatchet-dev/hatchet (engine + API + dashboard)
GitHubRepository
💻
SourceCode
SourceCode
🔗
LinkedIn
LinkedIn
🔗
hatchet CLI installer (curl | bash)
CLI
🔧
Homebrew Tap
Tools
🔧
Helm Chart (production self-hosting)
Tools
🔧
Terraform Provider for Hatchet Cloud
Tools
🔧
pgoutbox (transactional outbox for pgx)
Tools
🔧
s3-batch-object-store (batched S3 fetch utility)
Tools
🔧
buffered (Go buffered writes library)
Tools
🔧
timediff (human-readable relative time)
Tools
🎓
Deploying Workers on Infrastructure (Terraform)
Tutorials
🔗
SpectralRules
SpectralRules
🔗
Vocabulary
Vocabulary
🔗
JSONLD
JSONLD
🔗
SOC 2 Type II (platform) + HIPAA (Scale and above)
Compliance

Sources

Raw ↑
opencollection: 1.0.0
info:
  name: Hatchet API
  version: 1.0.0
request:
  auth:
    type: bearer
    token: '{{bearerToken}}'
items:
- info:
    name: Task
    type: folder
  items:
  - info:
      name: Get a Task
      type: http
    http:
      method: GET
      url: /api/v1/stable/tasks/:task
      params:
      - name: task
        value: ''
        type: path
        description: The task id
      - name: attempt
        value: ''
        type: query
        description: The attempt number
    docs: Get a task by id
  - info:
      name: List Events for a Task
      type: http
    http:
      method: GET
      url: /api/v1/stable/tasks/:task/task-events
      params:
      - name: task
        value: ''
        type: path
        description: The task id
      - name: offset
        value: ''
        type: query
        description: The number to skip
      - name: limit
        value: ''
        type: query
        description: The number to limit by
    docs: List events for a task
  - info:
      name: Cancel Tasks
      type: http
    http:
      method: POST
      url: /api/v1/stable/tenants/:tenant/tasks/cancel
      params:
      - name: tenant
        value: ''
        type: path
        description: The tenant id
      body:
        type: json
        data: '{}'
    docs: Cancel tasks
  - info:
      name: Replay Tasks
      type: http
    http:
      method: POST
      url: /api/v1/stable/tenants/:tenant/tasks/replay
      params:
      - name: tenant
        value: ''
        type: path
        description: The tenant id
      body:
        type: json
        data: '{}'
    docs: Replay tasks
  - info:
      name: Restore a Task
      type: http
    http:
      method: POST
      url: /api/v1/stable/tasks/:task/restore
      params:
      - name: task
        value: ''
        type: path
        description: The task id
    docs: Restore an evicted durable task
  - info:
      name: List Tasks
      type: http
    http:
      method: GET
      url: /api/v1/stable/dags/tasks
      params:
      - name: dag_ids
        value: ''
        type: query
        description: The external id of the DAG
      - name: tenant
        value: ''
        type: query
        description: The tenant id
    docs: Lists all tasks that belong a specific list of dags
  - info:
      name: Get Task Metrics
      type: http
    http:
      method: GET
      url: /api/v1/stable/tenants/:tenant/task-metrics
      params:
      - name: tenant
        value: ''
        type: path
        description: The tenant id
      - name: since
        value: ''
        type: query
        description: The start time to get metrics for
      - name: until
        value: ''
        type: query
        description: The end time to get metrics for
      - name: workflow_ids
        value: ''
        type: query
        description: The workflow id to find runs for
      - name: parent_task_external_id
        value: ''
        type: query
        description: The parent task's external id
      - name: triggering_event_external_id
        value: ''
        type: query
        description: The id of the event that triggered the task
      - name: additional_metadata
        value: ''
        type: query
        description: Additional metadata k-v pairs to filter by
    docs: Get a summary of task run metrics for a tenant
  - info:
      name: Get Task Point Metrics
      type: http
    http:
      method: GET
      url: /api/v1/stable/tenants/:tenant/task-point-metrics
      params:
      - name: tenant
        value: ''
        type: path
        description: The tenant id
      - name: createdAfter
        value: '2021-01-01T00:00:00Z'
        type: query
        description: The time after the task was created
      - name: finishedBefore
        value: '2021-01-01T00:00:00Z'
        type: query
        description: The time before the task was completed
    docs: Get a minute by minute breakdown of task metrics for a tenant
- info:
    name: Log
    type: folder
  items:
  - info:
      name: List Log Lines
      type: http
    http:
      method: GET
      url: /api/v1/stable/tasks/:task/logs
      params:
      - name: task
        value: ''
        type: path
        description: The task id
      - name: limit
        value: ''
        type: query
        description: The number to limit by
      - name: since
        value: ''
        type: query
        description: The start time to get logs for
      - name: until
        value: ''
        type: query
        description: The end time to get logs for
      - name: search
        value: ''
        type: query
        description: A full-text search query to filter for
      - name: levels
        value: ''
        type: query
        description: The log level(s) to include
      - name: order_by_direction
        value: ''
        type: query
        description: The direction to order by
      - name: attempt
        value: ''
        type: query
        description: The attempt number to filter for
    docs: Lists log lines for a task
  - info:
      name: List Log Lines
      type: http
    http:
      method: GET
      url: /api/v1/stable/tenants/:tenant/logs
      params:
      - name: tenant
        value: ''
        type: path
        description: The tenant id
      - name: limit
        value: ''
        type: query
        description: The number to limit by
      - name: since
        value: ''
        type: query
        description: The start time to get logs for
      - name: until
        value: ''
        type: query
        description: The end time to get logs for
      - name: search
        value: ''
        type: query
        description: A full-text search query to filter for
      - name: levels
        value: ''
        type: query
        description: The log level(s) to include
      - name: order_by_direction
        value: ''
        type: query
        description: The direction to order by
      - name: attempt
        value: ''
        type: query
        description: The attempt number to filter for
      - name: taskExternalIds
        value: ''
        type: query
        description: The task external ID(s) to filter by
      - name: workflow_ids
        value: ''
        type: query
        description: The workflow id(s) to filter for
      - name: step_ids
        value: ''
        type: query
        description: The step id(s) to filter for
    docs: Lists log lines for a tenant
  - info:
      name: Get Log Point Metrics
      type: http
    http:
      method: GET
      url: /api/v1/stable/tenants/:tenant/log-point-metrics
      params:
      - name: tenant
        value: ''
        type: path
        description: The tenant id
      - name: since
        value: ''
        type: query
        description: The start time to get logs for
      - name: until
        value: ''
        type: query
        description: The end time to get logs for
      - name: search
        value: ''
        type: query
        description: A full-text search query to filter for
      - name: levels
        value: ''
        type: query
        description: The log level(s) to include
      - name: taskExternalIds
        value: ''
        type: query
        description: The task external ID(s) to filter by
      - name: workflow_ids
        value: ''
        type: query
        description: The workflow id(s) to filter for
      - name: step_ids
        value: ''
        type: query
        description: The step id(s) to filter for
    docs: Get a minute by minute breakdown of log metrics for a tenant
- info:
    name: Workflow Runs
    type: folder
  items:
  - info:
      name: List Workflow Runs
      type: http
    http:
      method: GET
      url: /api/v1/stable/tenants/:tenant/workflow-runs
      params:
      - name: tenant
        value: ''
        type: path
        description: The tenant id
      - name: offset
        value: ''
        type: query
        description: The number to skip
      - name: limit
        value: ''
        type: query
        description: The number to limit by
      - name: statuses
        value: ''
        type: query
        description: A list of statuses to filter by
      - name: since
        value: ''
        type: query
        description: The earliest date to filter by
      - name: until
        value: ''
        type: query
        description: The latest date to filter by
      - name: additional_metadata
        value: ''
        type: query
        description: Additional metadata k-v pairs to filter by
      - name: workflow_ids
        value: ''
        type: query
        description: The workflow ids to find runs for
      - name: worker_id
        value: ''
        type: query
        description: The worker id to filter by
      - name: only_tasks
        value: ''
        type: query
        description: Whether to include DAGs or only to include tasks
      - name: parent_task_external_id
        value: ''
        type: query
        description: The parent task external id to filter by
      - name: triggering_event_external_id
        value: ''
        type: query
        description: The external id of the event that triggered the workflow run
      - name: include_payloads
        value: ''
        type: query
        description: A flag for whether or not to include the input and output payloads in the response. Defaults to `true`
          if unset.
      - name: running_filter
        value: ''
        type: query
        description: Filter within the RUNNING status bucket. ALL returns both on-worker and evicted tasks, ON_WORKER returns
          only tasks running on a worker, EVICTED returns only evicted tasks. Defaults to ALL.
    docs: Lists workflow runs for a tenant.
  - info:
      name: List Workflow Runs
      type: http
    http:
      method: GET
      url: /api/v1/stable/tenants/:tenant/workflow-runs/display-names
      params:
      - name: tenant
        value: ''
        type: path
        description: The tenant id
      - name: external_ids
        value: ''
        type: query
        description: The external ids of the workflow runs to get display names for
    docs: Lists displayable names of workflow runs for a tenant
  - info:
      name: List Workflow Run External Ids
      type: http
    http:
      method: GET
      url: /api/v1/stable/tenants/:tenant/workflow-runs/external-ids
      params:
      - name: tenant
        value: ''
        type: path
        description: The tenant id
      - name: statuses
        value: ''
        type: query
        description: A list of statuses to filter by
      - name: since
        value: ''
        type: query
        description: The earliest date to filter by
      - name: until
        value: ''
        type: query
        description: The latest date to filter by
      - name: additional_metadata
        value: ''
        type: query
        description: Additional metadata k-v pairs to filter by
      - name: workflow_ids
        value: ''
        type: query
        description: The workflow ids to find runs for
      - name: running_filter
        value: ''
        type: query
        description: Filter within the RUNNING status bucket. ALL returns both on-worker and evicted tasks, ON_WORKER returns
          only tasks running on a worker, EVICTED returns only evicted tasks. Defaults to ALL.
    docs: Lists external ids for workflow runs matching filters
  - info:
      name: Create Workflow Run
      type: http
    http:
      method: POST
      url: /api/v1/stable/tenants/:tenant/workflow-runs/trigger
      params:
      - name: tenant
        value: ''
        type: path
        description: The tenant id
      body:
        type: json
        data: '{}'
    docs: Trigger a new workflow run
  - info:
      name: Branch Durable Task
      type: http
    http:
      method: POST
      url: /api/v1/stable/tenants/:tenant/durable-tasks/branch
      params:
      - name: tenant
        value: ''
        type: path
        description: The tenant id
      body:
        type: json
        data: '{}'
    docs: Branch a durable task from a specific node, creating a new branch and re-processing its matches.
  - info:
      name: List Tasks
      type: http
    http:
      method: GET
      url: /api/v1/stable/workflow-runs/:v1-workflow-run
      params:
      - name: v1-workflow-run
        value: ''
        type: path
        description: The workflow run id to get
    docs: Get a workflow run and its metadata to display on the "detail" page
  - info:
      name: Get Workflow Run Status
      type: http
    http:
      method: GET
      url: /api/v1/stable/workflow-runs/:v1-workflow-run/status
      params:
      - name: v1-workflow-run
        value: ''
        type: path
        description: The workflow run id to get the status for
    docs: Get the status of a workflow run.
  - info:
      name: List Tasks
      type: http
    http:
      method: GET
      url: /api/v1/stable/workflow-runs/:v1-workflow-run/task-events
      params:
      - name: offset
        value: ''
        type: query
        description: The number to skip
      - name: limit
        value: ''
        type: query
        description: The number to limit by
      - name: v1-workflow-run
        value: ''
        type: path
        description: The workflow run id to find runs for
    docs: List all tasks for a workflow run
  - info:
      name: List Timings for a Workflow Run
      type: http
    http:
      method: GET
      url: /api/v1/stable/workflow-runs/:v1-workflow-run/task-timings
      params:
      - name: v1-workflow-run
        value: ''
        type: path
        description: The workflow run id to get
      - name: depth
        value: ''
        type: query
        description: The depth to retrieve children
    docs: Get the timings for a workflow run
- info:
    name: Durable Tasks
    type: folder
  items:
  - info:
      name: List Durable Event Log
      type: http
    http:
      method: GET
      url: /api/v1/stable/durable-tasks/:durable-task
      params:
      - name: durable-task
        value: ''
        type: path
        description: The durable task external id
      - name: offset
        value: ''
        type: query
        description: The number of event log entries to skip
      - name: limit
        value: ''
        type: query
        description: The number of event log entries to limit by
    docs: Lists all event log entries for a durable task.
- info:
    name: Observability
    type: folder
  items:
  - info:
      name: Get Otel Trace
      type: http
    http:
      method: GET
      url: /api/v1/stable/tenants/:tenant/traces
      params:
      - name: tenant
        value: ''
        type: path
        description: The tenant id
      - name: run_external_id
        value: ''
        type: query
        description: The workflow run external id
      - name: offset
        value: ''
        type: query
        description: The number of spans to skip
      - name: limit
        value: ''
        type: query
        description: The number of spans to limit by
    docs: Get OTel trace for a workflow run
- info:
    name: Event
    type: folder
  items:
  - info:
      name: List Events
      type: http
    http:
      method: GET
      url: /api/v1/stable/tenants/:tenant/events
      params:
      - name: tenant
        value: ''
        type: path
        description: The tenant id
      - name: offset
        value: ''
        type: query
        description: The number to skip
      - name: limit
        value: ''
        type: query
        description: The number to limit by
      - name: keys
        value: ''
        type: query
        description: A list of keys to filter by
      - name: since
        value: ''
        type: query
        description: Consider events that occurred after this time
      - name: until
        value: ''
        type: query
        description: Consider events that occurred before this time
      - name: workflowIds
        value: ''
        type: query
        description: Filter to events that are associated with a specific workflow run
      - name: workflowRunStatuses
        value: ''
        type: query
        description: Filter to events that are associated with workflow runs matching a certain status
      - name: eventIds
        value: ''
        type: query
        description: Filter to specific events by their ids
      - name: additionalMetadata
        value: ''
        type: query
        description: Filter by additional metadata on the events
      - name: scopes
        value: ''
        type: query
        description: The scopes to filter by
    docs: Lists all events for a tenant.
  - info:
      name: Get Events
      type: http
    http:
      method: GET
      url: /api/v1/stable/tenants/:tenant/events/:v1-event
      params:
      - name: tenant
        value: ''
        type: path
        description: The tenant id
      - name: v1-event
        value: ''
        type: path
        description: The event id
    docs: Get an event by its id
  - info:
      name: List Event Keys
      type: http
    http:
      method: GET
      url: /api/v1/stable/tenants/:tenant/events/keys
      params:
      - name: tenant
        value: ''
        type: path
        description: The tenant id
    docs: Lists all event keys for a tenant.
  - info:
      name: List Events
      type: http
    http:
      method: GET
      url: /api/v1/tenants/:tenant/events
      params:
      - name: tenant
        value: ''
        type: path
        description: The tenant id
      - name: offset
        value: ''
        type: query
        description: The number to skip
      - name: limit
        value: ''
        type: query
        description: The number to limit by
      - name: keys
        value: ''
        type: query
        description: A list of keys to filter by
      - name: workflows
        value: ''
        type: query
        description: A list of workflow IDs to filter by
      - name: statuses
        value: ''
        type: query
        description: A list of workflow run statuses to filter by
      - name: search
        value: ''
        type: query
        description: The search query to filter for
      - name: orderByField
        value: ''
        type: query
        description: What to order by
      - name: orderByDirection
        value: ''
        type: query
        description: The order direction
      - name: additionalMetadata
        value: key1:value1,key2:value2
        type: query
        description: A list of metadata key value pairs to filter by
      - name: eventIds
        value: ''
        type: query
        description: A list of event ids to filter by
    docs: Lists all events for a tenant.
  - info:
      name: Create Event
      type: http
    http:
      method: POST
      url: /api/v1/tenants/:tenant/events
      params:
      - name: tenant
        value: ''
        type: path
        description: The tenant id
      body:
        type: json
        data: '{}'
    docs: Creates a new event.
  - info:
      name: Bulk Create Events
      type: http
    http:
      method: POST
      url: /api/v1/tenants/:tenant/events/bulk
      params:
      - name: tenant
        value: ''
        type: path
        description: The tenant id
      body:
        type: json
        data: '{}'
    docs: Bulk creates new events.
  - info:
      name: Replay Events
      type: http
    http:
      method: POST
      url: /api/v1/tenants/:tenant/events/replay
      params:
      - name: tenant
        value: ''
        type: path
        description: The tenant id
      body:
        type: json
        data: '{}'
    docs: Replays a list of events.
  - info:
      name: Replay Events
      type: http
    http:
      method: POST
      url: /api/v1/tenants/:tenant/events/cancel
      params:
      - name: tenant
        value: ''
        type: path
        description: The tenant id
      body:
        type: json
        data: '{}'
    docs: Cancels all runs for a list of events.
  - info:
      name: Get Event Data
      type: http
    http:
      method: GET
      url: /api/v1/events/:event
      params:
      - name: event
        value: ''
        type: path
        description: The event id
    docs: Get an event.
  - info:
      name: Get Event Data
      type: http
    http:
      method: GET
      url: /api/v1/events/:event/data
      params:
      - name: event
        value: ''
        type: path
        description: The event id
    docs: Get the data for an event.
  - info:
      name: Get Event Data
      type: http
    http:
      method: GET
      url: /api/v1/tenants/:tenant/events/:event-with-tenant/data
      params:
      - name: event-with-tenant
        value: ''
        type: path
        description: The event id
      - name: tenant
        value: ''
        type: path
        description: The tenant id
    docs: Get the data for an event.
  - info:
      name: List Event Keys
      type: http
    http:
      method: GET
      url: /api/v1/tenants/:tenant/events/keys
      params:
      - name: tenant
        value: ''
        type: path
        description: The tenant id
    docs: Lists all event keys for a tenant.
- info:
    name: Filter
    type: folder
  items:
  - info:
      name: List Filters
      type: http
    http:
      method: GET
      url: /api/v1/stable/tenants/:tenant/filters
      params:
      - name: tenant
        value: ''
        type: path
        description: The tenant id
      - name: offset
        value: ''
        type: query
        description: The number to skip
      - name: limit
        value: ''
        type: query
        description: The number to limit by
      - name: workflowIds
        value: ''
        type: query
        description: The workflow ids to filter by
      - name: scopes
        value: ''
        type: query
        description: The scopes to subset candidate filters by
    docs: Lists all filters for a tenant.
  - info:
      name: Create a Filter
      type: http
    http:
      method: POST
      url: /api/v1/stable/tenants/:tenant/filters
      params:
      - name: tenant
        value: ''
        type: path
        description: The tenant id
      body:
        type: json
        data: '{}'
    docs: Create a new filter
  - info:
      name: Get a Filter
      type: http
    http:
      method: GET
      url: /api/v1/stable/tenants/:tenant/filters/:v1-filter
      params:
      - name: tenant
        value: ''
        type: path
        description: The tenant id
      - name: v1-filter
        value: ''
        type: path
        description: The filter id
    docs: Get a filter by its id
  - info:
      name: v1-filter:update
      type: http
    http:
      method: PATCH
      url: /api/v1/stable/tenants/:tenant/filters/:v1-filter
      params:
      - name: tenant
        value: ''
        type: path
        description: The tenant id
      - name: v1-filter
        value: ''
        type: path
        description: The filter id to update
      body:
        type: json
        data: '{}'
    docs: Update a filter
  - info:
      name: v1-filter:delete
      type: http
    http:
      method: DELETE
      url: /api/v1/stable/tenants/:tenant/filters/:v1-filter
      params:
      - name: tenant
        value: ''
        type: path
        description: The tenant id
      - name: v1-filter
        value: ''
        type: path
        description: The filter id to delete
    docs: Delete a filter
- info:
    name: Webhook
    type: folder
  items:
  - info:
      name: List Webhooks
      type: http
    http:
      method: GET
      url: /api/v1/stable/tenants/:tenant/webhooks
      params:
      - name: tenant
        value: ''
        type: path
        description: The tenant id
      - name: offset
        value: ''
        type: query
        description: The number to skip
      - name: limit
        value: ''
        type: query
        description: The number to limit by
      - name: sourceNames
        value: ''
        type: query
        description: The source names to filter by
      - name: webhookNames
        value: ''
        type: query
        description: The webhook names to filter by
    docs: Lists all webhook for a tenant.
  - info:
      name: Create a Webhook
      type: http
    http:
      method: POST
      url: /api/v1/stable/tenants/:tenant/webhooks
      params:
      - name: tenant
        value: ''
        type: path
        description: The tenant id
      body:
        type: json
        data: '{}'
    docs: Create a new webhook
  - info:
      name: Get a Webhook
      type: http
    http:
      method: GET
      url: /api/v1/stable/tenants/:tenant/webhooks/:v1-webhook
      params:
      - name: tenant
        value: ''
        type: path
        description: The tenant id
      - name: v1-webhook
        value: ''
        type: path
        description: The webhook name
    docs: Get a webhook by its name
  - info:
      name: Post a Webhook Message
      type: http
    http:
      method: POST
      url: /api/v1/stable/tenants/:tenant/webhooks/:v1-webhook
      params:
      - name: tenant
        value: ''
        type: path
        description: The tenant id
      - name: v1-webhook
        value: ''
        type: path
        description: The webhook name
    docs: Post an incoming webhook message
  - info:
      name: Update a Webhook
      type: http
    http:
      method: PATCH
      url: /api/v1/stable/tenants/:tenant/webhooks/:v1-webhook
      params:
      - name: tenant
        value: ''
        type: path
        description: The tenant id
      - name: v1-webhook
        value: ''
        type: path
        description: The webhook name
      body:
        type: json
        data: '{}'
    docs: Update a webhook
  - info:
      name: v1-webhook:delete
      type: http
    http:
      method: DELETE
      url: /api/v1/stable/tenants/:tenant/webhooks/:v1-webhook
      params:
      - name: tenant
        value: ''
        type: path
        description: The tenant id
      - name: v1-webhook
        value: ''
        type: path
        description: The name of the webhook to delete
    docs: Delete a webhook
- info:
    name: CEL
    type: folder
  items:
  - info:
      name: Debug a CEL Expression
      type: http
    http:
      method: POST
      url: /api/v1/stable/tenants/:tenant/cel/debug
      params:
      - name: tenant
        value: ''
        type: path
        description: The tenant id
      body:
        type: json
        data: '{}'
    docs: Evaluate a CEL expression against provided input data.
- info:
    name: Healthcheck
    type: folder
  items:
  - info:
      name: Get Readiness
      type: http
    http:
      method: GET
      url: /api/ready
    docs: Gets the readiness status
  - info:
      name: Get Liveness
      type: http
    http:
      method: GET
      url: /api/live
    docs: Gets the liveness status
- info:
    name: Metadata
    type: folder
  items:
  - info:
      name: Get Metadata
      type: http
    http:
      method: GET
      url: /api/v1/meta
    docs: Gets metadata for the Hatchet instance
  - info:
      name: Get Cloud Metadata
      type: http
    http:
      method: GET
      url: /api/v1/cloud/metadata
    docs: Gets metadata for the Hatchet cloud instance
  - info:
      name: List Integrations
      type: http
    http:
      method: GET
      url: /api/v1/meta/integrations
    docs: List all integrations
- info:
    name: User
    type: folder
  items:
  - info:
      name: Login User
      type: http
    http:
      method: POST
      url: /api/v1/users/login
      body:
        type: json
        data: '{}'
    docs: Logs in a user.
  - info:
      name: Start Oauth Flow
      type: http
    http:
      method: GET
      url: /api/v1/users/google/start
    docs: Starts the OAuth flow
  - info:
      name: Complete Oauth Flow
      type: http
    http:
      method: GET
      url: /api/v1/users/google/callback
    docs: Completes the OAuth flow
  - info:
      name: Start Oauth Flow
      type: http
    http:
      method: GET
      url: /api/v1/users/github/start
    docs: Starts the OAuth flow
  - info:
      name: Complete Oauth Flow
      type: http
    http:
      method: GET
      url: /api/v1/users/github/callback
    docs: Completes the OAuth flow
  - info:
      name: Start Oauth Flow
      type: http
    http:
      method: GET
      url: /api/v1/tenants/:tenant/slack/start
      params:
      - name: tenant
        value: ''
        type: path
        description: The tenant id
      auth:
        type: apikey
        key: hatchet
        value: '{{hatchet}}'
        placement: query
    docs: Starts the OAuth flow
  - info:
      name: Complete Oauth Flow
      type: http
    http:
      method: GET
      url: /api/v1/users/slack/callback
      auth:
        type: apikey
        key: hatchet
        value: '{{hatchet}}'
        placement: query
    docs: Completes the OAuth flow
  - info:
      name: Get Current User
      type: http
    http:
      method: GET
      url: /api/v1/users/current
      auth:
        type: apikey
        key: hatchet
        value: '{{hatchet}}'
        placement: query
    docs: Gets the current user
  - info:
      name: Change User Password
      type: http
    http:
      method: POST
      url: /api/v1/users/password
      body:
        type: json
        data: '{}'
      auth:
        type: apikey
        key: hatchet
        value: '{{hatchet}}'
        placement: query
    docs: Update a user password.
  - info:
      name: Register User
      type: http
    http:
      method: POST
      url: /api/v1/users/register
      body:
        type: json
        data: '{}'
    docs: Registers a user.
  - info:
      name: Logout User
      type: http
    http:
      method: POST
      url: /api/v1/users/logout
      auth:
        type: apikey
        key: hatchet
        value: '{{hatchet}}'
        placement: query
    docs: Logs out a user.
  - info:
      name: List Tenant Memberships
      type: http
    http:
      method: GET
      url: /api/v1/users/memberships
      auth:
        type: apikey
        key: hatchet
        value: '{{hatchet}}'
        placement: query
    docs: Lists all tenant memberships for the current user
- info:
    name: Github
    type: folder
  items:
  - info:
      name: Github App Tenant Webhook
      type: http
    http:
      method: POST
      url: /api/v1/sns/:tenant/:event
      params:
      - name: tenant
        value: ''
        type: path
        description: The tenant id
      - name: event
        value: ''
        type: path
        description: The event key
    docs: SNS event
- info:
    name: SNS
    type: folder
  items:
  - info:
      name: List SNS Integrations
      type: http
    http:
      method: GET
      url: /api/v1/tenants/:tenant/sns
      params:
      - name: tenant
        value: ''
        type: path
        description: The tenant id
    docs: List SNS integrations
  - info:
      name: Create SNS Integration
      type: http
    http:
      method: POST
      url: /api/v1/tenants/:tenant/sns
      params:
      - name: tenant
        value: ''
        type: path
        description: The tenant id
      body:
        type: json
        data: '{}'
    docs: Create SNS integration
  - info:
      name: Delete SNS Integration
      type: http
    http:
      method: DELETE
      url: /api/v1/sns/:sns
      params:
      - name: sns
        value: ''
        type: path
        description: The SNS integration id
    docs: Delete SNS integration
- info:
    name: Tenant
    type: folder
  items:
  - info:
      name: List Tenant Alert Email Groups
      type: http
    http:
      method: GET
      url: /api/v1/tenants/:tenant/alerting-email-groups
      params:
      - name: tenant
        value: ''
        type: path
        description: The tenant id
    docs: Gets a list of tenant alert email groups
  - info:
      name: Create Tenant Alert Email Group
      type: http
    http:
      method: POST
      url: /api/v1/tenants/:tenant/alerting-email-groups
      params:
      - name: tenant
        value: ''
        type: path
        description: The tenant id
      body:
        type: json
        data: '{}'
    docs: Creates a new tenant alert email group
  - info:
      name: Create Tenant Alert Email Group
      type: http
    http:
      method: GET
      url: /api/v1/tenants/:tenant/resource-policy
      params:
      - name: tenant
        value: ''
        type: path
        description: The tenant id
    docs: Get

# --- truncated at 32 KB (63 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/hatchet/refs/heads/main/apis.yml