InfraNest Webhooks API

Outbound webhook endpoints (#30) — org members subscribe an external URL to InfraNest events and receive signed POSTs. The signing secret is returned only on create / rotate.

Operations 1

GET /api/organizations/{organization_id}/webhook-endpoints/schema Get the outbound webhook JSON Schema #

Work with this as data

Every API here is available over the APIs.io API and to AI agents over MCP.

MCP server

One button, every client — Claude, Cursor, VS Code and the rest.

https://apis.io/mcp

Tools for apis

7 MCP tools reach this
  • find_apisBrowse and filter every API in the catalog.
  • get_api_artifactsOne API's artifacts, grouped by type.
  • get_openapiThe primary OpenAPI for this API.
  • find_similar_apisAPIs that look like this one.
  • apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.
  • resolveTurn a domain, URL or GitHub org into the provider it belongs to.
  • find_cohortsEvery scored population of providers in the catalog.
All 92 tools →

Call it yourself

curl for this page
This API
curl "https://apis.io/api/v1/apis/infranest:infranest-webhooks-api"
All apis
curl "https://apis.io/api/v1/apis?limit=25"

Calls without X-API-Key need no key. Calls with it need a paid plan — get a key.

Get an API key

Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.

A second provider on the same verified email joins the account you already have.

OpenAPI Specification

infranest-webhooks-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: InfraNest Webhooks API
  description: Domains, DNS, cloud servers, certificates and uptime monitoring in one API, across the registrars, DNS hosts and clouds you already use, such as Cloudflare, Route 53, Hetzner and GoDaddy. Start in a free sandbox with sample data, use scoped tokens, try DNS changes as a dry run first, and retry safely with idempotency keys.
  version: 1.0.0
  x-logo:
    url: https://developers.infranest.io/logo.svg
    altText: InfraNest
  contact:
    name: InfraNest
    url: https://developers.infranest.io
  termsOfService: https://infranest.io/terms
servers:
- url: https://api.infranest.io
security:
- default: []
tags:
- name: Webhooks
  description: 'Outbound webhook endpoints (#30) — org members subscribe an external URL to InfraNest events and

    receive signed POSTs. The signing secret is returned only on create / rotate.'
paths:
  /api/organizations/{organization_id}/webhook-endpoints/schema:
    get:
      summary: Get the outbound webhook JSON Schema
      operationId: theJSONSchemaOfTheEnvelopeWePOSTForTheChosenEvents2240PastedIntoAPowerAutomateTriggerOrParseJSONStepSoThePayloadsFieldsArriveTypedEveryEventWhenNoneAreNamed
      description: The JSON Schema of the payload InfraNest sends to your webhook endpoints, for tools that type a payload from a schema. Narrow it with `events[]`; with none, it covers every event. `events` lists every event you can name.
      parameters:
      - in: path
        name: organization_id
        required: true
        description: Your organization's ID.
        schema:
          type: integer
      responses:
        '200':
          description: OK
          content:
            application/json:
              example:
                schema:
                  type: object
                  properties:
                    event:
                      title: Event
                      type: string
                    created_at:
                      title: Created at
                      type: string
                      format: date-time
                    data:
                      type: object
                      properties:
                        acknowledged_by:
                          title: Acknowledged by
                          anyOf:
                          - type: string
                        action:
                          title: Action
                          anyOf:
                          - type: string
                        actor:
                          title: Actor
                          anyOf:
                          - type: string
                        agent:
                          title: Agent
                          anyOf:
                          - type: string
                        asn_org:
                          title: ASN org
                          anyOf:
                          - type: string
                        assignee:
                          title: Assignee
                          anyOf:
                          - type: string
                        assignees:
                          title: Assignees
                          anyOf:
                          - type: array
                            items:
                              type: string
                        auction:
                          title: Auction
                          anyOf:
                          - type: object
                        author:
                          title: Author
                          anyOf:
                          - type: string
                        base_branch:
                          title: Base branch
                          anyOf:
                          - type: string
                        booted_at:
                          title: Booted at
                          anyOf:
                          - type: string
                            format: date-time
                        branch:
                          title: Branch
                          anyOf:
                          - type: string
                        change:
                          title: Change
                          anyOf:
                          - type: string
                        changed_fields:
                          title: Changed fields
                          anyOf:
                          - type: array
                            items:
                              type: string
                        check_name:
                          title: Check name
                          anyOf:
                          - type: string
                        check_status:
                          title: Check status
                          anyOf:
                          - type: string
                        comment:
                          title: Comment
                          anyOf:
                          - type: string
                        commits:
                          title: Commits
                          anyOf:
                          - type: integer
                        component:
                          title: Component
                          anyOf:
                          - type: string
                        conclusion:
                          title: Conclusion
                          anyOf:
                          - type: string
                        context:
                          title: Context
                          anyOf:
                          - type: string
                        country_code:
                          title: Country code
                          anyOf:
                          - type: string
                        created:
                          title: Created
                          anyOf:
                          - type: boolean
                        creator:
                          title: Creator
                          anyOf:
                          - type: string
                        current_ipv4:
                          title: Current IPv4
                          anyOf:
                          - type: string
                        current_ipv6:
                          title: Current IPv6
                          anyOf:
                          - type: string
                        custom_fields:
                          title: Custom fields
                          anyOf:
                          - type: object
                        days_left:
                          title: Days left
                          anyOf:
                          - type: integer
                        deleted:
                          title: Deleted
                          anyOf:
                          - type: boolean
                        deleted_in:
                          title: Deleted in
                          anyOf:
                          - type: string
                        deployment_id:
                          title: Deployment ID
                          anyOf:
                          - type: integer
                        description:
                          title: Description
                          anyOf:
                          - type: string
                        domain:
                          title: Domain
                          anyOf:
                          - type: string
                        down_everywhere:
                          title: Down everywhere
                          anyOf:
                          - type: boolean
                        draft:
                          title: Draft
                          anyOf:
                          - type: boolean
                        drop_eta:
                          title: Drop ETA
                          anyOf:
                          - type: string
                            format: date-time
                        duration_minutes:
                          title: Duration minutes
                          anyOf:
                          - type: integer
                        email:
                          title: Email
                          anyOf:
                          - type: string
                        endpoint:
                          title: Endpoint
                          anyOf:
                          - type: string
                        environment:
                          title: Environment
                          anyOf:
                          - type: string
                        environment_url:
                          title: Environment URL
                          anyOf:
                          - type: string
                        escalation_policy:
                          title: Escalation policy
                          anyOf:
                          - type: string
                        expires_at:
                          title: Expires at
                          anyOf:
                          - type: string
                            format: date-time
                        expiry_may_be_stale:
                          title: Expiry may be stale
                          anyOf:
                          - type: boolean
                        forced:
                          title: Forced
                          anyOf:
                          - type: boolean
                        full_at:
                          title: Full at
                          anyOf:
                          - type: string
                        has_monitor:
                          title: Has monitor
                          anyOf:
                          - type: boolean
                        head_branch:
                          title: Head branch
                          anyOf:
                          - type: string
                        head_sha:
                          title: Head SHA
                          anyOf:
                          - type: string
                        host:
                          title: Host
                          anyOf:
                          - type: string
                        identifier:
                          title: Identifier
                          anyOf:
                          - type: string
                        impact:
                          title: Impact
                          anyOf:
                          - type: string
                        incident_status:
                          title: Incident status
                          anyOf:
                          - type: string
                        incident_title:
                          title: Incident title
                          anyOf:
                          - type: string
                        incident_type:
                          title: Incident type
                          anyOf:
                          - type: string
                        incident_url:
                          title: Incident URL
                          anyOf:
                          - type: string
                        ip:
                          title: IP
                          anyOf:
                          - type: string
                        ip_version:
                          title: IP version
                          anyOf:
                          - type: string
                        is_hosting:
                          title: Is hosting
                          anyOf:
                          - type: boolean
                        is_pull_request:
                          title: Is pull request
                          anyOf:
                          - type: boolean
                        issue_type:
                          title: Issue type
                          anyOf:
                          - type: string
                        issuer:
                          title: Issuer
                          anyOf:
                          - type: string
                        issues:
                          title: Issues
                          anyOf:
                          - type: array
                            items:
                              type: string
                        label:
                          title: Label
                          anyOf:
                          - type: string
                        labels:
                          title: Labels
                          anyOf:
                          - type: array
                            items:
                              type: string
                        last_seen_at:
                          title: Last seen at
                          anyOf:
                          - type: string
                            format: date-time
                        listed_since:
                          title: Listed since
                          anyOf:
                          - type: string
                            format: date-time
                        lists:
                          title: Lists
                          anyOf:
                          - type: array
                            items:
                              type: string
                        load_balancers:
                          title: Load balancers
                          anyOf:
                          - type: array
                            items:
                              type: string
                        local_time:
                          title: Local time
                          anyOf:
                          - type: string
                        log_url:
                          title: Log URL
                          anyOf:
                          - type: string
                        merged:
                          title: Merged
                          anyOf:
                          - type: boolean
                        message:
                          title: Message
                          anyOf:
                          - type: string
                        monitor_type:
                          title: Monitor type
                          anyOf:
                          - type: string
                        monitors:
                          title: Monitors
                          anyOf:
                          - type: array
                            items:
                              type: string
                        mount_point:
                          title: Mount point
                          anyOf:
                          - type: string
                        name:
                          title: Name
                          anyOf:
                          - type: string
                        new_nameservers:
                          title: New nameservers
                          anyOf:
                          - type: array
                            items:
                              type: string
                        note:
                          title: Note
                          anyOf:
                          - type: string
                        note_trimmed:
                          title: Note trimmed
                          anyOf:
                          - type: boolean
                        number:
                          title: Number
                          anyOf:
                          - type: integer
                        old_nameservers:
                          title: Old nameservers
                          anyOf:
                          - type: array
                            items:
                              type: string
                        owner:
                          title: Owner
                          anyOf:
                          - type: string
                        owner_email:
                          title: Owner email
                          anyOf:
                          - type: string
                        owner_name:
                          title: Owner name
                          anyOf:
                          - type: string
                        pd_connection_id:
                          title: PagerDuty connection ID
                          anyOf:
                          - type: integer
                        pd_incident_id:
                          title: PagerDuty incident ID
                          anyOf:
                          - type: string
                        percent_per_day:
                          title: Percent per day
                          anyOf:
                          - type: number
                        prerelease:
                          title: Prerelease
                          anyOf:
                          - type: boolean
                        previous_state:
                          title: Previous state
                          anyOf:
                          - type: string
                        priority:
                          title: Priority
                        production_environment:
                          title: Production environment
                          anyOf:
                          - type: boolean
                        project:
                          title: Project
                          anyOf:
                          - type: string
                        provider:
                          title: Provider
                          anyOf:
                          - type: string
                        pusher:
                          title: Pusher
                          anyOf:
                          - type: string
                        record_action:
                          title: Record action
                          anyOf:
                          - type: string
                        record_name:
                          title: Record name
                          anyOf:
                          - type: string
                        record_type:
                          title: Record type
                          anyOf:
                          - type: string
                        records:
                          title: Records
                          anyOf:
                          - type: integer
                        ref:
                          title: Ref
                          anyOf:
                          - type: string
                        ref_type:
                          title: Ref type
                          anyOf:
                          - type: string
                        registrar:
                          title: Registrar
                          anyOf:
                          - type: string
                        repo:
                          title: Repo
                          anyOf:
                          - type: string
                        responder:
                          title: Responder
                          anyOf:
                          - type: string
                        responder_message:
                          title: Responder message
                          anyOf:
                          - type: string
                        responder_state:
                          title: Responder state
                          anyOf:
                          - type: string
                        reviewer:
                          title: Reviewer
                          anyOf:
                          - type: string
                        run_attempt:
                          title: Run attempt
                          anyOf:
                          - type: integer
                        run_id:
                          title: Run ID
                          anyOf:
                          - type: integer
                        run_number:
                          title: Run number
                          anyOf:
                          - type: integer
                        server_name:
                          title: Server name
                          anyOf:
                          - type: string
                        service:
                          title: Service
                          anyOf:
                          - type: string
                        sha:
                          title: SHA
                          anyOf:
                          - type: string
                        silent_minutes:
                          title: Silent minutes
                          anyOf:
                          - type: integer
                        size_gb:
                          title: Size GB
                          anyOf:
                          - type: integer
                        state:
                          title: State
                          anyOf:
                          - type: string
                        status:
                          title: Status
                          anyOf:
                          - type: string
                        status_page:
                          title: Status page
                          anyOf:
                          - type: string
                        subject:
                          title: Subject
                          anyOf:
                          - type: string
                        tag:
                          title: Tag
                          anyOf:
                          - type: string
                        task:
                          title: Task
                          anyOf:
                          - type: string
                        team:
                          title: Team
                          anyOf:
                          - type: string
                        threats:
                          title: Threats
                          anyOf:
                          - type: array
                            items:
                              type: string
                        ticket_key:
                          title: Ticket key
                          anyOf:
                          - type: string
                        ticket_state:
                          title: Ticket state
                          anyOf:
                          - type: string
                        ticket_url:
                          title: Ticket URL
                          anyOf:
                          - type: string
                        timezone:
                          title: Timezone
                          anyOf:
                          - type: string
                        title:
                          title: Title
                          anyOf:
                          - type: string
                        tld:
                          title: TLD
                          anyOf:
                          - type: string
                        tracker:
                          title: Tracker
                          anyOf:
                          - type: string
                        transient_environment:
                          title: Transient environment
                          anyOf:
                          - type: boolean
                        trigger_event:
                          title: Triggering event
                          anyOf:
                          - type: string
                        triggering_actor:
                          title: Triggering actor
                          anyOf:
                          - type: string
                        type:
                          title: Type
                          anyOf:
                          - type: string
                        unused:
                          title: Unused
                          anyOf:
                          - type: boolean
                        update_status:
                          title: Update status
                          anyOf:
                          - type: string
                        urgency:
                          title: Urgency
                          anyOf:
                          - type: string
                        url:
                          title: URL
                          anyOf:
                          - type: string
                        used_percent:
                          title: Used percent
                          anyOf:
                          - type: integer
                        via:
                          title: Via
                          anyOf:
                          - type: string
                        weekday:
                          title: Weekday
                          anyOf:
                          - type: integer
                        weeks:
                          title: Weeks
                          anyOf:
                          - type: integer
                        window_start:
                          title: Window start
                          anyOf:
                          - type: string
                        window_url:
                          title: Window URL
                          anyOf:
                          - type: string
                        workflow:
                          title: Workflow
                          anyOf:
                          - type: string
                        zone:
                          title: Zone
                          anyOf:
                          - type: string
                  required:
                  - event
                events:
                - domain.registered
        '401':
          $ref: '#/components/responses/Error401'
        '403':
          $ref: '#/components/responses/Error403'
        '404':
          $ref: '#/components/responses/Error404'
        '429':
          $ref: '#/components/responses/Error429'
      tags:
      - Webhooks
      requestBody:
        required: false
        content:
          application/json:
            schema:
              type: object
              properties:
                events:
                  type: array
                  description: ''
                  example:
                  - architecto
                  items:
                    type: string
      x-infranest-scope: monitoring.read
      x-infranest-token-writable: false
      x-infranest-module: integrations
      x-infranest-errors:
      - unauthenticated
      - scope_missing
      - wrong_organization
      - test_token_required
      - test_token_sandbox_only
      - permission_denied
      - not_found
      - rate_limited
components:
  responses:
    Error401:
      description: The token is missing, wrong, expired or revoked. The body is an Error; its `code` says which.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error'
    Error404:
      description: Nothing exists at this address, or you cannot see it. The body is an Error; its `code` says which.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error'
    Error429:
      description: 'Too many requests: wait the seconds in Retry-After. The body is an Error; its `code` says which.'
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error'
    Error403:
      description: The token or your role may not do this here. The body is an Error; its `code` says which.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error'
  schemas:
    Error:
      type: object
      required:
      - code
      - message
      - hint
      - retryable
      properties:
        code:
          type: string
          enum:
          - unauthenticated
          - scope_missing
          - session_only
          - not_token_writable
          - write_disabled
          - wrong_organization
          - token_ip_not_allowed
          - test_token_required
          - test_token_sandbox_only
          - api_token_required
          - sandbox_personal
          - sandbox_needs_organization
          - organization_offline
          - permission_denied
          - forbidden
          - organization_suspended
          - read_only_session
          - sso_required
          - two_factor_setup_required
          - password_reset_required
          - email_verification_required
          - plan_limit
          - not_found
          - method_not_allowed
          - conflict
          - validation_failed
          - unprocessable
          - range_too_large
          - rate_limited
          - idempotency_key_reused
          - idempotency_in_progress
          - provider_refused
          - provider_rate_limited
          - provider_unavailable
          - maintenance
          - server_error
          description: 'What kind of error this is. Stable: codes are added, never renamed or removed.'
        message:
          type: string
          description: A sentence for people. May be reworded.
        hint:
          type: string
          description: What to do about it.
        retryable:
          type: boolean
          description: Whether the same request can succeed later unchanged.
        docs_url:
          type: string
          format: uri
        reference:
          type: string
          description: The request ID; also the X-Request-Id header.
        retry_after:
          type: integer
          description: Seconds to wait before retrying.
        required:
          type: string
          description: The missing token scope (scope_missing).
        required_permission:
          type: string
          description: The missing role permission (permission_denied).
        errors:
          type: object
          additionalProperties:
            type: array
            items:
              type: string
  securitySchemes:
    default:
      type: http
      scheme: bearer
      description: Create a token in the app under My account → Developer. Tokens are managed in the app only, never through the API.
externalDocs:
  description: 'InfraNest: domains, DNS, cloud servers, certificates and uptime monitoring in one place'
  url: https://infranest.io