KORE Webhook API

The public KORE Webhook API creates, retrieves, and modifies the signing secrets used to verify callbacks KORE sends to customer endpoints. KORE webhooks are signature-verified and idempotent, and the companion Event Streams product delivers CloudEvents 1.0 formatted events with versioned JSON Schema (draft-07) payloads to webhook or AWS Kinesis destinations.

OpenAPI Specification

kore-wireless-webhook.yml Raw ↑
openapi: 3.0.3
info:
  title: Webhook APIs
  description: This is the public Webhook API for creating, retrieving, and modifying secrets.
  termsOfService: https://pardot.korewireless.com/koremsa
  contact:
    name: KORE Support
    url: https://korewireless.service-now.com/csm
    email: support@korewireless.com
  license:
    name: Apache 2.0
    url: https://www.apache.org/licenses/LICENSE-2.0.html
  version: 1.0.0
tags:
- name: Secrets
paths:
  /v1/secrets:
    post:
      summary: Create a new secret
      description: Creates a new secret with associated metadata.
      tags:
      - Secrets
      operationId: createSecret
      parameters:
      - name: Authorization
        in: header
        schema:
          type: string
      - name: Accept
        in: header
        schema:
          type: string
      - name: Content-Type
        in: header
        schema:
          type: string
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                Name:
                  type: string
                  description: A user-friendly name for the secret.
              required:
              - Name
      responses:
        '201':
          description: Secret created successfully
          headers:
            Access-Control-Allow-Origin:
              schema:
                type: string
            Access-Control-Allow-Methods:
              schema:
                type: string
            Access-Control-Allow-Credentials:
              schema:
                type: string
            Access-Control-Allow-Headers:
              schema:
                type: string
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SecretCreated'
        '400':
          description: Bad Request
          headers:
            Access-Control-Allow-Origin:
              schema:
                type: string
            Access-Control-Allow-Methods:
              schema:
                type: string
            Access-Control-Allow-Credentials:
              schema:
                type: string
            Access-Control-Allow-Headers:
              schema:
                type: string
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiErrorResponse'
        '401':
          description: Unauthorized
          headers:
            Access-Control-Allow-Origin:
              schema:
                type: string
            Access-Control-Allow-Methods:
              schema:
                type: string
            Access-Control-Allow-Credentials:
              schema:
                type: string
            Access-Control-Allow-Headers:
              schema:
                type: string
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiErrorResponse'
        '403':
          description: Forbidden
          headers:
            Access-Control-Allow-Origin:
              schema:
                type: string
            Access-Control-Allow-Methods:
              schema:
                type: string
            Access-Control-Allow-Credentials:
              schema:
                type: string
            Access-Control-Allow-Headers:
              schema:
                type: string
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiErrorResponse'
        '404':
          description: Not Found
          headers:
            Access-Control-Allow-Origin:
              schema:
                type: string
            Access-Control-Allow-Methods:
              schema:
                type: string
            Access-Control-Allow-Credentials:
              schema:
                type: string
            Access-Control-Allow-Headers:
              schema:
                type: string
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiErrorResponse'
        '405':
          description: Method Not Allowed
          headers:
            Access-Control-Allow-Origin:
              schema:
                type: string
            Access-Control-Allow-Methods:
              schema:
                type: string
            Access-Control-Allow-Credentials:
              schema:
                type: string
            Access-Control-Allow-Headers:
              schema:
                type: string
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiErrorResponse'
        '500':
          description: Internal Server Error
          headers:
            Access-Control-Allow-Origin:
              schema:
                type: string
            Access-Control-Allow-Methods:
              schema:
                type: string
            Access-Control-Allow-Credentials:
              schema:
                type: string
            Access-Control-Allow-Headers:
              schema:
                type: string
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiErrorResponse'
    get:
      summary: Retrieve a list of secrets
      description: Retrieves a list of secrets, optionally filtered by status.
      tags:
      - Secrets
      operationId: getSecrets
      parameters:
      - name: status
        in: query
        description: Filter secrets by their status.
        required: false
        schema:
          type: string
          example: active
          enum:
          - active
          - pending
      - name: page_number
        in: query
        description: Optional Filter that indicates the current pagination index of the response.
        required: false
        schema:
          type: integer
          example: 1
      - name: page_size
        in: query
        description: Optional Filter that indicates the total number of records included in the response.
        required: false
        schema:
          type: integer
          example: 10
      - name: Authorization
        in: header
        schema:
          type: string
      - name: Accept
        in: header
        schema:
          type: string
      - name: Content-Type
        in: header
        schema:
          type: string
      responses:
        '200':
          description: A list of secrets
          headers:
            Access-Control-Allow-Origin:
              schema:
                type: string
            Access-Control-Allow-Methods:
              schema:
                type: string
            Access-Control-Allow-Credentials:
              schema:
                type: string
            Access-Control-Allow-Headers:
              schema:
                type: string
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PaginatedSecretResponse'
        '400':
          description: Bad Request
          headers:
            Access-Control-Allow-Origin:
              schema:
                type: string
            Access-Control-Allow-Methods:
              schema:
                type: string
            Access-Control-Allow-Credentials:
              schema:
                type: string
            Access-Control-Allow-Headers:
              schema:
                type: string
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiErrorResponse'
        '401':
          description: Unauthorized
          headers:
            Access-Control-Allow-Origin:
              schema:
                type: string
            Access-Control-Allow-Methods:
              schema:
                type: string
            Access-Control-Allow-Credentials:
              schema:
                type: string
            Access-Control-Allow-Headers:
              schema:
                type: string
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiErrorResponse'
        '403':
          description: Forbidden
          headers:
            Access-Control-Allow-Origin:
              schema:
                type: string
            Access-Control-Allow-Methods:
              schema:
                type: string
            Access-Control-Allow-Credentials:
              schema:
                type: string
            Access-Control-Allow-Headers:
              schema:
                type: string
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiErrorResponse'
        '404':
          description: Not Found
          headers:
            Access-Control-Allow-Origin:
              schema:
                type: string
            Access-Control-Allow-Methods:
              schema:
                type: string
            Access-Control-Allow-Credentials:
              schema:
                type: string
            Access-Control-Allow-Headers:
              schema:
                type: string
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiErrorResponse'
        '405':
          description: Method Not Allowed
          headers:
            Access-Control-Allow-Origin:
              schema:
                type: string
            Access-Control-Allow-Methods:
              schema:
                type: string
            Access-Control-Allow-Credentials:
              schema:
                type: string
            Access-Control-Allow-Headers:
              schema:
                type: string
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiErrorResponse'
        '500':
          description: Internal Server Error
          headers:
            Access-Control-Allow-Origin:
              schema:
                type: string
            Access-Control-Allow-Methods:
              schema:
                type: string
            Access-Control-Allow-Credentials:
              schema:
                type: string
            Access-Control-Allow-Headers:
              schema:
                type: string
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiErrorResponse'
  /v1/secrets/{id}:
    patch:
      summary: Modify an existing secret
      description: Updates the details of an existing secret specified by `id`.
      operationId: modifySecret
      tags:
      - Secrets
      parameters:
      - name: id
        in: path
        required: true
        description: The unique identifier of the secret to be updated.
        schema:
          type: string
      - name: Authorization
        in: header
        schema:
          type: string
      - name: Accept
        in: header
        schema:
          type: string
      - name: Content-Type
        in: header
        schema:
          type: string
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                Name:
                  type: string
                  description: A user-friendly name for the secret.
                Status:
                  type: string
                  enum:
                  - active
                  - pending
                  description: The status of the secret.
      responses:
        '200':
          description: Secret updated successfully
          headers:
            Access-Control-Allow-Origin:
              schema:
                type: string
            Access-Control-Allow-Methods:
              schema:
                type: string
            Access-Control-Allow-Credentials:
              schema:
                type: string
            Access-Control-Allow-Headers:
              schema:
                type: string
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SecretResponse'
        '400':
          description: Bad Request
          headers:
            Access-Control-Allow-Origin:
              schema:
                type: string
            Access-Control-Allow-Methods:
              schema:
                type: string
            Access-Control-Allow-Credentials:
              schema:
                type: string
            Access-Control-Allow-Headers:
              schema:
                type: string
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiErrorResponse'
        '401':
          description: Unauthorized
          headers:
            Access-Control-Allow-Origin:
              schema:
                type: string
            Access-Control-Allow-Methods:
              schema:
                type: string
            Access-Control-Allow-Credentials:
              schema:
                type: string
            Access-Control-Allow-Headers:
              schema:
                type: string
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiErrorResponse'
        '403':
          description: Forbidden
          headers:
            Access-Control-Allow-Origin:
              schema:
                type: string
            Access-Control-Allow-Methods:
              schema:
                type: string
            Access-Control-Allow-Credentials:
              schema:
                type: string
            Access-Control-Allow-Headers:
              schema:
                type: string
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiErrorResponse'
        '404':
          description: Not Found
          headers:
            Access-Control-Allow-Origin:
              schema:
                type: string
            Access-Control-Allow-Methods:
              schema:
                type: string
            Access-Control-Allow-Credentials:
              schema:
                type: string
            Access-Control-Allow-Headers:
              schema:
                type: string
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiErrorResponse'
        '405':
          description: Method Not Allowed
          headers:
            Access-Control-Allow-Origin:
              schema:
                type: string
            Access-Control-Allow-Methods:
              schema:
                type: string
            Access-Control-Allow-Credentials:
              schema:
                type: string
            Access-Control-Allow-Headers:
              schema:
                type: string
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiErrorResponse'
        '500':
          description: Internal Server Error
          headers:
            Access-Control-Allow-Origin:
              schema:
                type: string
            Access-Control-Allow-Methods:
              schema:
                type: string
            Access-Control-Allow-Credentials:
              schema:
                type: string
            Access-Control-Allow-Headers:
              schema:
                type: string
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiErrorResponse'
components:
  schemas:
    SecretCreated:
      allOf:
      - $ref: '#/components/schemas/SecretResponse'
      type: object
      properties:
        secret:
          type: string
          description: the value of the secret created, this is generated and provided only once during creation.
      required:
      - id
      - name
      - secret
      - status
      - last_modified
    SecretResponse:
      type: object
      properties:
        id:
          type: string
          description: the id of the secret created
          nullable: false
          minLength: 30
          maxLength: 30
          example: whs_01jf8c4889ehtbzt0n9mzk1prc
        name:
          type: string
          description: friendly name of the secret
          nullable: false
          example: my new secret
        status:
          type: string
          example: active
          enum:
          - active
          - pending
        last_modified:
          type: string
          format: date-time
      required:
      - id
      - name
      - status
      - last_modified
    PaginatedSecretResponse:
      type: object
      properties:
        data:
          type: array
          items:
            allOf:
            - $ref: '#/components/schemas/SecretResponse'
            type: object
        meta_data:
          type: object
          properties:
            count:
              type: integer
              example: 1
            page_size:
              type: integer
              example: 10
            page_number:
              type: integer
              example: 1
            previous_page_url:
              type: string
              example: https://webhook.api.korewireless.com/v1/secrets?page_size=1&page_number=2
            next_page_url:
              type: string
              example: https://webhook.api.korewireless.com/v1/secrets?page_size=1&page_number=4
      required:
      - data
      - meta_data
    ApiErrorResponse:
      type: object
      properties:
        status:
          type: integer
          format: int32
          description: HTTP Status Code
          example: 403
        code:
          type: integer
          format: int32
          example: 30010
        message:
          type: string
          description: Error Message
          example: Resource access is forbidden
        info:
          type: string
          description: Internal Error Message Reference
          example: http//docs.korewireless.com/errors/30010
      required:
      - code
      - status
      - message
  securitySchemes:
    Auth:
      type: oauth2
      flows:
        clientCredentials:
          tokenUrl: https://api.korewireless.com/api-services/v1/auth/token
          scopes: {}
security:
- {}
- Auth: []
x-hideTryItPanel: true
servers:
- url: https://webhook.api.korewireless.com