platfone-com Activation Report API

Activation report related operations.

Operations 4

GET /activation/{activation_id}/report/reasons Get available report reasons for activation #
POST /activation/{activation_id}/report Report activation #
GET /activation/{activation_id}/report Get report #
GET /activation/reports Get reports #

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/platfone-com:platfone-com-activation-report-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

platfone-com-activation-report-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  version: 1.0.0
  title: Platfone Activation Activation Report API
  termsOfService: https://platfone.com/compliance#terms
  contact:
    email: support@platfone.com
    url: https://platfone.com/
  license:
    name: Apache 2.0
    url: http://www.apache.org/licenses/LICENSE-2.0.html
  x-logo:
    url: https://wl-temp-number.nyc3.cdn.digitaloceanspaces.com/platfone_logo.svg
    href: https://platfone.com/
    altText: Platfone Activation API
  description: '# About Activation API


    Platfone Activation API will allow you to get temporary mobile number and receive SMS messages to that number. You can use this API to automate SMS activations and OTP verification for your users. Billing applies only to successfully received SMS messages. ## How to use


    1. Register an account

    2. Add balance to your account

    3. Get your API key


    **Sandbox environment**


    🏖️ Try sandbox environment:

    - No balance required. - Use the API and see results in web dashboard. - Send fake SMS via Web or API to test your code before going live. Note: API keys and URLs for sandbox and production are different. ## API key


    All requests must include an API key in the `X-Api-Key` header. You can get your API key from https://platfone.com/app/api


    ## API base URL


    All requests must be made to the following URL:


    ```

    Production -> https://temp-number-api.com/api/v1

    Sandbox -> https://temp-number-api.com/test/api/v1

    ```


    ## Main API requests


    **Prices**


    - Get prices by service - Get a price list organized by service. - Get prices by country - Get a price list organized by country. - Get price for service in country - Get a price for specific service and country. **Numbers**


    You will get a phone number that can receive unlimited SMS messages for limited time from one specific service. If you want SMS from a different service, you must order a new number for that service. Alternatively, use the "other" service option to receive SMS from any service not listed in the Get services. - Get number - Get a number for a specific service and country. - Cancel number - Cancel a number. This number will no longer receive SMS messages. - Get numbers history - Get a list of numbers you have ordered. **SMS**


    - Get SMS - Get one-time code and full SMS message received by a number. - Request one more SMS - Request one more SMS message from the same number. **Catalog**


    - Get countries - Get a list of countries where mobile phone numbers are provided. - Get services - Get a list of services eligible for activation. **Balance**


    - Get balance - Get your balance. ## Usage flow


    1. Request number for specific service and country. In response you will get activation `id` and `phone`. 2. Ask service to send SMS to `phone`. 3. Poll the Platfone API using the activation `id` at 10-second intervals to receive SMS. Continue this process until the either `expire_at` timestamp is exceeded or `sms_status = smsReceived`. If the `sms_status` is `smsReceived`, you can use the code and message from the response and stop polling. If supported you can request one more SMS message from the same number, using retry activation endpoint. !image


    ## Rate limits


    There are three different types of rate limits you should be aware of:

    - minimum success rate

    - maximum active activations

    - API endpoints maximum requests per time period


    In the event of a block, you will receive a 429 error code, along with information on when your account will be unblocked. ### Minimum success rate

    To prevent the scanning of phone numbers, a minimum success rate for receiving SMS messages is required to be maintained. If your success rate falls below 7%, your account will be subjected to a 24-hour block. The success rate is calculated within a 24-hour window as follows:


    !image


    Note: The calculation of the success rate starts after the 10th number has been ordered. You have the option to unblock your account from within your dashboard 3 times in 24 hours. ### Maximum active activations


    To prevent abuse, the maximum number of active activations is limited to **20**. If you reach this limit, you will receive a 429 error code. You can cancel an active activation to free up space for a new one. If you need more than 20 active activations, please contact us.'
servers:
- url: https://temp-number-api.com/api/v1
security:
- apikey_auth: []
tags:
- name: Activation Report
  description: Activation report related operations.
paths:
  /activation/{activation_id}/report/reasons:
    servers:
    - url: https://temp-number-api.com/api/v1
    get:
      tags:
      - Activation Report
      summary: Get available report reasons for activation
      description: 'Returns a list of available report reasons IDs with name and evidence requirements for activation.

        Reasons list depends on current activation state.


        **Workflow**:

        1. **Get Available Report Reasons**: Before creating a report, you must first retrieve the available report reasons for the specific activation using the `getActivationReportReasons` endpoint.

        Along with the list of valid report reason IDs, you will also get if evidence is required.

        2. **Create Report**: Create a report for the same activation by passing one of the available reason IDs along with evidence, if required.


        Use IDs from response to create report for the same activation you got reasons for.


        **Full list of Report Reasons:**


        | ID | Reason name |

        |----|--------------------------|

        | 1 | SMS is not coming |

        | 2 | Wrong SMS received |

        | 3 | Service not accepting the number |

        | 4 | Number has been used before |

        | 5 | Blocked after activation |

        | 6 | SMS received too late |

        | 7 | Other reason |'
      operationId: getActivationReportReasons
      parameters:
      - $ref: '#/components/parameters/activation_id'
      responses:
        '200':
          $ref: '#/components/responses/ReportReasons'
        '400':
          $ref: '#/components/responses/400'
        '401':
          $ref: '#/components/responses/401'
        '404':
          $ref: '#/components/responses/404'
        '409':
          description: Can't report activation
          content:
            application/json:
              schema:
                oneOf:
                - $ref: '#/components/schemas/error409'
                - $ref: '#/components/schemas/error409ReportCreationDeadline'
        '429':
          $ref: '#/components/responses/429TooManyRequests'
        '500':
          $ref: '#/components/responses/500'
      x-codeSamples:
      - lang: cURL
        label: CLI
        source: 'curl -X GET "${server_base_path}/api/v1/activation/{activation_id}/report/reasons" \

          -H "Content-Type: application/json" \

          -H "x-api-key: YOUR_API_KEY_HERE"

          '
  /activation/{activation_id}/report:
    servers:
    - url: https://temp-number-api.com/api/v1
    post:
      tags:
      - Activation Report
      summary: Report activation
      description: 'This endpoint allows you to create a report for a specific activation.


        **Important**: _Only one report can be created per activation. Submitting invalid or incomplete data may result in the report being declined._


        **Declined Report Response Details**:


        If the report is not accepted, you will receive a response with a `decline_id`. Below are the possible reasons corresponding to each `decline_id`:


        | **Decline ID** | **Reason** |

        |----------------|---------------------------------|

        | 1 | Try another number |

        | 2 | Retry using the same number |


        **Workflow**:


        1. **Retrieve Available Report Reasons**: Before creating a report, you must first retrieve the available report reasons for the specific activation using the `getActivationReportReasons` endpoint.

        This will return a list of valid report reason IDs based on the current state of the activation, along with any evidence requirements.


        2. **Submit a Report**: Once you have obtained the list of valid report reasons, you can create a report by selecting an appropriate reason ID and including any required evidence.

        If required, the evidence parameter must be provided in `base64` format, following the guidelines outlined in the request body specification.


        Ensure that the reason ID and any accompanying evidence match the list returned by the `getActivationReportReasons` endpoint.'
      operationId: reportActivation
      parameters:
      - $ref: '#/components/parameters/activation_id'
      requestBody:
        content:
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/ActivationReportRequestBody'
      responses:
        '200':
          $ref: '#/components/responses/200Report'
        '400':
          $ref: '#/components/responses/400'
        '401':
          $ref: '#/components/responses/401'
        '403':
          $ref: '#/components/responses/403'
        '404':
          $ref: '#/components/responses/404'
        '409':
          description: Can't report activation
          content:
            application/json:
              schema:
                oneOf:
                - $ref: '#/components/schemas/error409'
                - $ref: '#/components/schemas/error409ReportCreationDeadline'
        '429':
          $ref: '#/components/responses/429TooManyRequests'
        '500':
          $ref: '#/components/responses/500'
      x-codeSamples:
      - lang: cURL
        label: CLI
        source: 'curl -X POST "${server_base_path}/api/v1/activation/${activation_id}/report" \

          -H "Content-Type: application/json" \

          -H "x-api-key: YOUR_API_KEY_HERE" \

          -d ''{"reason_id": 4, "message": "2FA enabled here"}''

          '
    get:
      tags:
      - Activation Report
      summary: Get report
      description: Return a report object by Activation Id
      operationId: getReport
      parameters:
      - $ref: '#/components/parameters/activation_id'
      responses:
        '200':
          $ref: '#/components/responses/Report'
        '401':
          $ref: '#/components/responses/401'
        '404':
          $ref: '#/components/responses/404'
        '429':
          $ref: '#/components/responses/429TooManyRequests'
        '500':
          $ref: '#/components/responses/500'
      x-codeSamples:
      - lang: cURL
        label: CLI
        source: 'curl -X GET "${server_base_path}/api/v1/activation/${activation_id}/report" \

          -H "Content-Type: application/json" \

          -H "x-api-key: YOUR_API_KEY_HERE"

          '
  /activation/reports:
    servers:
    - url: https://temp-number-api.com/api/v1
    get:
      tags:
      - Activation Report
      summary: Get reports
      description: Returns a list of reports with pagination
      operationId: getReports
      parameters:
      - $ref: '#/components/parameters/page'
      - $ref: '#/components/parameters/limit'
      responses:
        '200':
          $ref: '#/components/responses/Reports'
        '400':
          $ref: '#/components/responses/400'
        '401':
          $ref: '#/components/responses/401'
        '404':
          $ref: '#/components/responses/404'
        '429':
          $ref: '#/components/responses/429TooManyRequests'
        '500':
          $ref: '#/components/responses/500'
      x-codeSamples:
      - lang: cURL
        label: CLI
        source: 'curl -X GET "${server_base_path}/api/v1/activation/reports" \

          -H "Content-Type: application/json" \

          -H "x-api-key: YOUR_API_KEY_HERE"

          '
components:
  schemas:
    Activation:
      title: Activation
      type: object
      properties:
        activation_id:
          type: string
          example: 63f4d0dab040a865d80da08a
          description: A unique identifier for the activation. This ID is used to reference and manage specific activations throughout their lifecycle.
        phone:
          type: string
          example: '447975777666'
          description: The phone number associated with the activation, formatted in E.164 without the leading plus sign (e.g., 447975777666 for a UK number). This is the number to which SMS messages are sent.
        country_id:
          type: string
          example: uk
          description: Country ID, as returned by the `getCountries` operation. A country identifier (e.g., `uk` for the United Kingdom) representing the country in which the phone number is registered.
          pattern: ^[a-zA-Z0-9]+([-_]*[a-zA-Z0-9]+)*$
          minLength: 2
          maxLength: 9
        service_id:
          type: string
          example: 7eleven
          description: Service ID, as returned by `getServices` operation. The identifier of the service associated with the activation. This could represent different services, applications, platforms, etc. (e.g., `7eleven`).
        sms_status:
          type: string
          description: Represents the current state of the SMS delivery within the activation process.
          oneOf:
          - const: smsRequested
            description: The initial state when an SMS is requested but not yet received.
          - const: smsReceived
            description: The first SMS has been received.
          - const: retryRequested
            description: The user has requested another SMS.
          - const: retryReceived
            description: The user has received another SMS.
          example: smsRequested
        activation_status:
          type: string
          description: Represents the overall state of the activation.
          oneOf:
          - const: active
            description: The activation is currently active and can proceed.
          - const: finalized
            description: The user has confirmed the activation, and no further changes are possible.
          - const: expired
            description: The activation has expired based on the `expire_at` timestamp.
          - const: canceled
            description: The activation was canceled before any SMS was received.
          example: expired
        billing_status:
          type: string
          description: Indicates the billing state of the activation.
          oneOf:
          - const: reserved
            description: Funds are reserved from the user's available balance when the activation is created.
          - const: released
            description: No SMS was received, and reserved funds were returned to the available balance.
          - const: billed
            description: An SMS was received, and the reserved funds have been charged.
          - const: refunded
            description: A refund was issued after a user report, and the amount was returned to the available balance.
          example: billed
        report_status:
          description: Represents the status of report filed by the user regarding the activation (e.g., reporting a wrong SMS).
          oneOf:
          - type: string
            const: inReview
            description: The report is currently in review.
          - type: string
            const: declined
            description: The report was reviewed, and no refund was granted.
          - type: string
            const: approved
            description: The report was reviewed, and a refund was issued.
          - type: 'null'
            description: No report has been made.
          example: null
        sms_code:
          type:
          - string
          - 'null'
          example: '6363'
          description: The code received in the SMS message. This field is `null` if no SMS code was received.
        sms_text:
          type:
          - string
          - 'null'
          example: Your code is 6363
          description: The text content of the SMS message received. This field is `null` if no SMS message was received.
        price:
          type: integer
          minimum: 1
          example: 90
          description: The cost of the activation in USD cents. This amount is reserved from the user's available balance when the activation is created.
        expire_at:
          type: integer
          example: 1679061628
          description: A unix timestamp in seconds indicating when the activation expires. If the current time is past this timestamp, the activation should be considered expired independently of the `activation_status` field.
        updated_at:
          type: integer
          example: 1679061629
          description: A unix timestamp in seconds indicating the last time the activation was updated.
        created_at:
          type: integer
          example: 1679061001
          description: A unix timestamp in seconds indicating when the activation was created.
        is_retriable:
          type: boolean
          example: true
          description: Indicates whether the user can request another SMS. If `true`, the user is allowed to request a retry SMS.
        cancelable_after:
          type:
          - integer
          - 'null'
          example: null
          description: A unix timestamp in seconds indicating the time after which the activation may be canceled. If `null`, cancellation is not supported for this activation.
    error400:
      type: object
      title: error400
      x-model: ApiError400
      required:
      - errorMessage
      - errorName
      properties:
        errorMessage:
          type: string
          example: Invalid request params
          description: Error message
        errorName:
          type: string
          enum:
          - InvalidRequestParamsException
          example: InvalidRequestParamsException
    Reports:
      title: Reports
      type: object
      example:
        reports:
        - reason_id: 1
          reason_name: SMS is not coming
          message: Test message
          evidence_url: https://test-1.nyc3.digitaloceanspaces.com/reports/evidences/66b3163f708df00376fb91c6.png
          activation_state_snapshot: '{"activation_status":"active","sms_status":"smsRequested","billing_status":"reserved","sms_code":null,"sms_text":null,"updated_at":1725264364}'
          updated_at: 1679061001
          created_at: 1679061001
          activation:
            activation_id: 63f4d0dab040a865d80da08a
            phone: '447975777666'
            country_id: uk
            service_id: 7eleven
            sms_status: smsRequested
            activation_status: expired
            billing_status: billed
            report_status: null
            sms_code: '6363'
            sms_text: Your code is 6363
            price: 90
            expire_at: 1679061628
            updated_at: 1679061629
            created_at: 1679061001
            is_retriable: true
            cancelable_after: null
        page: 1
        limit: 10
        pages: 5
        total: 48
      properties:
        reports:
          type: array
          items:
            $ref: '#/components/schemas/Report'
        page:
          type: integer
          description: Selected page
          example: 1
        limit:
          type: integer
          description: Items limit per page
          example: 10
        pages:
          type: integer
          description: Total pages count
          example: 5
        total:
          type: integer
          description: Total records found
          example: 48
    error429TooManyRequests:
      type: object
      title: error429TooManyRequests
      required:
      - errorMessage
      - errorName
      properties:
        errorMessage:
          type: string
          example: Too Many Requests
          description: Too Many Requests
        errorName:
          type: string
          enum:
          - TooManyRequestsException
          example: TooManyRequestsException
    ActivationReportRequestBody:
      type: object
      title: Activation Report
      required:
      - reason_id
      properties:
        reason_id:
          type: integer
          minimum: 1
          example: 4
          description: ID of reason
        message:
          type: string
          example: Service activation is not possible because 2FA was previously enabled.
          description: Message with details about the report.
          maxLength: 1000
        evidence:
          type: string
          format: binary
          description: 'File upload for evidence. Acceptable file types: jpg, png, webp, zip, pdf, mp4.

            Maximum file size: 5MB.

            '
    Report:
      title: Report
      type: object
      properties:
        reason_id:
          type: integer
          minimum: 1
          example: 1
          description: Report reason Id
        reason_name:
          type: string
          example: SMS is not coming
          description: Report reason name
        message:
          type: string
          example: Test message
          description: Report detailed explanation
        evidence_url:
          type: string
          example: https://test-1.nyc3.digitaloceanspaces.com/reports/evidences/66b3163f708df00376fb91c6.png
          description: Report evidence URL
        activation_state_snapshot:
          type: string
          example: '{"activation_status":"active","sms_status":"smsRequested","billing_status":"reserved","sms_code":null,"sms_text":null,"updated_at":1725264364}'
          description: Activation state on report creating moment
        updated_at:
          type: integer
          example: 1679061001
          description: Unix timestamp in seconds of last report state change.
        created_at:
          type: integer
          example: 1679061001
          description: Unix timestamp in seconds of report creation.
        activation:
          $ref: '#/components/schemas/Activation'
    200Report:
      type: object
      title: CreateReportResponse
      properties:
        status:
          description: Create report response status
          type: string
          enum:
          - accepted
          - declined
          example: declined
        decline_id:
          description: "The Decline ID is a unique identifier representing the reason for declining a request. \nIf the request status is `accepted`, the Decline ID will be `null`.\n"
          type:
          - integer
          - 'null'
          example: 1
    error409:
      type: object
      title: ResourceBadStateException
      required:
      - errorMessage
      - errorName
      properties:
        errorMessage:
          type: string
          example: Resource is in a bad state
          description: Resource is in a bad state
        errorName:
          type: string
          enum:
          - ResourceBadStateException
          example: ResourceBadStateException
    error404:
      type: object
      title: error404
      x-model: ApiError404
      required:
      - errorMessage
      - errorName
      properties:
        errorName:
          description: Error name
          type: string
          enum:
          - ResourceNotFoundException
          example: ResourceNotFoundException
        errorMessage:
          description: Error message
          type: string
          example: Resource not found
    error409ReportCreationDeadline:
      type: object
      title: ReportCreationDeadlinePassed
      required:
      - errorMessage
      - errorName
      properties:
        errorMessage:
          type: string
          example: Report creation deadline has passed (60 minutes limit after order creation).
          description: Report creation deadline has passed (60 minutes limit after order creation).
        errorName:
          type: string
          enum:
          - ReportCreationDeadlinePassed
          example: ReportCreationDeadlinePassed
    ReportReasons:
      type: array
      title: Array of Report Reasons
      items:
        type: object
        properties:
          reason_id:
            type: integer
            description: Report reason Id
            minimum: 1
          reason_name:
            type: string
            description: Report reason name
            example: Wrong SMS received
          evidence_required:
            type: boolean
            description: Indicates if evidence is required for the report
      example:
      - reason_id: 1
        reason_name: SMS is not coming
        evidence_required: true
      - reason_id: 2
        reason_name: Wrong SMS received
        evidence_required: false
  responses:
    429TooManyRequests:
      description: Too Many Requests
      headers:
        X-RateLimit-Limit:
          $ref: '#/components/headers/X-RateLimit-Limit'
        X-RateLimit-Remaining:
          $ref: '#/components/headers/X-RateLimit-Remaining'
        X-RateLimit-Reset:
          $ref: '#/components/headers/X-RateLimit-Reset'
        Retry-After:
          $ref: '#/components/headers/Retry-After'
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/error429TooManyRequests'
    Reports:
      description: Reports
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Reports'
    Report:
      description: Report
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Report'
    '403':
      description: User account on hold status
      content:
        application/json:
          schema:
            type: object
            title: error403
            required:
            - errorMessage
            - errorName
            properties:
              errorName:
                description: Error name
                type: string
                enum:
                - AccountOnHoldException
                example: AccountOnHoldException
              errorMessage:
                description: Error message
                type: string
                example: Account on hold
    '500':
      description: Unexpected Error
      content:
        application/json:
          schema:
            type: object
            title: Unexpected Error
            x-model: ApiUnexpectedError
            required:
            - errorMessage
            - errorName
            properties:
              errorMessage:
                type: string
                example: Unexpected Error Occurred
                description: A generic error message indicating an unexpected problem was encountered.
              errorName:
                type: string
                enum:
                - UnexpectedErrorException
                example: UnexpectedErrorException
    '401':
      description: Unauthorized to access this resource
      content:
        application/json:
          schema:
            type: object
            title: error401
            required:
            - errorMessage
            - errorName
            properties:
              errorName:
                description: Error name
                type: string
                enum:
                - UnauthorizedException
                example: UnauthorizedException
              errorMessage:
                description: Error message
                type: string
                example: Unauthorized to access this resource
    200Report:
      description: New Report response
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/200Report'
          examples:
            reportAccepted:
              $ref: '#/components/examples/reportAccepted'
            reportDeclined:
              $ref: '#/components/examples/reportDeclined'
    '404':
      description: Resource not found
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/error404'
    ReportReasons:
      description: List of report reasons with evidence requirements
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ReportReasons'
    '400':
      description: Invalid request parameters
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/error400'
  parameters:
    page:
      in: query
      name: page
      required: false
      description: Selected page number
      schema:
        type: integer
        example: 2
        description: Selected page number
        default: 1
    activation_id:
      name: activation_id
      in: path
      required: true
      description: Activation id
      schema:
        type: string
        example: 63f4d0dab040a865d80da08a
    limit:
      in: query
      name: limit
      required: false
      description: Items limit per page
      schema:
        type: integer
        example: 10
        description: Items limit per page
        default: 10
        minimum: 1
        maximum: 100
  headers:
    X-RateLimit-Reset:
      schema:
        type: integer
        example: 1706864028
        description: Unix timestamp in seconds when the rate limit will reset.
    X-RateLimit-Remaining:
      schema:
        type: integer
        example: 0
        description: The number of requests remaining in the current rate limit window.
    Retry-After:
      schema:
        type: integer
        example: 3600
        description: Number of seconds to wait before retrying the request.
    X-RateLimit-Limit:
      schema:
        type: integer
        example: 50
        description: Maximum allowed number of requests.
  examples:
    reportDeclined:
      summary: Report declined
      value:
        status: declined
        decline_id: 1
    reportAccepted:
      summary: Report accepted
      value:
        status: accepted
        decline_id: null
  securitySchemes:
    apikey_auth:
      description: 'Authenticate all requests by passing API key in `X-API-Key` header.

        '
      type: apiKey
      in: header
      name: X-API-Key