MartyRun docs
MartyRun automates TikTok posting on real Android phones you own and operate. Connect your phones to your account, link a TikTok handle to each device, upload your videos, hit run — MartyRun handles the warmup, posting cadence and crash recovery.
Quickstart
From a fresh sign-up to your first post in about 5 minutes:
-
Create your account
Sign up at martyrun.uk/signup with your email and a password.
-
Pick a plan and pay
From your dashboard or the landing page, choose Trial / Pro / Max. You pay in crypto (USDC on Solana or Ethereum, or BTC) via NOWPayments. The license is auto-activated as soon as the payment confirms.
-
Download the Portal APK
From your dashboard's Download APK tab, install the APK on every Android phone you'll use.
-
Sign the phone into your account
Open the Portal app on the phone, paste the same email + password you used to sign up. The phone shows up live in your dashboard.
-
Link a TikTok account and upload videos
In the dashboard, pair a TikTok handle with the device, upload videos, and hit Start. Warmup runs first, then posting begins.
Install the two APKs
Every Android phone you use with MartyRun needs two APKs: TikTok pinned at 43.9.3, and the MartyRun Portal. Install them in this order — Portal refuses to run if TikTok isn't present at the correct version.
Requirements
- Android 9 or later — tested daily on Samsung Galaxy S20 and Note 20. S21/S22/S25 also work.
- Wi-Fi connection — no USB cable needed.
- The phone unlocked — Portal needs to be able to launch TikTok.
- "Install unknown apps" allowed for your file manager or browser.
① TikTok 43.9.3 Required
MartyRun's UI selectors are tuned for TikTok 43.9.3 exactly. Newer versions silently change layouts and break warmup / posting, so we host the exact build and Portal refuses to run on any other version.
-
Uninstall the current TikTok (if newer)
Android refuses to downgrade in place. If TikTok is already installed in a newer version, long-press its icon → App info → Uninstall. Your account stays safe (it's tied to your login, not the local install).
-
Download TikTok 43.9.3
On the phone's browser, open Dashboard → Download APK and tap Download TikTok APK on the amber card. Or get it directly:
/download/tiktok(≈350 MB). -
Install and sign in to TikTok
Open the downloaded APK, allow installs from unknown sources if prompted, then sign in with the TikTok account you'll automate on this device.
② MartyRun Portal Required
The Portal app is what connects each phone to your MartyRun dashboard. It runs in the background, opens TikTok when there's a task, and reports back live.
-
Download MartyRun Portal
Same dashboard page: Dashboard → Download APK, tap Download Portal APK on the blue card. Or direct:
/download/apk. -
Install
Open the downloaded file. Allow installs from unknown sources if prompted. The Portal icon appears on the home screen.
-
Sign in
Open Portal and enter the same email + password you signed up with on martyrun.uk. The phone instantly appears in your Devices tab.
Devices
Each Android phone running the Portal APK appears in your dashboard's Devices tab. From there you can:
- See whether the phone is online, idle or running a task
- View a live screencap of what's happening on the phone
- Rename the device (e.g.
S20 — 1,Note 20 — Family) - Link or unlink a TikTok account
- Start, pause or stop the warmup + posting loop
Device limits per plan
| Plan | Devices | Accounts / device |
|---|---|---|
| Trial | 1 | 5 |
| Pro | 1 – 200 (slider) | 5 |
| Max | Unlimited | Unlimited (TikTok caps at 8) |
TikTok accounts
To post on behalf of a TikTok account, you first sign that account into the TikTok app on the device once, manually. From then on, MartyRun reuses that signed-in session.
How to add an account to a device
- Open the TikTok app on the phone and sign in normally with the account.
- In your MartyRun dashboard, open Accounts, click + Add account, pick the device + the TikTok handle.
- Repeat for each account you want active on that device (up to the plan cap).
Warmup & posting
Each linked account runs a loop: a brief warmup, then a post, then a warmup, then a post, and so on, with randomised pauses in between.
Warmup
A warmup is the account behaving like a real user before posting:
- Scroll the For You feed for a randomised duration
- Watch full videos before scrolling away
- Like 1–3 videos naturally (not too many)
- Occasionally browse a hashtag or a profile
Default warmup length is 1–3 minutes per cycle, configurable from Tasks.
Posting
After warmup, the next queued video for that account is posted with its caption + hashtags. Sound, description, cover frame are taken from the video metadata you provided at upload time.
Throughput in production:
- 100 – 200 posts / day / device is realistic with a 5-account rotation.
- The exact rate depends on your warmup config and how often TikTok pops modals.
Upload videos
Videos are uploaded from your dashboard and stored in your private storage namespace. Each device pulls its own queue from there.
Supported formats
- Container: MP4 (H.264 + AAC). Other formats are auto-converted on upload.
- Duration: 3 – 180 seconds.
- Aspect ratio: 9:16 vertical recommended (1080×1920).
- Size: up to 200 MB per video.
Captions & hashtags
When uploading, you can attach a caption template like:
# Example caption template
{title} 💪
.
.
#fyp #foryou #viral {tags}
MartyRun substitutes {title} and {tags} per-video at posting time.
Warmup stats
The Warmup stats tab shows what each device did each day: posts published, warmup sessions completed, likes given, accounts switched. Use it to verify the bot is operating like a human would.
Counters reset at midnight UTC by default.
Billing & subscription
MartyRun is subscription-based. You can change plan, cancel, or buy a one-shot trial directly from Dashboard → Subscription.
Payment methods
Crypto only, processed by NOWPayments:
- USDC on Solana — fastest, lowest fees
- USDC on Ethereum (ERC-20)
- BTC
Other coins are accepted on request — email [email protected].
Renewal
Monthly subscriptions need to be renewed manually for now — you'll receive a reminder email 7, 3 and 1 days before expiry. Annual plans (-20% vs monthly) only need to be renewed once a year.
Refunds
Crypto payments are non-reversible. If MartyRun was genuinely broken during your paid period, email support and we'll work it out in good faith.
Licenses
Each paid plan issues a license key like MR-XXXX-XXXX-XXXX-XXXX. You don't normally need to copy it — when the Portal APK signs into your account, the license is fetched automatically.
You can view your active license from Dashboard → Subscription.
One account, multiple devices
One MartyRun account can run as many devices as your plan allows. All phones sign in with the same email + password.
Troubleshooting
The phone doesn't appear in the dashboard
- Check Wi-Fi on the phone.
- Make sure the Portal app is open in the foreground or running in the background — Android may have killed it for power saving.
- In Android settings → Apps → Portal → Battery → set Unrestricted.
Posts aren't going through
- Check that the TikTok app is signed in with the right handle on that phone.
- Make sure the account isn't shadowbanned or temporarily restricted (TikTok may silently throttle you).
- Look at the live logs in the dashboard for the exact failure reason.
Warmup runs but never posts
Your video queue is empty. Upload videos for that account.
API reference
MartyRun exposes a small HTTP API for programmatic access. All endpoints require your _session cookie (sign in via /login) or an API token (admin only).
Base URL
https://martyrun.uk/api
Endpoints (client-scoped)
| Method | Path | Description |
|---|---|---|
GET | /auth/me | Currently signed-in user |
GET | /me/subscription | Active license, devices used, payment history |
POST | /me/change-password | Change your password |
GET | /me/data-export | GDPR data export (JSON) |
POST | /me/delete-account | Delete your account |
POST | /checkout/create-invoice | Start a NOWPayments invoice |
Example: get your current subscription
# curl
curl 'https://martyrun.uk/api/me/subscription' \
-H 'Cookie: _session=YOUR_COOKIE'
Returns:
{
"ok": true,
"user": { "id": "...", "email": "[email protected]" },
"license": {
"plan_name": "Pro · 3 devices · Monthly",
"max_devices": 3,
"days_left": 21
},
"devices_used": 2,
"accounts_used": 6
}
Changelog
1.5.0 — 2026-05-24
- Commercial release: subscription tiers (Trial / Pro / Max), crypto checkout, license email delivery
- Customer dashboard with Subscription & Account Settings tabs
- Admin Customers panel
- Docs rewritten from scratch
1.4.x
- WebSocket reverse-connection from APK (no more USB cable required)
- Multi-tenant database schema
- Resend transactional email integration
- GDPR-compliant data export & deletion
1.3.x
- Warmup stats per device per day
- Live device screencap in the dashboard
- Auto-recovery for crashed sessions