---
title: "Update an app"
method: PATCH
path: "/api/v1/apps/{slug}"
---

# Update an app

`PATCH /api/v1/apps/{slug}`

## Request

- Base URL: `https://anyhook.net`
- URL: `https://anyhook.net/api/v1/apps/{slug}`
- Auth: HTTP bearer

Updates destination URLs or toggles the app active state.

## Path parameters

- `slug` string, required

## Request body

- object
  - `destinations` object[]: Replaces the whole list. Each item: url (required), enabled, headers (object), event_types, rate_limit, delay_seconds. The three controls are Pro+ and answer 403 on Free unless unchanged from what is stored.
    - `url` string, uri, required
    - `enabled` boolean
    - `headers` object
    - `event_types` string[]
    - `rate_limit` integer
    - `delay_seconds` integer
  - `is_active` boolean

## Response `200`

App updated

- object
  - `app` App: An app as the API returns it. Destination signing secrets appear only at creation or rotation.
    - `id` string
    - `name` string
    - `slug` string
    - `source` string
    - `sourceSecret` boolean: Whether a sender signing secret is set.
    - `isActive` boolean
    - `inboundUrl` string
    - `inboxAddress` string
    - `destinations` object[]
      - `url` string
      - `enabled` boolean
      - `headers` object
      - `has_signing_secret` boolean
      - `signing_secret_hint` string
      - `event_types` string[]
      - `rate_limit` integer
      - `delay_seconds` integer
    - `eventsThisMonth` integer
    - `createdAt` string, date-time
    - `previousSlugs` string[]

## Other responses

- `401`: Unauthorized
- `404`: App not found

---

[API](https://skmtc.dev/anyhook/apis/anyhook-api.md) · [All operations](https://skmtc.dev/anyhook/apis/anyhook-api/llms.txt) · [OpenAPI document](https://skmtc.dev/anyhook/apis/anyhook-api/revisions/ddf038fb32fc?raw)
