openapi: 3.1.0 info: title: Reloadly Airtime Authentication Operators API description: The Reloadly Airtime API enables businesses to programmatically deliver mobile airtime top-ups and data bundles to phones across 170+ countries and 800+ mobile operators. The API supports both operator-specific and auto-detect top-ups, with real-time fulfillment and detailed transaction reporting. Authentication uses OAuth 2.0 client credentials with separate sandbox and production environments. version: 1.0.0 contact: name: Reloadly Support url: https://support.reloadly.com termsOfService: https://www.reloadly.com/terms servers: - url: https://topups.reloadly.com description: Production Server - url: https://topups-sandbox.reloadly.com description: Sandbox Server security: - bearerAuth: [] tags: - name: Operators description: Browse mobile network operators and their coverage. paths: /operators: get: operationId: listOperators summary: List Operators description: Retrieve a paginated list of supported mobile network operators. Supports filtering by country code. Returns operator details including name, country, supported denominations, and FX rates. tags: - Operators parameters: - $ref: '#/components/parameters/PageParam' - $ref: '#/components/parameters/SizeParam' - name: countryCode in: query description: Filter by ISO 3166-1 alpha-2 country code schema: type: string example: US - name: includeBundles in: query description: Include data bundle operators schema: type: boolean - name: includeData in: query description: Include data-only operators schema: type: boolean - name: includePin in: query description: Include PIN-based top-up operators schema: type: boolean responses: '200': description: Paginated list of operators content: application/json: schema: $ref: '#/components/schemas/OperatorsPage' '401': $ref: '#/components/responses/Unauthorized' /operators/{operatorId}: get: operationId: getOperator summary: Get Operator description: Retrieve details for a specific mobile network operator including coverage, denominations, and FX exchange rate. tags: - Operators parameters: - name: operatorId in: path required: true description: Unique identifier of the operator schema: type: integer responses: '200': description: Operator details content: application/json: schema: $ref: '#/components/schemas/Operator' '401': $ref: '#/components/responses/Unauthorized' '404': $ref: '#/components/responses/NotFound' /operators/auto-detect/phone/{phone}/countries/{countryCode}: get: operationId: autoDetectOperator summary: Auto-Detect Operator description: Automatically detect the mobile network operator for a phone number in a given country. Returns the detected operator with confidence score. tags: - Operators parameters: - name: phone in: path required: true description: Phone number in E.164 format (without leading +) schema: type: string example: '12025551234' - name: countryCode in: path required: true description: ISO 3166-1 alpha-2 country code schema: type: string example: US - name: suggestedAmounts in: query description: Include suggested top-up amounts schema: type: boolean - name: suggestedAmountsMap in: query description: Include suggested amounts as a map schema: type: boolean responses: '200': description: Detected operator content: application/json: schema: $ref: '#/components/schemas/Operator' '401': $ref: '#/components/responses/Unauthorized' '404': $ref: '#/components/responses/NotFound' components: schemas: OperatorsPage: type: object properties: content: type: array items: $ref: '#/components/schemas/Operator' totalElements: type: integer totalPages: type: integer last: type: boolean number: type: integer size: type: integer Country: type: object properties: isoName: type: string description: ISO 3166-1 alpha-2 country code name: type: string description: Country display name Operator: type: object properties: operatorId: type: integer description: Unique operator identifier name: type: string description: Operator display name bundle: type: boolean description: Whether the operator offers data bundles data: type: boolean description: Whether this is a data-only operator pin: type: boolean description: Whether the operator uses PIN-based top-ups denominationType: type: string enum: - FIXED - RANGE localFixedAmounts: type: array items: type: number description: Available fixed amounts in local currency internationalFixedAmounts: type: array items: type: number description: Available fixed amounts in international currency localMinAmount: type: number description: Minimum top-up in local currency (range products) localMaxAmount: type: number description: Maximum top-up in local currency (range products) internationalMinAmount: type: number description: Minimum top-up in international currency (range products) internationalMaxAmount: type: number description: Maximum top-up in international currency (range products) country: $ref: '#/components/schemas/Country' fxRate: $ref: '#/components/schemas/FxRate' logoUrls: type: array items: type: string format: uri description: Operator logo image URLs FxRate: type: object properties: currencyCode: type: string description: Local currency code rate: type: number format: double description: Exchange rate from USD to local currency Error: type: object properties: timeStamp: type: string format: date-time message: type: string path: type: string errorCode: type: string responses: Unauthorized: description: Missing or invalid authentication token content: application/json: schema: $ref: '#/components/schemas/Error' NotFound: description: Requested resource not found content: application/json: schema: $ref: '#/components/schemas/Error' parameters: PageParam: name: page in: query description: Page number (1-based) schema: type: integer minimum: 1 default: 1 SizeParam: name: size in: query description: Number of results per page schema: type: integer minimum: 1 maximum: 200 default: 25 securitySchemes: bearerAuth: type: http scheme: bearer bearerFormat: JWT description: OAuth 2.0 bearer token obtained via the /oauth/token endpoint using client credentials grant. externalDocs: description: Reloadly Airtime API Reference url: https://docs.reloadly.com/airtime