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.4.tar.gz (9.2 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.4-py3-none-any.whl (9.5 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: appwire-0.1.4.tar.gz
  • Upload date:
  • Size: 9.2 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.4.tar.gz
Algorithm Hash digest
SHA256 1352d62cf9ac57b689dc90796f2b066500930f4a010f51dc8c99ed67e399f277
MD5 a3df9a61476bb2ea6655071cf231f637
BLAKE2b-256 20d2d2ec60d8f749200f1b3906d9d95e3c3f0af3989e4c89f45dceea7e512a1f

See more details on using hashes here.

File details

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

File metadata

  • Download URL: appwire-0.1.4-py3-none-any.whl
  • Upload date:
  • Size: 9.5 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.4-py3-none-any.whl
Algorithm Hash digest
SHA256 637ef08aff126e077a97c545f295a584bc510bcc5bb948a6d6ec00c29a74a266
MD5 3069b7f481ea638a5f46ef0ec2f3f5dc
BLAKE2b-256 0b0fd27f0d5dc254b22ac124244e88ba2a4d05577861af33a69d63243b71b2ff

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