Skip to main content

Robot Platform API SDK

Project description

Robot Platform SDK (Python)

Python SDK for Robot Platform with:

  • develop-app authentication (app_id/app_secret),
  • sync + async clients,
  • auto token refresh,
  • robot operations and login/hardening task flow.

Installation

pip install robot-wrapper-sdk

Configuration

Set environment variables (recommended):

  • ROBOT_PLATFORM_BASE_URL
  • ROBOT_PLATFORM_APP_ID
  • ROBOT_PLATFORM_APP_SECRET
  • ROBOT_PLATFORM_PROXY_URL (optional)

Or pass values directly when creating the module.


Quick Start (Sync)

from robot_sdk import RobotPlatformModule, RobotStatus, RobotAuthStatus

sdk = RobotPlatformModule(
    base_url="http://localhost:8085",
    app_id="your_app_id",
    app_secret="your_app_secret",
    # proxy_url="socks5h://192.168.3.100:1080",  # optional
)

# Read robot
robot = sdk.get_robot("2047631542552334336")
print(robot.platform if robot else "not found")

# Update lifecycle status (prefer enum)
sdk.update_status("2047631542552334336", RobotStatus.LIVE)

# Acquire login tasks (optionally filter by platform)
login_tasks = sdk.acquire_need_login(
    limit=20,
    lock_minutes=30,
    platforms=["facebook", "instagram"],
)

# Unlock login task robots when worker must release locks
sdk.unlock_login_tasks(["2047631542552334336"])

# Update auth status after worker result (prefer enum)
sdk.update_auth_status("2047631542552334336", RobotAuthStatus.AUTHORIZED)
# allowed values: authorized | unauthorized | logged_out

# Acquire hardening tasks (optionally filter by platform)
hardening_tasks = sdk.acquire_unhardened(
    limit=20,
    lock_minutes=30,
    min_age_days=0,
    platforms=["facebook", "instagram"],
)

# Unlock hardening task robots when worker must release locks
sdk.unlock_hardening_tasks(["2047631542552334336"])

# Update hardening status after worker result
sdk.update_security_hardened("2047631542552334336", True)

# Update metadata (partial patch)
sdk.update_metadata("2047631542552334336", {
    "country_code": "VN",
    "note": "updated by sdk"
})

sdk.close()

Quick Start (Async)

import asyncio
from robot_sdk import AsyncRobotPlatformModule, RobotAuthStatus

async def main():
    sdk = AsyncRobotPlatformModule(
        base_url="http://localhost:8085",
        app_id="your_app_id",
        app_secret="your_app_secret",
    )

    robot = await sdk.get_robot("2047631542552334336")
    print(robot.platform if robot else "not found")

    await sdk.update_auth_status("2047631542552334336", RobotAuthStatus.AUTHORIZED)
    await sdk.update_security_hardened("2047631542552334336", True)
    await sdk.update_metadata("2047631542552334336", {
        "country_code": "VN",
        "note": "updated by async sdk"
    })

    await sdk.close()

asyncio.run(main())

Response Shape (Placeholder)

Acquire endpoints return:

{
  "status": "success",
  "code": 200,
  "message": "OK",
  "data": [
    {
      "id": "2047631542552334336",
      "username": "example_user_1",
      "platform": "facebook",
      "status": "live",
      "auth_status": "unauthorized",
      "metadata": {
        "security_hardened": false
      }
    }
  ]
}

Update endpoints return:

{
  "status": "success",
  "code": 200,
  "message": "OK",
  "data": null
}

Main API

RobotPlatformModule (sync)

  • list_robots(platform=None, status=None, auth_status=None, project_id=None, page=1, limit=20)
  • get_robot(robot_id)
  • delete_robot(robot_id)
  • get_secrets(robot_id)
  • update_status(robot_id, status)
  • acquire_need_login(limit=20, lock_minutes=30, platforms=None)
  • acquire_unhardened(limit=20, lock_minutes=30, min_age_days=0, platforms=None)
  • unlock_login_tasks(robot_ids)
  • unlock_hardening_tasks(robot_ids)
  • update_auth_status(robot_id, auth_status)
  • update_security_hardened(robot_id, security_hardened)
  • update_metadata(robot_id, metadata)
  • close()

AsyncRobotPlatformModule (async)

Async equivalents of all methods above, plus await close().


Documentation


Build & Publish (Maintainers)

make venv
make install
make build
make publish

Requires valid PyPI credentials (Twine).

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

robot_wrapper_sdk-0.2.16.tar.gz (14.6 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

robot_wrapper_sdk-0.2.16-py3-none-any.whl (16.7 kB view details)

Uploaded Python 3

File details

Details for the file robot_wrapper_sdk-0.2.16.tar.gz.

File metadata

  • Download URL: robot_wrapper_sdk-0.2.16.tar.gz
  • Upload date:
  • Size: 14.6 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.14.3

File hashes

Hashes for robot_wrapper_sdk-0.2.16.tar.gz
Algorithm Hash digest
SHA256 3f5217747aab184ae31469065f6fbe48738e0ed1bf378849aa75b7e4697a95e1
MD5 d3f087df994d2ad6313790cce4934675
BLAKE2b-256 c787d3730a2669eff3c310a5a05655015d5c559fcfe3147010d72dd804c76d2f

See more details on using hashes here.

File details

Details for the file robot_wrapper_sdk-0.2.16-py3-none-any.whl.

File metadata

File hashes

Hashes for robot_wrapper_sdk-0.2.16-py3-none-any.whl
Algorithm Hash digest
SHA256 ca9cf7ab37306ab00168bf7b5d36a9fef3003bd38f4552696895d54d9a4f59f0
MD5 1f8cbcfafa2b0e4a0a867b6910f75f04
BLAKE2b-256 4de45fdc73e9f9383debcf5d801b016391e7a08f4b64df76f009558a0ef48e8d

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page