The Mobile First Company Calls API

Retrieve and search call records with filtering and pagination. Filter calls by your Allo phone number.

Operations 1

GET /v1/api/calls Search Calls #

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/the-mobile-first-company-calls-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

the-mobile-first-company-calls-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: Allo Analytics Calls API
  description: 'Allo API provides programmatic access to your Allo account, allowing you to manage webhooks, retrieve calls and contacts, and send SMS messages.


    All requests to `/v1/api/**` endpoints automatically go through quota checking and scope validation.'
  version: 1.0.0
  contact:
    name: Allo Support
servers:
- url: https://api.withallo.com
  description: Production server
tags:
- name: Calls
  description: Retrieve and search call records with filtering and pagination. Filter calls by your Allo phone number.
paths:
  /v1/api/calls:
    get:
      summary: Search Calls
      description: Search and filter calls for a specific Allo phone number with pagination support.
      operationId: searchCalls
      tags:
      - Calls
      security:
      - CallsAuth: []
      parameters:
      - name: size
        in: query
        description: Number of results per page. Must be between 1 and 100.
        required: false
        schema:
          type: integer
          minimum: 1
          maximum: 100
          default: 10
      - name: page
        in: query
        description: Page number (0-indexed).
        required: false
        schema:
          type: integer
          minimum: 0
          default: 0
      - name: allo_number
        in: query
        description: Your Allo phone number to filter calls by. Must be in E.164 format (e.g., `+1234567890`).
        required: true
        schema:
          type: string
          example: '+1234567890'
      - name: contact_number
        in: query
        description: Filter calls by contact phone number. Only returns calls with this specific contact. Must be in E.164 format (e.g., `+1234567890`).
        required: false
        schema:
          type: string
          example: +0987654321
      responses:
        '200':
          description: Calls retrieved successfully
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SearchCallsApiResponse'
              example:
                data:
                  results:
                  - id: call_abc123
                    from_number: '+1234567890'
                    to_number: +0987654321
                    length_in_minutes: 5.5
                    type: INBOUND
                    summary: Customer called about order status.
                    tag: support
                    recording_url: https://storage.withallo.com/recordings/abc123.mp3
                    start_date: '2024-01-15T10:30:00'
                    transcript:
                    - source: AGENT
                      text: Hello, how can I help you today?
                      time: '2024-01-15T10:30:05'
                      start_seconds: 5
                      end_seconds: 8.5
                    - source: EXTERNAL
                      text: Hi, I'm calling about my order status.
                      time: '2024-01-15T10:30:10'
                      start_seconds: 10
                      end_seconds: 14
                  metadata:
                    total_pages: 5
                    current_page: 0
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '429':
          $ref: '#/components/responses/TooManyRequests'
components:
  schemas:
    SearchMetadata:
      type: object
      description: Pagination metadata for calls endpoint
      properties:
        total_pages:
          type: integer
          example: 5
        current_page:
          type: integer
          example: 0
    SearchCallsApiResponse:
      type: object
      description: Standard response wrapper for paginated call results
      properties:
        data:
          type: object
          properties:
            results:
              type: array
              items:
                $ref: '#/components/schemas/CallApiResponse'
            metadata:
              $ref: '#/components/schemas/SearchMetadata'
    ErrorDetail:
      type: object
      properties:
        message:
          type: string
        field:
          type: string
    CallApiResponse:
      type: object
      description: A call record with details about the conversation
      properties:
        id:
          type: string
          description: Unique call identifier
          example: call_abc123
        from_number:
          type: string
          description: Phone number that initiated the call (E.164 format or 'anonymous')
          example: '+1234567890'
        to_number:
          type:
          - string
          - 'null'
          description: Phone number that received the call
          example: +0987654321
        length_in_minutes:
          type: number
          format: double
          description: Duration of the call in minutes
          example: 5.5
        type:
          type:
          - string
          - 'null'
          enum:
          - INBOUND
          - OUTBOUND
          description: Direction of the call
        result:
          type: string
          enum:
          - ANSWERED
          - VOICEMAIL
          - TRANSFERRED_AI
          - TRANSFERRED_EXTERNAL
          - BLOCKED
          - FAILED
          - FAILED_EXTERNAL
          - RECEIVED
          - CLOSED
          description: 'The outcome of the call. For outbound calls that reached voicemail, this will be VOICEMAIL regardless of the routing result. Common values: ANSWERED (call was answered), VOICEMAIL (call went to voicemail), TRANSFERRED_AI (transferred to AI agent), BLOCKED (call was blocked)'
          example: ANSWERED
        summary:
          type:
          - string
          - 'null'
          description: AI-generated summary of the call conversation
          example: Customer inquired about order status
        tag:
          type:
          - string
          - 'null'
          description: Tag/category assigned to the call
          example: support
        recording_url:
          type:
          - string
          - 'null'
          format: uri
          description: URL to access the call recording
        start_date:
          type: string
          format: date-time
          description: When the call started (ISO 8601 format)
          example: '2024-01-15T10:30:00'
        transcript:
          type:
          - array
          - 'null'
          description: Transcript of the call conversation
          items:
            $ref: '#/components/schemas/TranscriptRow'
    ErrorResponse:
      type: object
      properties:
        code:
          type: string
          description: Error code identifying the type of error
        details:
          type:
          - array
          - 'null'
          items:
            $ref: '#/components/schemas/ErrorDetail'
          description: Additional error details, or null if not applicable
    TranscriptRow:
      type: object
      description: A single row in the call transcript
      properties:
        source:
          type: string
          enum:
          - AGENT
          - EXTERNAL
          - USER
          description: The source of this transcript entry (AGENT for AI assistant, EXTERNAL for the caller, USER for the Allo user)
        text:
          type: string
          description: The transcribed text content
          example: Hello, how can I help you today?
        time:
          type: string
          format: date-time
          description: When this transcript entry occurred (ISO 8601 format)
          example: '2024-01-15T10:30:15'
        start_seconds:
          type:
          - number
          - 'null'
          format: double
          description: Start time of this segment in seconds from call start
          example: 15
        end_seconds:
          type:
          - number
          - 'null'
          format: double
          description: End time of this segment in seconds from call start
          example: 18.5
  responses:
    Forbidden:
      description: Forbidden - API key lacks required scope
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ErrorResponse'
          example:
            code: API_KEY_INSUFFICIENT_SCOPE
            details:
            - message: required=CONTACTS_READ
              field: scope
    TooManyRequests:
      description: Too Many Requests - Rate limit exceeded
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ErrorResponse'
          example:
            code: API_KEY_QUOTA_EXCEEDED
            details:
            - message: limit=1000;type=DAILY;reset_in=3600
              field: DAILY
    Unauthorized:
      description: Unauthorized - Invalid or missing API key
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ErrorResponse'
          example:
            code: API_KEY_INVALID
            details: null
  securitySchemes:
    CallsAuth:
      type: apiKey
      in: header
      name: Authorization
      description: 'Scope needed: `CONVERSATIONS_READ`'
    ContactsAuth:
      type: apiKey
      in: header
      name: Authorization
      description: 'Scope needed: `CONTACTS_READ`'
    ContactsWriteAuth:
      type: apiKey
      in: header
      name: Authorization
      description: 'Scope needed: `CONTACTS_READ_WRITE`'
    SmsAuth:
      type: apiKey
      in: header
      name: Authorization
      description: 'Scope needed: `SMS_SEND`'
    ApiKeyAuth:
      type: apiKey
      in: header
      name: Authorization