AppSignal API

AppSignal API as documented publicly: 16 operations. Contract generated from the documentation by API Evangelist (2026-10-27); not the provider's own document.

Operations 16

GET /admin Ignore actions #
GET /api/[app-id]/markers.json Marker index #
POST /api/[app-id]/markers.json POST /api/[app-id]/markers.json #
POST /api/sourcemaps Create sourcemap #
GET /appsignal/appsignal-cli/releases/latest/download/install.sh GET /appsignal/appsignal-cli/releases/latest/download/install.sh #
GET /check_ins/cron GET /check_ins/cron #
POST /check_ins/cron POST /check_ins/cron #
POST /check_ins/heartbeat POST /check_ins/heartbeat #
GET /healthcheck Ignore actions #
GET /heath_check Ignore actions #
GET /ignored-route Ignore actions #
GET /logs/syslog GET /logs/syslog #
POST /main.abc123.js POST /main.abc123.js #
GET /pages/{id} Ignore actions #
POST /pages/create Ignore actions #
POST /ping Ignore actions #

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/appsignal:appsignal-api"
All apis
curl "https://apis.io/api/v1/apis?limit=25"

Discovery needs no key. Ratings and market analysis are Pro.

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

appsignal-openapi-generated.yml Raw ↑
openapi: 3.1.0
info:
  title: AppSignal API
  version: '2026-10-27'
  description: 'GENERATED FROM DOCUMENTATION by API Evangelist on 2026-10-27: 16 operation(s) read from 7 public documentation page(s) (each operation
    names its page in x-source). This is not the provider''s published contract; AppSignal has published no machine-readable contract that the
    pipeline could find. Engine: local.'
  x-evidence-tiers:
    code-example: 7
    documentation: 9
    pages-with-code: 7
    pages-read: 7
  x-generated-from: documentation
  x-provenance: generated
  x-authored-by: API Evangelist
  x-generated: '2026-10-27'
  x-generator: generate-contract-from-docs.py
  x-engine: local
  x-sources:
  - https://www.appsignal.com/launch-week/mcp-cli
  - https://www.appsignal.com/intelligence/cli
  - https://www.appsignal.com/learning-center/how-can-i-monitor-background-processes-with-check-ins
  - https://docs.appsignal.com/llms-full.txt
  - https://docs.appsignal.com/api/markers
  - https://docs.appsignal.com/api/sourcemaps
  - https://docs.appsignal.com/cli/authentication
servers:
- url: https://appsignal.com
paths:
  /admin:
    get:
      operationId: get_admin
      tags:
      - Admin
      summary: Ignore actions
      x-source: https://docs.appsignal.com/llms-full.txt
      responses:
        '200':
          description: Success (status as documented)
      x-evidence:
        kind: documentation
  /api/[app-id]/markers.json:
    get:
      operationId: get_api_app_id_markers_json
      tags:
      - Api
      summary: Marker index
      description: This endpoint returns a list of markers, combining both Deploy and Custom markers.
      x-source: https://docs.appsignal.com/api/markers
      parameters:
      - name: kind
        in: query
        required: false
        schema:
          type: string
        description: The kind of marker to be created - “custom”.
      - name: from
        in: query
        required: false
        schema:
          type: string
        description: ISO 8601 / Integer - UNIX timestamp. All times are UTC.
      - name: to
        in: query
        required: false
        schema:
          type: string
        description: ISO 8601 / Integer - UNIX timestamp. All times are UTC.
      - name: limit
        in: query
        required: false
        schema:
          type: integer
        description: Limit the number of markers returned.
      - name: count_only
        in: query
        required: false
        schema:
          type: boolean
        description: Set to “true” to only return the number of markers that exist.
      responses:
        '200':
          description: Success (status as documented)
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GetApiAppIdMarkersJsonResponse'
      x-evidence:
        kind: documentation
    post:
      operationId: post_api_app_id_markers_json
      tags:
      - Api
      summary: POST /api/[app-id]/markers.json
      x-source: https://docs.appsignal.com/api/markers
      parameters:
      - name: token
        in: query
        required: false
        schema:
          type: string
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PostApiAppIdMarkersJsonRequest'
      responses:
        '201':
          description: Success (shape read from the example response on the page)
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PostApiAppIdMarkersJsonResponse'
      x-evidence:
        kind: code-example
        language: curl
        snippet: "curl \n Bash curl -H \"Content-Type: application/json\" -XPOST https://appsignal.com/api/[app-id]/markers.json?token=[your-personal-token]\
          \  -d '{ \"marker\":{ \"kind\": \"deploy\", \"repository\": \"git@github.com:company/repository.git\", \"revision\": \"[revision]\"\
          , \"user\": \"[user]\"}}' \n All requests to AppSignal API endpoints require a personal API token given as an URL query parameter for\
          \ authentication . \n ​"
  /api/sourcemaps:
    post:
      operationId: post_api_sourcemaps
      tags:
      - Api
      summary: Create sourcemap
      x-source: https://docs.appsignal.com/api/sourcemaps
      parameters:
      - name: push_api_key
        in: query
        required: true
        schema:
          type: string
        description: Your organization’s Push API key.
      - name: app_name
        in: query
        required: true
        schema:
          type: string
        description: Name of the application in AppSignal in which the sourcemap should be used.
      - name: environment
        in: query
        required: true
        schema:
          type: string
        description: Environment of the application in AppSignal in which the sourcemap should be used.
      - name: revision
        in: query
        required: true
        schema:
          type: string
        description: Deploy marker revision reference.
      - name: name[]
        in: query
        required: true
        schema:
          type: array
        description: List of filenames that the sourcemap covers. This should be a full URL to the minified JavaScript file, as you see it in
          the backtrace, including any url params.
      - name: file
        in: query
        required: true
        schema:
          type: string
        description: Sourcemap to upload.
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PostApiSourcemapsRequest'
      responses:
        '201':
          description: Success (status as documented)
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PostApiSourcemapsResponse'
      x-evidence:
        kind: documentation
  /appsignal/appsignal-cli/releases/latest/download/install.sh:
    get:
      operationId: get_appsignal_appsignal_cli_releases_latest_download_install_sh
      tags:
      - Appsignal
      summary: GET /appsignal/appsignal-cli/releases/latest/download/install.sh
      x-source: https://www.appsignal.com/launch-week/mcp-cli
      responses:
        '200':
          description: Success (status as documented)
      x-evidence:
        kind: code-example
        language: curl
        snippet: "curl -sSL https://github.com/appsignal/appsignal-cli/releases/latest/download/install.sh | sudo sh \n Check it's on your path\
          \ and see your auth status: \n Shell appsignal-cli --version \n appsignal-cli about \n Then sign in: \n Shell appsignal-cli auth login\
          \ \n Every command returns human-readable output by default. Pass --output json (or -o json ) when your agent needs structured data\
          \ instead, status m"
  /check_ins/cron:
    get:
      operationId: get_check_ins_cron
      tags:
      - Check Ins
      summary: GET /check_ins/cron
      x-source: https://www.appsignal.com/learning-center/how-can-i-monitor-background-processes-with-check-ins
      responses:
        '200':
          description: Success (status as documented)
      x-evidence:
        kind: code-example
        language: curl
        snippet: "curl or HTTP request to our Cron Check-in endpoint: \n https://appsignal-endpoint.net/check_ins/cron \n Below are examples of\
          \ a Cron Check-in API request using cURL and HTTP: "
    post:
      operationId: post_check_ins_cron
      tags:
      - Check Ins
      summary: POST /check_ins/cron
      x-source: https://www.appsignal.com/learning-center/how-can-i-monitor-background-processes-with-check-ins
      responses:
        '201':
          description: Success (status as documented)
      x-evidence:
        kind: code-example
        language: curl
        snippet: "curl http curl curl -D - -X POST -G 'https://appsignal-endpoint.net/check_ins/cron'  -d 'api_key=YOUR-APP-LEVEL-API-KEY'  -d\
          \ 'identifier=YOUR-CHECK-IN-IDENTIFIER' http POST https://appsignal-endpoint.net/check_ins/cron \n ? api_key= YOUR-APP-LEVEL-API-KEY\
          \ \n & identifier= YOUR-CHECK-IN-IDENTIFIER \n For Heartbeat Check-ins you can post to the following endpoint: \n https://appsignal-endpoint.net/check"
  /check_ins/heartbeat:
    post:
      operationId: post_check_ins_heartbeat
      tags:
      - Check Ins
      summary: POST /check_ins/heartbeat
      x-source: https://www.appsignal.com/learning-center/how-can-i-monitor-background-processes-with-check-ins
      responses:
        '201':
          description: Success (status as documented)
      x-evidence:
        kind: code-example
        language: curl
        snippet: "curl http cURL curl -D - -X POST -G 'https://appsignal-endpoint.net/check_ins/heartbeat'  -d 'api_key=YOUR-APP-LEVEL-API-KEY'\
          \  -d 'identifier=YOUR-CHECK-IN-IDENTIFIER' http POST https://appsignal-endpoint.net/check_ins/heartbeat \n ? api_key= YOUR-APP-LEVEL-API-KEY\
          \ \n & identifier= YOUR-CHECK-IN-IDENTIFIER \n You can read more about sending Check-ins via API in our documentation . \n How can I\
          \ manage "
  /healthcheck:
    get:
      operationId: get_healthcheck
      tags:
      - Healthcheck
      summary: Ignore actions
      x-source: https://docs.appsignal.com/llms-full.txt
      responses:
        '200':
          description: Success (status as documented)
      x-evidence:
        kind: documentation
  /heath_check:
    get:
      operationId: get_heath_check
      tags:
      - Heath Check
      summary: Ignore actions
      x-source: https://docs.appsignal.com/llms-full.txt
      responses:
        '200':
          description: Success (status as documented)
      x-evidence:
        kind: documentation
  /ignored-route:
    get:
      operationId: get_ignored_route
      tags:
      - Ignored Route
      summary: Ignore actions
      x-source: https://docs.appsignal.com/llms-full.txt
      responses:
        '200':
          description: Success (status as documented)
      x-evidence:
        kind: documentation
  /logs/syslog:
    get:
      operationId: get_logs_syslog
      tags:
      - Logs
      summary: GET /logs/syslog
      x-source: https://docs.appsignal.com/llms-full.txt
      parameters:
      - name: api_key
        in: query
        required: false
        schema:
          type: string
      responses:
        '200':
          description: Success (status as documented)
      x-evidence:
        kind: code-example
        language: httpie
        snippet: HTTP "https://appsignal-endpoint.net/logs/syslog?api_key=YOUR_LOG_SOURCE_API_KEY"
  /main.abc123.js:
    post:
      operationId: post_main_abc123_js
      tags:
      - Main
      summary: POST /main.abc123.js
      x-source: https://docs.appsignal.com/api/sourcemaps
      responses:
        '201':
          description: Success (shape read from the example response on the page)
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PostMainAbc123JsResponse'
      x-evidence:
        kind: code-example
        language: curl
        snippet: "curl request: \n Bash curl -k -X POST -H 'Content-Type: multipart/form-data'  -F 'name[]=https://test.local/main.abc123.js'\
          \  -F 'name[]=https://cdn.local/main.abc123.js'  -F 'revision=abcdef'  -F 'file=@/~project/main.js.map'  'https://appsignal.com/api/sourcemaps?push_api_key=xxx&app_name=AppSignal&environment=development'\
          \ \n Note that you can only upload one sourcemap file at a time, so if you hav"
  /pages/{id}:
    get:
      operationId: get_pages_id
      tags:
      - Pages
      summary: Ignore actions
      x-source: https://docs.appsignal.com/llms-full.txt
      parameters:
      - name: id
        in: path
        required: true
        schema:
          type: string
      responses:
        '200':
          description: Success (status as documented)
      x-evidence:
        kind: documentation
  /pages/create:
    post:
      operationId: post_pages_create
      tags:
      - Pages
      summary: Ignore actions
      x-source: https://docs.appsignal.com/llms-full.txt
      responses:
        '201':
          description: Success (status as documented)
      x-evidence:
        kind: documentation
  /ping:
    post:
      operationId: post_ping
      tags:
      - Ping
      summary: Ignore actions
      x-source: https://docs.appsignal.com/llms-full.txt
      responses:
        '201':
          description: Success (status as documented)
      x-evidence:
        kind: documentation
components:
  schemas:
    GetApiAppIdMarkersJsonResponse:
      type: object
      properties:
        count:
          type: integer
          description: Total number of markers.
        markers:
          type: array
          description: List of marker objects.
    PostApiAppIdMarkersJsonRequest:
      type: object
      properties:
        marker:
          type: object
          properties:
            kind:
              type: string
            repository:
              type: string
            revision:
              type: string
            user:
              type: string
    PostApiAppIdMarkersJsonResponse:
      type: object
      properties:
        marker:
          type: object
          properties:
            kind:
              type: string
            created_at:
              type: string
              format: date-time
            icon:
              type: string
            message:
              type: string
    PostApiSourcemapsRequest:
      type: object
      properties:
        push_api_key:
          type: string
        app_name:
          type: string
        environment:
          type: string
        revision:
          type: string
        name[]:
          type: array
          description: Array of strings
        file:
          type: string
      required:
      - push_api_key
      - app_name
      - environment
      - revision
      - name[]
      - file
    PostApiSourcemapsResponse:
      type: object
      properties:
        errors:
          type: array
          description: Array of error messages when a 400 validation error occurs.
    PostMainAbc123JsResponse:
      type: object
      properties:
        errors:
          type: array
          items:
            type: string
tags:
- name: Admin
- name: Api
- name: Appsignal
- name: Check Ins
- name: Healthcheck
- name: Heath Check
- name: Ignored Route
- name: Logs
- name: Main
- name: Pages
- name: Ping