Skip to main content

Build and push Taps to AppWire — reverse-engineered mobile app API wrappers for workflow automation

Project description

AppWire SDK

Build and push Taps to AppWire — reverse-engineered mobile app API wrappers for workflow automation.

A Tap wraps a mobile app's internal API into reusable actions. Each action maps to an HTTP endpoint with headers, params, and response mappings.

Install

pip install appwire

Quick Start

from appwire import Tap

tap = Tap(
    name="TikTok Profile Scraper",
    app="TikTok",
    version="1.0.0",
    description="Fetch profile data from TikTok's internal API",
)

@tap.action(
    name="Get Profile",
    method="GET",
    endpoint="https://api.tiktok.com/api/user/detail",
)
def get_profile(username: str):
    return {
        "params": {"uniqueId": username},
        "headers": {
            "User-Agent": "TikTok/26.1.3",
        },
    }

CLI

appwire login              # Authenticate
appwire init my-tap        # Scaffold a new Tap project
appwire validate           # Validate before pushing
appwire push               # Push to AppWire
appwire list               # List your published Taps

Tap Manifest

Every Tap has a tap.yaml manifest:

name: "TikTok Profile Scraper"
description: "Fetch profile data from TikTok"
version: "1.0.0"
app: "TikTok"
icon: "./icon.png"
entry: "main.py"

Credentials

Reference user credentials with {{credential:name}} placeholders:

tap = Tap(
    name="My Tap",
    app="MyApp",
    version="1.0.0",
    credentials=[
        {"name": "session_id", "label": "Session ID", "required": True},
    ],
)

@tap.action(name="Get Data", method="GET", endpoint="/api/data")
def get_data():
    return {
        "headers": {
            "Cookie": "sid={{credential:session_id}}",
        },
    }

Response Mapping

Extract fields from API responses using JSONPath:

@tap.action(
    name="Get Profile",
    method="GET",
    endpoint="/api/user/detail",
    response_mapping={
        "username": "$.userInfo.user.uniqueId",
        "followers": "$.userInfo.stats.followerCount",
    },
)
def get_profile(username: str):
    return {"params": {"uniqueId": username}}

License

MIT

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

appwire-0.1.3.tar.gz (9.0 kB view details)

Uploaded Source

Built Distribution

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

appwire-0.1.3-py3-none-any.whl (9.3 kB view details)

Uploaded Python 3

File details

Details for the file appwire-0.1.3.tar.gz.

File metadata

  • Download URL: appwire-0.1.3.tar.gz
  • Upload date:
  • Size: 9.0 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.11.14

File hashes

Hashes for appwire-0.1.3.tar.gz
Algorithm Hash digest
SHA256 c54079b14a584c4bb6019efbf91dfdaf0f7fdbe9ee9098cfbf1f81a5c8ff415b
MD5 b57b43edd54af0075e0f11433fe233f0
BLAKE2b-256 ff99f33f029fe1392dd827fbc9e9d335e19f5f8a327b7dccf4a4840925cb1aa5

See more details on using hashes here.

File details

Details for the file appwire-0.1.3-py3-none-any.whl.

File metadata

  • Download URL: appwire-0.1.3-py3-none-any.whl
  • Upload date:
  • Size: 9.3 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.11.14

File hashes

Hashes for appwire-0.1.3-py3-none-any.whl
Algorithm Hash digest
SHA256 f77b5f6f1cd33598eefb6d5bf20096403fe29cf062194b9d33a73bab2050986e
MD5 9c79bb866b72910bc27e8af4dea8f349
BLAKE2b-256 cd9aef3342c83fa7bd983c45666dcd159b8be178d62ee32e862ed688e705c3a4

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