> ## Documentation Index
> Fetch the complete documentation index at: https://docs.base44.com/llms.txt
> Use this file to discover all available pages before exploring further.

> ## Agent Instructions
> Internal links on these pages omit the .md extension. Append .md to a docs page URL, or send an Accept: text/markdown header, to get that page as markdown.

# Resume an endpoint

> <Info>This API is in beta. Endpoints, fields, and behavior may still change, so avoid depending on it in production.</Info>

Resumes a paused endpoint. One you paused resumes right away. One Base44 paused after repeated failures (`auto_paused`) must pass the activation test again, which runs in the same call: The test is a signed `webhook.test.v1` event. The endpoint activates only if it answers with a 2xx status within 5 seconds and returns the event's `data.challenge` in its response body. `activated` says whether it did; when it didn't, `failure_category`, `http_status` and `detail` say why.



## OpenAPI

````yaml /developers/references/outbound-webhooks/outbound-webhooks-openapi.json post /endpoints/{endpoint_id}/resume
openapi: 3.1.0
info:
  title: Base44 Outbound Webhooks API
  description: >

    Register HTTPS endpoints that Base44 notifies when something happens in your
    workspace, such as an

    app being published or the AI builder finishing a message. The events
    section lists every event an

    endpoint can receive.


    **Authentication:** send a workspace API key with the
    `outbound_webhooks:write` scope as

    `Authorization: Bearer <key>`. The key decides the workspace, so no path
    takes a workspace ID.

    The public key set needs no authentication.


    **Activation:** registering an endpoint sends it a signed `webhook.test.v1`
    event in the same call.

    The endpoint becomes `active` only if it answers with a 2xx status within 5
    seconds and returns the

    event's `data.challenge` in its response body, either as `{"challenge":
    "<value>"}` or as the bare

    value. Until then it receives nothing else.


    **Events:** each event is a CloudEvents 1.0 JSON body, signed with Ed25519
    under the Standard Webhooks

    `v1a` scheme. Verify every request against your workspace's public key set,
    and deduplicate on `id`:

    delivery is at least once and unordered.


    **Rate limits**, per workspace and multiplied by your plan's rate-limit
    tier:

    - endpoint reads (list, get): 300 a minute

    - endpoint writes (register, update, pause, resume, delete): 60 a minute

    - activation tests (register, test, resuming an auto-paused endpoint): 10 a
    minute

    - the public key set: 600 a minute per client IP


    A `429` carries `Retry-After`. Errors use one envelope, `{"error": {"code",
    "message", "details"}}`;

    match on `error.code`, never on the message.
  version: 1.0.0
servers:
  - url: https://app.base44.com/api/v1/outbound-webhooks
    description: Outbound Webhooks API
security:
  - WorkspaceApiKey: []
tags:
  - name: outbound-webhooks
    description: >-
      Register and manage the endpoints that receive events, and get the keys
      that verify them.
  - name: events
    description: The events Base44 sends to your endpoints.
paths:
  /endpoints/{endpoint_id}/resume:
    post:
      tags:
        - outbound-webhooks
      summary: Resume an endpoint
      description: >-
        <Info>This API is in beta. Endpoints, fields, and behavior may still
        change, so avoid depending on it in production.</Info>


        Resumes a paused endpoint. One you paused resumes right away. One Base44
        paused after repeated failures (`auto_paused`) must pass the activation
        test again, which runs in the same call: The test is a signed
        `webhook.test.v1` event. The endpoint activates only if it answers with
        a 2xx status within 5 seconds and returns the event's `data.challenge`
        in its response body. `activated` says whether it did; when it didn't,
        `failure_category`, `http_status` and `detail` say why.
      operationId: resume_endpoint_endpoints__endpoint_id__resume_post
      parameters:
        - name: endpoint_id
          in: path
          required: true
          schema:
            type: string
            description: The endpoint's ID.
            examples:
              - 6ac2a82edfafd1b6c6a9c27d
            title: Endpoint Id
          description: The endpoint's ID.
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ActivationResponse'
          headers:
            X-Request-Id:
              description: Identifies this request. Quote it when you contact support.
              schema:
                type: string
            X-RateLimit-Limit:
              description: Requests allowed in the current window.
              schema:
                type: integer
            X-RateLimit-Remaining:
              description: Requests left in the current window.
              schema:
                type: integer
            X-RateLimit-Reset:
              description: When the current window resets, in Unix seconds.
              schema:
                type: integer
        '400':
          description: >-
            `invalid_request` — a malformed body, an unusable target URL, an
            unknown event type, or an invalid or expired cursor.
          headers:
            X-Request-Id:
              description: Identifies this request. Quote it when you contact support.
              schema:
                type: string
          content:
            application/json:
              example:
                error:
                  code: invalid_request
                  message: The request is invalid.
                  details:
                    fields:
                      - field: target_url
                        problem: Field required
              schema:
                $ref: '#/components/schemas/ApiErrorResponse'
        '401':
          description: >-
            `unauthenticated` — a missing, malformed, unknown or disabled
            credential. Not distinguished further on purpose.
          headers:
            X-Request-Id:
              description: Identifies this request. Quote it when you contact support.
              schema:
                type: string
          content:
            application/json:
              example:
                error:
                  code: unauthenticated
                  message: Invalid workspace API key.
                  details: {}
              schema:
                $ref: '#/components/schemas/ApiErrorResponse'
        '403':
          description: >-
            `permission_denied`: the key lacks the `outbound_webhooks:write`
            scope, or the workspace's plan doesn't include outbound webhooks.
          headers:
            X-Request-Id:
              description: Identifies this request. Quote it when you contact support.
              schema:
                type: string
          content:
            application/json:
              example:
                error:
                  code: permission_denied
                  message: >-
                    This workspace API key is not permitted to manage outbound
                    webhooks. Needed: [outbound_webhooks:write]
                  details: {}
              schema:
                $ref: '#/components/schemas/ApiErrorResponse'
        '404':
          description: >-
            `not_found` — no such endpoint in this workspace. Also returned for
            another workspace's endpoint id, so the response does not confirm it
            exists.
          headers:
            X-Request-Id:
              description: Identifies this request. Quote it when you contact support.
              schema:
                type: string
          content:
            application/json:
              example:
                error:
                  code: not_found
                  message: Webhook endpoint not found.
                  details: {}
              schema:
                $ref: '#/components/schemas/ApiErrorResponse'
        '409':
          description: >-
            `conflict` — the endpoint changed under the request; re-read and
            retry. `limit_exceeded` — the workspace is at its endpoint cap
            (`details.max_endpoints`); not retryable until an endpoint is
            deleted.
          headers:
            X-Request-Id:
              description: Identifies this request. Quote it when you contact support.
              schema:
                type: string
          content:
            application/json:
              example:
                error:
                  code: limit_exceeded
                  message: A workspace may have at most 10 webhook endpoints.
                  details:
                    max_endpoints: 10
              schema:
                $ref: '#/components/schemas/ApiErrorResponse'
        '429':
          description: >-
            `rate_limited` — request throttling. Retryable; honour
            `Retry-After`.
          headers:
            X-Request-Id:
              description: Identifies this request. Quote it when you contact support.
              schema:
                type: string
            Retry-After:
              description: Seconds to wait before retrying.
              schema:
                type: integer
            X-RateLimit-Limit:
              description: Requests allowed in the current window.
              schema:
                type: integer
            X-RateLimit-Remaining:
              description: Requests left in the current window.
              schema:
                type: integer
            X-RateLimit-Reset:
              description: When the current window resets, in Unix seconds.
              schema:
                type: integer
          content:
            application/json:
              example:
                error:
                  code: rate_limited
                  message: >-
                    Rate limit exceeded. Retry after the interval in the
                    Retry-After header.
                  details:
                    retry_after_seconds: 42
              schema:
                $ref: '#/components/schemas/ApiErrorResponse'
        '500':
          description: >-
            `internal_error`: an unexpected failure. Retry with exponential
            backoff.
          headers:
            X-Request-Id:
              description: Identifies this request. Quote it when you contact support.
              schema:
                type: string
          content:
            application/json:
              example:
                error:
                  code: internal_error
                  message: An internal error occurred. Retry with exponential backoff.
                  details: {}
              schema:
                $ref: '#/components/schemas/ApiErrorResponse'
components:
  schemas:
    ActivationResponse:
      properties:
        endpoint:
          $ref: '#/components/schemas/EndpointResponse'
        activated:
          type: boolean
          title: Activated
          description: Whether the endpoint passed the test and is `active`.
        http_status:
          anyOf:
            - type: integer
            - type: 'null'
          title: Http Status
          description: The status your endpoint answered with. Null when it didn't answer.
        failure_category:
          anyOf:
            - type: string
            - type: 'null'
          title: Failure Category
          description: >-
            Why the test failed: `timeout`, `transport` (no connection),
            `server_error` (5xx), `client_error` (4xx, or a 2xx without the
            challenge), `redirect`, `ssrf_rejected` (the URL resolved to a
            non-public address) or `internal`. Null on success.
        detail:
          type: string
          title: Detail
          description: A sentence explaining the result. Not a stable contract.
          default: ''
      type: object
      required:
        - endpoint
        - activated
      title: ActivationResponse
      description: The endpoint and the result of its activation test.
      examples:
        - activated: true
          detail: ''
          endpoint:
            activated_at: '2026-10-04T19:25:39.423Z'
            consecutive_failed_deliveries: 0
            created_date: '2026-10-04T19:25:34.260Z'
            description: Provisioning
            health: healthy
            id: 6ac2a82edfafd1b6c6a9c27d
            last_success_at: '2026-10-05T13:23:36.743Z'
            selected_event_types:
              - app.created.v1
              - app.deleted.v1
            state: active
            target_url: https://hooks.example.com/base44
          http_status: 200
    ApiErrorResponse:
      properties:
        error:
          $ref: '#/components/schemas/ApiErrorBody'
          description: What went wrong.
      type: object
      required:
        - error
      title: ApiErrorResponse
    EndpointResponse:
      properties:
        id:
          type: string
          title: Id
          description: The endpoint's ID.
        target_url:
          type: string
          title: Target Url
          description: The URL that receives events.
        description:
          type: string
          title: Description
          description: A note for your own reference, up to 200 characters.
        selected_event_types:
          items:
            type: string
          type: array
          title: Selected Event Types
          description: The event types sent to this endpoint.
        state:
          $ref: '#/components/schemas/EndpointState'
          description: >-
            `pending` until it passes the activation test, then `active`.
            `paused` when you paused it, `auto_paused` when Base44 paused it
            after 10 failed deliveries in a row over at least 5 days. Only
            `active` endpoints receive events.
        health:
          $ref: '#/components/schemas/EndpointHealth'
          description: >-
            How recent deliveries went. `unknown` before the first delivery,
            `healthy` after a success, `failing` after 3 failed deliveries in a
            row. `degraded` is reserved.
        created_date:
          anyOf:
            - type: string
              format: date-time
            - type: 'null'
          title: Created Date
          description: When the endpoint was registered, in UTC.
        activated_at:
          anyOf:
            - type: string
              format: date-time
            - type: 'null'
          title: Activated At
          description: >-
            When the endpoint first became active at its current URL, in UTC.
            Events from before this time aren't sent to it.
        last_success_at:
          anyOf:
            - type: string
              format: date-time
            - type: 'null'
          title: Last Success At
          description: >-
            When a delivery last succeeded. In UTC. Absent until it first
            happens.
        last_failure_at:
          anyOf:
            - type: string
              format: date-time
            - type: 'null'
          title: Last Failure At
          description: >-
            When a delivery last ran out of attempts. In UTC. Absent until it
            first happens.
        consecutive_failed_deliveries:
          type: integer
          title: Consecutive Failed Deliveries
          description: >-
            Deliveries in a row that ran out of attempts. A success resets it to
            0.
          default: 0
      type: object
      required:
        - id
        - target_url
        - description
        - selected_event_types
        - state
        - health
      title: EndpointResponse
      examples:
        - activated_at: '2026-10-04T19:25:39.423Z'
          consecutive_failed_deliveries: 0
          created_date: '2026-10-04T19:25:34.260Z'
          description: Provisioning
          health: healthy
          id: 6ac2a82edfafd1b6c6a9c27d
          last_success_at: '2026-10-05T13:23:36.743Z'
          selected_event_types:
            - app.created.v1
            - app.deleted.v1
          state: active
          target_url: https://hooks.example.com/base44
    ApiErrorBody:
      properties:
        code:
          type: string
          title: Code
          description: Stable machine-readable cause. Match on this, not the message.
        message:
          type: string
          title: Message
          description: Human-readable prose. Not a stable contract.
        details:
          additionalProperties: true
          type: object
          title: Details
          description: Documented structured context, or empty.
      type: object
      required:
        - code
        - message
      title: ApiErrorBody
    EndpointState:
      type: string
      enum:
        - pending
        - active
        - paused
        - auto_paused
      title: EndpointState
      description: Whether the endpoint receives events.
    EndpointHealth:
      type: string
      enum:
        - unknown
        - healthy
        - degraded
        - failing
      title: EndpointHealth
      description: How recent deliveries to the endpoint went.
  securitySchemes:
    WorkspaceApiKey:
      type: http
      scheme: bearer
      description: >-
        A workspace API key with the `outbound_webhooks:write` scope, sent as
        `Authorization: Bearer <key>`.

````

This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.