FreJun Teler Events API

Inspect the webhook events Teler generated for your account and redeliver any that your endpoint missed.

Operations 3

GET /api/v1/events List webhook events #
GET /api/v1/events/{event_id} Retrieve a webhook event #
POST /api/v1/events/{event_id}/redeliver Redeliver a webhook event #

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/frejun-teler-events-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

frejun-teler-events-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: Teler API Reference Events API
  summary: Programmable voice infrastructure for AI agents.
  description: 'The Teler API lets you place and control programmable voice calls, stream live

    audio to AI agents, and observe everything that happens on a call in real time.'
  contact:
    name: Teler support
    email: support@frejun.com
  version: 0.1.0
servers:
- url: https://api.frejun.ai
  description: Production
security:
- ApiKeyAuth: []
tags:
- name: Events
  description: Inspect the webhook events Teler generated for your account and redeliver any that your endpoint missed.
paths:
  /api/v1/events:
    get:
      tags:
      - Events
      summary: List webhook events
      description: List the webhook events generated for your account, newest first. Filter by call, event type, delivery status, or time, and page with cursors. Useful for auditing deliveries and reconciling missed events.
      operationId: list_webhook_events
      parameters:
      - name: call_id
        in: query
        required: false
        schema:
          anyOf:
          - type: string
          - type: 'null'
          title: Call Id
      - name: type
        in: query
        required: false
        schema:
          anyOf:
          - type: string
          - type: 'null'
          title: Type
      - name: occurred_after
        in: query
        required: false
        schema:
          anyOf:
          - type: string
            format: date-time
          - type: 'null'
          title: Occurred After
      - name: delivery_status
        in: query
        required: false
        schema:
          anyOf:
          - $ref: '#/components/schemas/WebhookDeliveryStatus'
          - type: 'null'
          title: Delivery Status
      - name: limit
        in: query
        required: false
        schema:
          type: integer
          maximum: 100
          minimum: 1
          default: 50
          title: Limit
      - name: cursor_after
        in: query
        required: false
        schema:
          anyOf:
          - type: string
          - type: 'null'
          description: Opaque cursor — page toward older rows (next page).
          title: Cursor After
        description: Opaque cursor — page toward older rows (next page).
      - name: cursor_before
        in: query
        required: false
        schema:
          anyOf:
          - type: string
          - type: 'null'
          description: Opaque cursor — page toward newer rows (previous page).
          title: Cursor Before
        description: Opaque cursor — page toward newer rows (previous page).
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CursorPage_WebhookEventResponse_'
        '400':
          description: The pagination cursor is invalid or has expired.
          content:
            application/json:
              example:
                success: false
                message: The pagination cursor is invalid or has expired.
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '403':
          description: The `x-api-key` header is missing or invalid.
          content:
            application/json:
              example:
                success: false
                message: Invalid API Key.
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '422':
          description: The request body or query parameters failed validation.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ValidationErrorResponse'
  /api/v1/events/{event_id}:
    get:
      tags:
      - Events
      summary: Retrieve a webhook event
      description: Retrieve a single webhook event, including its full payload and delivery history.
      operationId: retrieve_webhook_event
      parameters:
      - name: event_id
        in: path
        required: true
        schema:
          type: string
          title: Event Id
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/WebhookEventResponse'
        '403':
          description: The `x-api-key` header is missing or invalid.
          content:
            application/json:
              example:
                success: false
                message: Invalid API Key.
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '404':
          description: No event matches the supplied identifier for this account.
          content:
            application/json:
              example:
                success: false
                message: The requested event was not found.
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '422':
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ValidationErrorResponse'
  /api/v1/events/{event_id}/redeliver:
    post:
      tags:
      - Events
      summary: Redeliver a webhook event
      description: Queue a webhook event for redelivery to your configured endpoint. Use this to recover events your endpoint missed during downtime. Events can only be replayed within the redelivery window.
      operationId: redeliver_webhook_event
      parameters:
      - name: event_id
        in: path
        required: true
        schema:
          type: string
          title: Event Id
      responses:
        '202':
          description: Redelivery was scheduled.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/WebhookEventRedeliverResponse'
        '403':
          description: The `x-api-key` header is missing or invalid.
          content:
            application/json:
              example:
                success: false
                message: Invalid API Key.
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '404':
          description: No event matches the supplied identifier for this account.
          content:
            application/json:
              example:
                success: false
                message: The requested event was not found.
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '409':
          description: The event cannot be redelivered in its current state, or has no delivery target configured.
          content:
            application/json:
              example:
                success: false
                message: This event cannot be redelivered in its current state.
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '410':
          description: The event is older than the redelivery window and can no longer be replayed.
          content:
            application/json:
              example:
                success: false
                message: This event is older than the redelivery window and cannot be replayed.
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '422':
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ValidationErrorResponse'
components:
  schemas:
    ErrorResponse:
      properties:
        success:
          type: boolean
          title: Success
          description: Always `false` on an error response.
          default: false
        message:
          type: string
          title: Message
          description: Human-readable description of what went wrong. Safe to show to a user.
        code:
          anyOf:
          - type: string
          - type: 'null'
          title: Code
          description: Stable, machine-readable error code. Present on business-rule errors (e.g. `transfer_in_progress`). Branch on this, not on `message`.
        type:
          anyOf:
          - type: string
          - type: 'null'
          title: Type
          description: Error category (e.g. `invalid_state`). Present on some conflict errors.
      type: object
      required:
      - message
      title: ErrorResponse
      description: Standard error envelope returned for all non-validation errors.
      example:
        message: The requested call was not found.
        success: false
    ValidationFieldError:
      properties:
        loc:
          items: {}
          type: array
          title: Loc
          description: Path to the offending field, e.g. `["body", "to_number"]`.
        msg:
          type: string
          title: Msg
          description: Human-readable explanation of the problem.
        type:
          type: string
          title: Type
          description: Programmatic error type, e.g. `string_pattern_mismatch`.
      type: object
      required:
      - loc
      - msg
      - type
      title: ValidationFieldError
      description: One field-level problem within a `422` validation error.
    WebhookDeliveryStatus:
      type: string
      enum:
      - pending
      - delivered
      - failed_permanent
      - backfill_skipped
      title: WebhookDeliveryStatus
    CursorPage_WebhookEventResponse_:
      properties:
        data:
          items:
            $ref: '#/components/schemas/WebhookEventResponse'
          type: array
          title: Data
          description: The page of results, newest first.
        next_cursor:
          anyOf:
          - type: string
          - type: 'null'
          title: Next Cursor
          description: Pass as `cursor_after` to fetch the next (older) page. `null` on the last page.
        previous_cursor:
          anyOf:
          - type: string
          - type: 'null'
          title: Previous Cursor
          description: Pass as `cursor_before` to fetch the previous (newer) page. `null` on the first page.
        has_more:
          type: boolean
          title: Has More
          description: Whether more results exist after this page.
          default: false
      type: object
      required:
      - data
      title: CursorPage[WebhookEventResponse]
    WebhookEventRedeliverResponse:
      properties:
        event_id:
          type: string
          title: Event Id
          description: The event that was queued for redelivery (`evt_` prefix).
        redelivered_at:
          type: string
          format: date-time
          title: Redelivered At
          description: When the redelivery was scheduled.
      type: object
      required:
      - event_id
      - redelivered_at
      title: WebhookEventRedeliverResponse
      example:
        event_id: evt_01JQ8Z9K7M3N2P4R5S6T7V8WGH
        redelivered_at: '2026-06-01T10:05:00Z'
    WebhookEventResponse:
      properties:
        id:
          type: string
          title: Id
          description: Unique identifier for the event (`evt_` prefix).
        account_id:
          type: string
          title: Account Id
          description: The account the event belongs to (`acc_` prefix).
        call_id:
          anyOf:
          - type: string
          - type: 'null'
          title: Call Id
          description: Related call (`cs_` prefix), if the event is call-scoped.
        sip_trunk_id:
          anyOf:
          - type: string
          - type: 'null'
          title: Sip Trunk Id
          description: Related SIP trunk (`st_` prefix), if applicable.
        leg_id:
          anyOf:
          - type: string
          - type: 'null'
          title: Leg Id
          description: Related call leg (`cl_` prefix), if applicable.
        type:
          type: string
          title: Type
          description: Event type, e.g. `call.completed`. See the webhook events reference.
        api_version:
          anyOf:
          - type: string
          - type: 'null'
          title: Api Version
          description: Dated payload version this event was rendered with, e.g. `2026-06-01`.
        occurred_at:
          type: string
          format: date-time
          title: Occurred At
          description: When the underlying event occurred.
        payload:
          additionalProperties: true
          type: object
          title: Payload
          description: The full event payload delivered to your webhook.
        delivery_status:
          $ref: '#/components/schemas/WebhookDeliveryStatus'
          description: Current delivery status of the event.
        attempt_count:
          type: integer
          title: Attempt Count
          description: Number of delivery attempts made so far.
        last_attempt_at:
          anyOf:
          - type: string
            format: date-time
          - type: 'null'
          title: Last Attempt At
          description: When the most recent attempt was made.
        last_status_code:
          anyOf:
          - type: integer
          - type: 'null'
          title: Last Status Code
          description: HTTP status returned by your endpoint on the last attempt.
        last_error:
          anyOf:
          - type: string
          - type: 'null'
          title: Last Error
          description: Error from the last failed attempt, if any.
        delivered_at:
          anyOf:
          - type: string
            format: date-time
          - type: 'null'
          title: Delivered At
          description: When the event was successfully delivered, if it was.
        created_at:
          type: string
          format: date-time
          title: Created At
          description: When the event record was created.
      type: object
      required:
      - id
      - account_id
      - type
      - occurred_at
      - payload
      - delivery_status
      - attempt_count
      - created_at
      title: WebhookEventResponse
      example:
        account_id: acc_01JQ8Z9K7M3N2P4R5S6T7V8WIJ
        api_version: '2026-06-01'
        attempt_count: 1
        call_id: cs_01JQ8Z9K7M3N2P4R5S6T7V8W9X
        created_at: '2026-06-01T09:17:48Z'
        delivered_at: '2026-06-01T09:17:49Z'
        delivery_status: delivered
        id: evt_01JQ8Z9K7M3N2P4R5S6T7V8WGH
        last_attempt_at: '2026-06-01T09:17:49Z'
        last_status_code: 200
        occurred_at: '2026-06-01T09:17:48Z'
        payload:
          call_id: cs_01JQ8Z9K7M3N2P4R5S6T7V8W9X
          type: call.completed
        type: call.completed
    ValidationErrorResponse:
      properties:
        success:
          type: boolean
          title: Success
          description: Always `false`.
          default: false
        message:
          type: string
          title: Message
          description: Always `"Validation Error"` for this response.
          default: Validation Error
        errors:
          items:
            $ref: '#/components/schemas/ValidationFieldError'
          type: array
          title: Errors
          description: One entry per field that failed validation.
      type: object
      required:
      - errors
      title: ValidationErrorResponse
      description: Returned with `422` when the request fails schema validation.
      example:
        errors:
        - loc:
          - body
          - to_number
          msg: String should match pattern '^\+\d{7,15}$'
          type: string_pattern_mismatch
        message: Validation Error
        success: false
  securitySchemes:
    ApiKeyAuth:
      type: apiKey
      in: header
      name: x-api-key
      description: Your secret account API key. Create one in the Teler dashboard.