API Usage Documentation
A
Written by Abed
Updated over a week ago
  • All of the API routes require headers with the token key.

  • The token key should be included in the Authorization HTTP header.

  • The key should be prefixed by the literal "Token" string, whitespace separating the two strings.

Dashboard API:

  1. Enable Critical Mode (Proxidize Business Only)
    Critical Mode removes the dashboard's admin name, Live chat button, and key device identifiers to ensure all security measures are met.

    GET api/crit_mode
    Parameters:
    a. toggle: Accepts the keywords enable or disable only.
    b. key: The last 5 characters from the Proxidize license key.
    Examples:
    Enable Critical Mode: http://example.com/api/crit_mode?toggle=enable&key=Ffx!r
    Disable Critical Mode:
    http://example.com/api/crit_mode?toggle=disable&key=Ffx!r

    Response: Successfully enabled/disabled critical mode

    Errors:
    1. Invalid toggle value or incorrect key:
    "ERROR: Invalid request"

    2. API Error:
    "There was an error handling your request"

Modems' Operations API

  1. Retrieve Modems' Information

    GET /api/getinfo
    Example:http://localhost/api/getinfo
    Response: JSON Object with all modem information.

  2. Rebooting a Specific Modem

    GET /api/reboot_modem?index=MODEM_INDEX

    *Reboots modem with index=1*

    Response: Status message


Rotate API:

  1. Rotate All Modems

    GET /api/rotate
    Example
    : http://localhost/api/rotate

    Response: Status message

  2. Rotate a Specific Modem

    The authorization token should be included in the header.

    GET /api/change_ip?index=MODEM_INDEX
    *Rotates modem with index = 1*
    Example
    : http://localhost/api/change_ip?index=1
    Response: Status message

  3. Rotate Specific Modem With Rotation Token

    This option should be enabled from the Proxidize web interface by setting a custom token.

    GET /api/change_ip?index=MODEM_INDEX&rtoken= ROTATION_API_TOKEN
    *Rotates modem with index = 1 authenticated by the custom set rotation token*
    Example
    : http://localhost/api/change_ip?index=1&rtoken=johndoe123

    Response: Status message


  4. Rotate a Shared Proxy

    GET /api/sproxy/rotate

    Parameters:

    • proxy_port: is the shared proxy's port.

    • proxy_pass: is the password of the proxy.

    Example: http://localhost/api/sproxy/rotate?proxy_port=21035&proxy_pass=very_secure_password142

    Response: Status message

  5. Set Custom Rotation Interval

    GET /api/custom_rot?index=DONGLE_INDEX&day=VALUE&hour=VALUE&min=VALUE

    1. Index (required): can be set to a specific modem index or the keyword "all" to set the same rotation value for all plugged modems.

    2. Interval Parameters: Only use one of them at a time
      - Day: rotation value in days minimum is 0 maximum is 29
      - Hour:
      rotation value in hours minimum is 0 maximum is 22
      - Min:
      rotation value in minutes minimum is 0 maximum is 58

      Example: Set the rotation value for dongle with index 5 to rotate every 2 days

      Example 2: Set the rotation value for all dongles to rotate every 8 hours:

      http://localhost/api/custom_rot?index=all&hour=8
      Response: Status message

SMS API

  1. View SMS for a Specific ModemGET /api/sms/get?index=MODEM_INDEX

    *Returns all the received SMS messages for modem with index 1*

    Response: JSON Object containing SMS messages with their details (date, sender's phone, message and content)

  2. Send SMS From a Modem to Any Phone Number

    GET /api/sms/send?index=MODEM_INDEX&phone=PHONE&message=MESSAGE

    Response: Status message


  3. Delete a single SMS message

    GET api/delete_sms?sms_id=SMS_ID&modem_index=Modem_index

    Response: Delete SMS requested for message id XXX on modem index XXX

    ERROR: There was an error deleting SMS message(s).

  4. Delete Multiple SMS Messages: (Separate SMS IDs with a comma)

    Note: You can get the SMS IDs from the "Message ID" column on your SMS page

    GET api/delete_sms?sms_id=SMS_ID1,SMS_ID2,SMS_ID3&modem_index=Modem_index

    Response: Successfully deleted all SMS messages.

    ERROR: There was an error deleting sms message(s).


  5. Get SMS by modem's phone number: (Proxidize Business only)
    Parameters: Modem's phone number

    GET api/sms/fetch_sms_phone_number
    Example:
    https://example.com/api/sms/fetch_sms_phone_number?phone_number=19628522851
    Responses: JSON response with SMS from the provided number.

    {
        "phone_number": "1234",
        "modem_index": XX,
        "message": "SMS messages fetched successfully.",
        "sms_messages": [
            {
                "date": "04-02-2023 04:21:54",	
                "phone": [
                    "XXXXXXXXX"
                ],
                "content": "Example API message",
                "sms_id": 51251,
                "sms_contact_id": 1,
                "timestamp": 1675484514.0
            }
        ]
    }


    Errors:
    1. Phone number is incorrect/not found

    {
          "phone_number": "1234",
    	"modem_index": XX,
    	"message": "No modem was found with the specificed phone number: XXXXX",
    	"sms_messages": []
    }


    2. API Error - Incorrect syntax or authorization:

    {
    	"phone_number": "1234",
    	"modem_index": XX,
    	"message": "There was an error fetching SMS messages.",
    	"sms_messages": {
    		"phone": "",
    		"content": "",
    		"date": "",
    		"sms_id": ""
    	}
    }

Shared Proxies API

  1. Retrieve All Shared Proxies Information

    GET /api/shared_proxy/

    Example: http://localhost/api/shared_proxy

    Response: JSON Object containing a shared proxy


  2. Add shared proxy:

    GET /api/shared_proxy/add?

    Parameters:

    • index: The modem index

    • proxy_type: "HTTP" or "SOCKS."

    • auth_type: "UserAuth" or "IPAuth".

      • If UserAuth was selected then you will have to fill in the following parameters:

        • user: authentication username.

        • password: authentication password.

      • If IPAuth was selected:

        • IP: allowed IP/s. Multiple IP addresses can be inserted and separated with a comma (,).

    • Optional parameters:

      • Comment: comments for the proxy.

      • Port: Port to use or leave empty for a random port.

      • bandwidth: bandwidth(speed) limit in mpbs.

      • whitelist: Allow proxy to visit these websites only (separate multiple values by a comma (,))

      • blacklist: Deny proxy from visiting these websites (separate multiple values by a comma (,))

      • traffic_limit_amount: Limit the proxy usage value in MB.

      • traffic_limit_duration: Duration of the limit Values should be one of (day, week,month)
        traffic_limit_amount and traffic_limit_duration should be filled both if you want to use limit features.

      • expire_date: expire date for the proxy in the format (%Y-%m-%d)

    Example:

    • Creating shared proxy with UserAuth authentication, HTTP proxy type using a modem with index=3:

    • Creating shared proxy with IP authentication, socks proxy type using a modem with index = 1

    • Creating shared proxy with multiple IP authentication, HTTP proxy type using a modem with index=1, and a comment:

    Response: JSON Object containing a shared proxy


  3. Delete All Shared Proxies and Clear Config Files

    GET /api/shared_proxy/delete

    Example: http://localhost/api/shared_proxy/delete

    Response: Status message

  4. Delete Specific Shared Proxy From Database

    GET /api/shared_proxy/delete?port=PORT

    Example: http://localhost/api/shared_proxy/delete?port=35501

    Response: Status message


Error Messages:

There was an error handling your request.

Reasons:

  1. Your request is not in the correct syntax.

  2. The modem is unreachable or offline.

Did this answer your question?