Semaphore Notifications API

Notification management

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/semaphore-notifications-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 email required.

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

OpenAPI Specification

semaphore-notifications-api-openapi.yml Raw ↑
openapi: 3.0.3
info:
  title: Semaphore Public Dashboards Notifications API
  description: 'The Semaphore Public API is a RESTful API that allows you to interact with Semaphore CI/CD.

    ## Authorization

    Authorization is done via bearer token. You can obtain a token by visiting your [account settings](https://me.semaphoreci.com/account).


    ## Pagination with link headers

    Each list request supports pagination. List responses include a [link header](https://datatracker.ietf.org/doc/html/rfc5988#section-5) with the pagination URLs.

    Link headers contain next, previous, first relative URLs.

    '
  version: v2
  contact:
    url: https://semaphore.io/contact
    email: support@semaphoreci.com
  termsOfService: https://semaphore.io/terms
  license:
    name: Proprietary
    url: https://semaphore.io/terms
servers:
- url: https://{org_name}.semaphoreci.com/api/v2
  variables:
    org_name:
      default: me
      description: Organization name
security:
- authorization: []
tags:
- name: Notifications
  description: Notification management
paths:
  /notifications:
    post:
      operationId: Notifications.Create
      description: Create a notification.
      tags:
      - Notifications
      requestBody:
        content:
          application/json:
            schema:
              properties:
                apiVersion:
                  default: v2
                  description: "ApiVersion defines the versioned schema of this representation of an object.\n        Servers should convert recognized schemas to the latest internal value, and may reject\n        unrecognized values."
                  example: v2
                  readOnly: true
                  title: ApiVersion
                  type: string
                kind:
                  default: Notification
                  description: "Kind is a string value representing the REST resource this object represents.\n        Servers may infer this from the endpoint the client submits requests to. Cannot be\n        updated. In CamelCase."
                  example: Notification
                  readOnly: true
                  title: Kind
                  type: string
                metadata:
                  description: Metadata of the notification, all fields are read only
                  properties:
                    created_at:
                      description: Timestamp in ISO 8601 format
                      format: date-time
                      title: Timestamp
                      type: string
                    id:
                      description: ID of a Notification
                      example: ee251df7-6946-4544-840d-b8ac7c02c3e3
                      format: uuid
                      title: Notification.ID
                      type: string
                    name:
                      description: Name of the notification
                      type: string
                    org_id:
                      description: ID of a Organization
                      example: 83293713-b759-46ba-8432-f4c641e3bf14
                      format: uuid
                      title: Organization.ID
                      type: string
                    status:
                      properties:
                        failures:
                          description: A failure contains a timestamp and a description of a failure
                          items:
                            properties:
                              description:
                                description: Description of the failure
                                type: string
                              timestamp:
                                description: Timestamp in ISO 8601 format
                                format: date-time
                                title: Timestamp
                                type: string
                            type: object
                          type: array
                      title: Notifications.Notification.Status
                      type: object
                    updated_at:
                      description: Timestamp in ISO 8601 format
                      format: date-time
                      nullable: true
                      title: Timestamp
                      type: string
                  readOnly: true
                  required:
                  - id
                  - name
                  type: object
                spec:
                  description: Specification of the notification
                  properties:
                    name:
                      description: Name of the notification
                      type: string
                    rules:
                      description: 'Rules must have at least one element. Maximal number of rules: 20.'
                      items:
                        properties:
                          filter:
                            description: Filter for the notification rule
                            properties:
                              branches:
                                description: "List of branch names to trigger this rule. Default: all branches.\n             Examples:\n               - \"master\" - strictly match the master branch\n               - \"/^release-*/\" - regex matches branches that start with 'release-' prefix"
                                items:
                                  type: string
                                type: array
                              pipelines:
                                default: semaphore.yml
                                description: "List of pipeline names to trigger this rule. The rule matches pipeline file name disregarding the path.\n            Examples:\n              - \"semaphore.yml\" - will match `semaphore.yml` pipeline\n              - \"/^stg-*/\" - regex matches pipelines that start with 'stg-' prefix"
                                items:
                                  type: string
                                type: array
                              projects:
                                description: "List of project names to trigger this rule. Default no projects.\n             Examples:\n              - \"cli\" - strictly match the CLI project\n              - \"/^s2-*/\" - regex mathes projects that start with 's2-' prefix"
                                items:
                                  type: string
                                type: array
                              results:
                                description: 'List of results to trigger this rule. Default: every result.'
                                items:
                                  description: 'Either a string or a regex, possible values: `PASSED`, `STOPPED`, `CANCELED`, `FAILED`.'
                                  enum:
                                  - PASSED
                                  - STOPPED
                                  - CANCELED
                                  - FAILED
                                  type: string
                                type: array
                            type: object
                          name:
                            description: Name of the notification rule
                            type: string
                          notify:
                            description: Notification settings
                            properties:
                              email:
                                description: Email notification settings
                                nullable: true
                                properties:
                                  bcc:
                                    description: Email BCC
                                    items:
                                      type: string
                                    type: array
                                  cc:
                                    description: Email CC
                                    items:
                                      type: string
                                    minItems: 1
                                    type: array
                                  content:
                                    description: Email content
                                    type: string
                                  status:
                                    enum:
                                    - ACTIVE
                                    - INACTIVE
                                    title: Notifications.Notification.Rule.Status
                                    type: string
                                  subject:
                                    description: Email subject
                                    type: string
                                required:
                                - cc
                                type: object
                              slack:
                                description: Slack notification settings
                                nullable: true
                                properties:
                                  channels:
                                    description: Slack channels
                                    items:
                                      type: string
                                    type: array
                                  endpoint:
                                    description: Slack endpoint
                                    type: string
                                  message:
                                    description: Slack message
                                    type: string
                                  status:
                                    enum:
                                    - ACTIVE
                                    - INACTIVE
                                    title: Notifications.Notification.Rule.Status
                                    type: string
                                required:
                                - endpoint
                                type: object
                              webhook:
                                description: Webhook notification settings
                                nullable: true
                                properties:
                                  method:
                                    default: POST
                                    description: Webhook http verb
                                    type: string
                                  retries:
                                    default: 3
                                    description: Number of times to retry delivery.
                                    maximum: 3
                                    minimum: 1
                                    type: integer
                                  secret:
                                    description: Name of a Semaphore secret, which will be used to sign the payload.
                                    type: string
                                  status:
                                    enum:
                                    - ACTIVE
                                    - INACTIVE
                                    title: Notifications.Notification.Rule.Status
                                    type: string
                                  timeout:
                                    default: 500
                                    description: Webhook delivery timeout in ms
                                    type: integer
                                  url:
                                    description: Webhook HTTP endpoint to hit.
                                    type: string
                                required:
                                - url
                                type: object
                            type: object
                        title: Notifications.Notification.Rule
                        type: object
                      maxLength: 20
                      minLength: 1
                      type: array
                  required:
                  - name
                  type: object
              required:
              - apiVersion
              - kind
              - metadata
              - spec
              title: Notifications.Notification
              type: object
        description: Notification to be created
        required: false
      responses:
        '200':
          content:
            application/json:
              schema:
                properties:
                  apiVersion:
                    default: v2
                    description: "ApiVersion defines the versioned schema of this representation of an object.\n        Servers should convert recognized schemas to the latest internal value, and may reject\n        unrecognized values."
                    example: v2
                    readOnly: true
                    title: ApiVersion
                    type: string
                  kind:
                    default: Notification
                    description: "Kind is a string value representing the REST resource this object represents.\n        Servers may infer this from the endpoint the client submits requests to. Cannot be\n        updated. In CamelCase."
                    example: Notification
                    readOnly: true
                    title: Kind
                    type: string
                  metadata:
                    description: Metadata of the notification, all fields are read only
                    properties:
                      created_at:
                        description: Timestamp in ISO 8601 format
                        format: date-time
                        title: Timestamp
                        type: string
                      id:
                        description: ID of a Notification
                        example: ee251df7-6946-4544-840d-b8ac7c02c3e3
                        format: uuid
                        title: Notification.ID
                        type: string
                      name:
                        description: Name of the notification
                        type: string
                      org_id:
                        description: ID of a Organization
                        example: 83293713-b759-46ba-8432-f4c641e3bf14
                        format: uuid
                        title: Organization.ID
                        type: string
                      status:
                        properties:
                          failures:
                            description: A failure contains a timestamp and a description of a failure
                            items:
                              properties:
                                description:
                                  description: Description of the failure
                                  type: string
                                timestamp:
                                  description: Timestamp in ISO 8601 format
                                  format: date-time
                                  title: Timestamp
                                  type: string
                              type: object
                            type: array
                        title: Notifications.Notification.Status
                        type: object
                      updated_at:
                        description: Timestamp in ISO 8601 format
                        format: date-time
                        nullable: true
                        title: Timestamp
                        type: string
                    readOnly: true
                    required:
                    - id
                    - name
                    type: object
                  spec:
                    description: Specification of the notification
                    properties:
                      name:
                        description: Name of the notification
                        type: string
                      rules:
                        description: 'Rules must have at least one element. Maximal number of rules: 20.'
                        items:
                          properties:
                            filter:
                              description: Filter for the notification rule
                              properties:
                                branches:
                                  description: "List of branch names to trigger this rule. Default: all branches.\n             Examples:\n               - \"master\" - strictly match the master branch\n               - \"/^release-*/\" - regex matches branches that start with 'release-' prefix"
                                  items:
                                    type: string
                                  type: array
                                pipelines:
                                  default: semaphore.yml
                                  description: "List of pipeline names to trigger this rule. The rule matches pipeline file name disregarding the path.\n            Examples:\n              - \"semaphore.yml\" - will match `semaphore.yml` pipeline\n              - \"/^stg-*/\" - regex matches pipelines that start with 'stg-' prefix"
                                  items:
                                    type: string
                                  type: array
                                projects:
                                  description: "List of project names to trigger this rule. Default no projects.\n             Examples:\n              - \"cli\" - strictly match the CLI project\n              - \"/^s2-*/\" - regex mathes projects that start with 's2-' prefix"
                                  items:
                                    type: string
                                  type: array
                                results:
                                  description: 'List of results to trigger this rule. Default: every result.'
                                  items:
                                    description: 'Either a string or a regex, possible values: `PASSED`, `STOPPED`, `CANCELED`, `FAILED`.'
                                    enum:
                                    - PASSED
                                    - STOPPED
                                    - CANCELED
                                    - FAILED
                                    type: string
                                  type: array
                              type: object
                            name:
                              description: Name of the notification rule
                              type: string
                            notify:
                              description: Notification settings
                              properties:
                                email:
                                  description: Email notification settings
                                  nullable: true
                                  properties:
                                    bcc:
                                      description: Email BCC
                                      items:
                                        type: string
                                      type: array
                                    cc:
                                      description: Email CC
                                      items:
                                        type: string
                                      minItems: 1
                                      type: array
                                    content:
                                      description: Email content
                                      type: string
                                    status:
                                      enum:
                                      - ACTIVE
                                      - INACTIVE
                                      title: Notifications.Notification.Rule.Status
                                      type: string
                                    subject:
                                      description: Email subject
                                      type: string
                                  required:
                                  - cc
                                  type: object
                                slack:
                                  description: Slack notification settings
                                  nullable: true
                                  properties:
                                    channels:
                                      description: Slack channels
                                      items:
                                        type: string
                                      type: array
                                    endpoint:
                                      description: Slack endpoint
                                      type: string
                                    message:
                                      description: Slack message
                                      type: string
                                    status:
                                      enum:
                                      - ACTIVE
                                      - INACTIVE
                                      title: Notifications.Notification.Rule.Status
                                      type: string
                                  required:
                                  - endpoint
                                  type: object
                                webhook:
                                  description: Webhook notification settings
                                  nullable: true
                                  properties:
                                    method:
                                      default: POST
                                      description: Webhook http verb
                                      type: string
                                    retries:
                                      default: 3
                                      description: Number of times to retry delivery.
                                      maximum: 3
                                      minimum: 1
                                      type: integer
                                    secret:
                                      description: Name of a Semaphore secret, which will be used to sign the payload.
                                      type: string
                                    status:
                                      enum:
                                      - ACTIVE
                                      - INACTIVE
                                      title: Notifications.Notification.Rule.Status
                                      type: string
                                    timeout:
                                      default: 500
                                      description: Webhook delivery timeout in ms
                                      type: integer
                                    url:
                                      description: Webhook HTTP endpoint to hit.
                                      type: string
                                  required:
                                  - url
                                  type: object
                              type: object
                          title: Notifications.Notification.Rule
                          type: object
                        maxLength: 20
                        minLength: 1
                        type: array
                    required:
                    - name
                    type: object
                required:
                - apiVersion
                - kind
                - metadata
                - spec
                title: Notifications.Notification
                type: object
          description: Notification
        '400':
          content:
            application/json:
              schema:
                properties:
                  documentation_url:
                    example: https://docs.semaphoreci.com/api/error-codes/bad-request
                    format: uri
                    type: string
                  message:
                    type: string
                title: Error
                type: object
          description: Bad Request
        '401':
          content:
            application/json:
              schema:
                properties:
                  documentation_url:
                    example: https://docs.semaphoreci.com/api/error-codes/bad-request
                    format: uri
                    type: string
                  message:
                    type: string
                title: Error
                type: object
          description: Unauthorized
        '404':
          content:
            application/json:
              schema:
                properties:
                  documentation_url:
                    example: https://docs.semaphoreci.com/api/error-codes/bad-request
                    format: uri
                    type: string
                  message:
                    type: string
                title: Error
                type: object
          description: Not Found
        '422':
          content:
            application/json:
              schema:
                description: Resource validation failed
                properties:
                  documentation_url:
                    example: https://docs.semaphoreci.com/api/error-codes/bad-request
                    format: uri
                    type: string
                  errors:
                    items:
                      properties:
                        field:
                          type: string
                        message:
                          type: string
                      type: object
                    type: array
                  message:
                    type: string
                title: Error.Validation
                type: object
          description: Validation Failed
        '500':
          content:
            application/json:
              schema:
                properties:
                  documentation_url:
                    example: https://docs.semaphoreci.com/api/error-codes/bad-request
                    format: uri
                    type: string
                  message:
                    type: string
                title: Error
                type: object
          description: Internal Server Error
      security:
      - authorization: []
    get:
      operationId: Notifications.List
      description: List notifications in organization.
      tags:
      - Notifications
      parameters:
      - description: Starting point for listing, if you are fetching first page leave it empty
        in: query
        name: page_token
        required: false
        schema:
          default: ''
          type: string
      - description: Page size
        in: query
        name: page_size
        required: false
        schema:
          default: 20
          maximum: 100
          minimum: 1
          title: PageSize
          type: integer
      responses:
        '200':
          content:
            application/json:
              schema:
                items:
                  properties:
                    apiVersion:
                      default: v2
                      description: "ApiVersion defines the versioned schema of this representation of an object.\n        Servers should convert recognized schemas to the latest internal value, and may reject\n        unrecognized values."
                      example: v2
                      readOnly: true
                      title: ApiVersion
                      type: string
                    kind:
                      default: Notification
                      description: "Kind is a string value representing the REST resource this object represents.\n        Servers may infer this from the endpoint the client submits requests to. Cannot be\n        updated. In CamelCase."
                      example: Notification
                      readOnly: true
                      title: Kind
                      type: string
                    metadata:
                      description: Metadata of the notification, all fields are read only
                      properties:
                        created_at:
                          description: Timestamp in ISO 8601 format
                          format: date-time
                          title: Timestamp
                          type: string
                        id:
                          description: ID of a Notification
                          example: ee251df7-6946-4544-840d-b8ac7c02c3e3
                          format: uuid
                          title: Notification.ID
                          type: string
                        name:
                          description: Name of the notification
                          type: string
                        org_id:
                          description: ID of a Organization
                          example: 83293713-b759-46ba-8432-f4c641e3bf14
                          format: uuid
                          title: Organization.ID
                          type: string
                        status:
                          properties:
                            failures:
                              description: A failure contains a timestamp and a description of a failure
                              items:
                                properties:
                                  description:
                                    description: Description of the failure
                                    type: string
                                  timestamp:
                                    description: Timestamp in ISO 8601 format
                                    format: date-time
                                    title: Timestamp
                                    type: string
                                type: object
                              type: array
                          title: Notifications.Notification.Status
                          type: object
                        updated_at:
                          description: Timestamp in ISO 8601 format
                          format: date-time
                          nullable: true
                          title: Timestamp
                          type: string
                      readOnly: true
                      required:
                      - id
                      - name
                      type: object
                    spec:
                      description: Specification of the notification
                      properties:
                        name:
                          description: Name of the notification
                          type: string
                        rules:
                          description: 'Rules must have at least one element. Maximal number of rules: 20.'
                          items:
                            properties:
                              filter:
                                description: Filter for the notification rule
                                properties:
                                  branches:
                                    description: "List of branch names to trigger this rule. Default: all branches.\n             Examples:\n               - \"master\" - strictly match the master branch\n               - \"/^release-*/\" - regex matches branches that start with 'release-' prefix"
                                    items:
                                      type: string
                                    type: array
                                  pipelines:
                                    default: semaphore.yml
                                    description: "List of pipeline names to trigger this rule. The rule matches pipeline file name disregarding the path.\n            Examples:\n              - \"semaphore.yml\" - will match `semaphore.yml` pipeline\n              - \"/^stg-*/\" - regex matches pipelines that start with 'stg-' prefix"
                                    items:
                                      type: string
                                    type: array
                                  projects:
                                    description: "List of 

# --- truncated at 32 KB (85 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/semaphore/refs/heads/main/openapi/semaphore-notifications-api-openapi.yml