⚡ REST API + MCP

OAISYS API
Instagram & Reddit Automation

Automate Instagram and Reddit actions, scrape engagement data, and connect Claude directly to your accounts — all through a single authenticated API.

7
Instagram endpoints
4
Reddit endpoints
22
MCP tools
📸 Instagram — Follow, Comment, DM, Post, Scrape
🤖 Reddit — Post, Reply, Scrape, Profile
🔑
Real Mobile Session
Uses your iPhone IGT:2 Bearer token — no app passwords
🔌
MCP Compatible
Connect Claude Code to all tools in one command
Multi-threaded
Bulk actions across multiple accounts in parallel
🛡️
x-api-key Auth
Simple header-based auth, no OAuth flow needed

🚀 Quick Start

Up and running in under a minute

1

Get your API key

Log in to OAISYS → Account Settings → API Access. Copy your key.

Set as environment variable
export OAISYS_API_KEY="your-key-here"
2

List your accounts

Confirm your accounts are connected and get their IDs for action endpoints.

curl https://oaisyscloud.com/v1/accounts \
  -H "x-api-key: $OAISYS_API_KEY"
3

Run your first action

Use the account ID from step 2 to follow an Instagram user.

curl https://oaisyscloud.com/v1/instagram/follow \
  -H "x-api-key: $OAISYS_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"account_ids":[2],"target_usernames":["username"]}'

🔑 Authentication

All endpoints require an API key in the request header

Pass your OAISYS API key as the x-api-key header on every request. Keys are found in Account Settings after login. Never expose keys in client-side code.

curl https://oaisyscloud.com/v1/accounts \
  -H "x-api-key: YOUR_OAISYS_API_KEY"
API keys are account-scoped. Each key has access only to accounts owned by that OAISYS user.

🔌 MCP Setup — Claude Integration

Connect Claude Code to all OAISYS tools in one command

OAISYS exposes a hosted MCP endpoint at https://oaisyscloud.com/mcp. All 22 tools — Instagram actions, Instagram scraping, Reddit posting, account management — are available immediately after adding the server.

Add to Claude Code
export OAISYS_API_KEY="your-key"
claude mcp add --transport http --scope user \
  --header "x-api-key: $OAISYS_API_KEY" \
  oaisys https://oaisyscloud.com/mcp
Once added, Claude can follow users, post content, scrape commenters, send DMs, and more — just by asking in plain English.

Available MCP tools
ToolPlatformWhat it does
oaisys_instagram_followInstagramFollow one or more users
oaisys_instagram_commentInstagramComment on a post
oaisys_instagram_dmInstagramSend direct messages
oaisys_instagram_postInstagramCreate a feed post
oaisys_instagram_scrape_commentsInstagramScrape post commenters
oaisys_instagram_scrape_likersInstagramScrape post likers
oaisys_instagram_scrape_profileInstagramScrape a user profile
oaisys_reddit_postRedditCreate a Reddit post
oaisys_reddit_replyRedditReply to a post or comment
oaisys_scrape_userRedditScrape a Reddit profile
oaisys_scrape_subredditRedditScrape subreddit posts
oaisys_list_accountsAccountList connected accounts
oaisys_get_usageAccountCheck credit balance
oaisys_connectAccountWorkspace context snapshot

📸 Instagram Endpoints

Automate Instagram actions and scrape engagement data using your connected iOS session

All Instagram endpoints use the Bearer token captured from your iPhone via the OAISYS session tool. Actions run as your real account — no automation flags or third-party credentials required.

POST /v1/instagram/follow Follow one or more Instagram users

Follows the specified usernames from each selected account. Supports bulk targets across multiple accounts.

ParameterTypeDescription
account_idsreqarrayAccount IDs to act from (get from /v1/accounts)
target_usernamesreqarrayInstagram usernames to follow (without @)
delay_secondsnumberSeconds between follows (default 1)
Request
curl https://oaisyscloud.com/v1/instagram/follow \
  -H "x-api-key: $OAISYS_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
  "account_ids": [2],
  "target_usernames": ["speedy_devv", "username2"]
}'
Response
{ "success": true, "message": "Started for 1 accounts and 2 targets" }
POST /v1/instagram/comment Post a comment on an Instagram post

Posts a comment on the specified Instagram post URL from each selected account.

ParameterTypeDescription
account_idsreqarrayAccount IDs to comment from
post_urlreqstringFull Instagram post URL (https://www.instagram.com/p/CODE/)
comment_textreqstringText of the comment
Request
curl https://oaisyscloud.com/v1/instagram/comment \
  -H "x-api-key: $OAISYS_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
  "account_ids": [2],
  "post_url": "https://www.instagram.com/p/DYBuHJcgOO1/",
  "comment_text": "🔥 Love this!"
}'
Response
{ "success": true, "count": 1, "failed": 0, "message": "Posted 1 comment(s)" }
POST /v1/instagram/dm Send Instagram direct messages

Sends a DM to each target username from each selected account. Useful for outreach campaigns to commenters or likers from a scraped post.

ParameterTypeDescription
account_idsreqarrayAccount IDs to send from
target_usernamesreqarrayUsernames to message
messagereqstringMessage text to send
delay_secondsnumberSeconds between DMs (default 2)
Request
curl https://oaisyscloud.com/v1/instagram/dm \
  -H "x-api-key: $OAISYS_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
  "account_ids": [2],
  "target_usernames": ["speedy_devv"],
  "message": "Hey! Love your content 🙌"
}'
POST /v1/instagram/post Create an Instagram feed post

Uploads a photo from your OAISYS media library and publishes it as a feed post. Uses the two-step rupload + configure flow against Instagram's private API.

ParameterTypeDescription
account_idsreqarrayAccount IDs to post from
photo_filenamereqstringFilename in the OAISYS photo library
captionstringOptional caption text with hashtags or emoji
Request
curl https://oaisyscloud.com/v1/instagram/post \
  -H "x-api-key: $OAISYS_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
  "account_ids": [2],
  "photo_filename": "promo.jpg",
  "caption": "New drop 🔥 #viral"
}'
Response
{ "success": true, "count": 1, "results": [{ "username": "clawdman112", "post_url": "https://www.instagram.com/p/DYBu9E0gJ9f/" }] }
POST /v1/instagram/scrape/comments Scrape commenters from a post — up to 2,000

Returns all comments on a post including commenter username, user ID, comment text, and timestamp. Use for building outreach lists from high-engagement reels.

ParameterTypeDescription
media_idreqstringInstagram media ID (e.g. 3884690229034764754_75209581759)
max_commentsnumberMax comments to return (default 500, max 2000)
Request
curl https://oaisyscloud.com/v1/instagram/scrape/comments \
  -H "x-api-key: $OAISYS_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
  "media_id": "3884690229034764754_75209581759",
  "max_comments": 500
}'
Response
{ "success": true, "media_id": "3884690...", "count": 487, "comments": [
  { "username": "user1", "user_id": "123", "text": "🔥", "created_at": 1746123456 },
  ...
]}
To get the media_id from a post URL: the numeric part before the underscore is the media PK. You can also find it via scraper.py bulk-posts.
POST /v1/instagram/scrape/likers Scrape likers from a post (~100 users)

Returns users who liked a post. Instagram caps this at roughly 100 per request from the private API.

ParameterTypeDescription
media_idreqstringInstagram media ID
Request
curl https://oaisyscloud.com/v1/instagram/scrape/likers \
  -H "x-api-key: $OAISYS_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{ "media_id": "3884690229034764754_75209581759" }'
Response
{ "success": true, "count": 98, "likers": [
  { "username": "user1", "user_id": "456789" },
  ...
]}
POST /v1/instagram/scrape/profile Scrape an Instagram user profile

Returns public profile metadata for any Instagram username: follower count, following, post count, bio, verified status.

ParameterTypeDescription
usernamereqstringInstagram username without @
Request
curl https://oaisyscloud.com/v1/instagram/scrape/profile \
  -H "x-api-key: $OAISYS_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{ "username": "speedy_devv" }'
Response
{ "success": true, "profile": {
  "username": "speedy_devv",
  "follower_count": 284000,
  "following_count": 412,
  "post_count": 182,
  "bio": "...",
  "is_verified": false
}}

🤖 Reddit Endpoints

Post, reply, scrape, and update profiles on Reddit using connected accounts

POST /v1/reddit/post Create a Reddit post

Submit a text, link, or media post to any subreddit from selected accounts.

ParameterTypeDescription
account_idsreqarrayReddit account IDs
subredditreqstringSubreddit name without r/
titlereqstringPost title
contentstringText body (for text posts)
urlstringLink URL (for link posts)
media_urlstringHosted image/video URL
Request
curl https://oaisyscloud.com/v1/reddit/post \
  -H "x-api-key: $OAISYS_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
  "account_ids": ["reddit_42"],
  "subreddit": "entrepreneur",
  "title": "Built this in a weekend",
  "content": "Here is what I learned..."
}'
POST /v1/reddit/reply Reply to a Reddit post or comment
ParameterTypeDescription
account_idsarrayReddit account IDs. For one account, you can also pass a username in the array.
account_usernamestringSingle Reddit username to reply from, for example No_Damage2178.
target_urlreqstringFull Reddit post or comment URL
messagereqstringReply text
Request
curl https://oaisyscloud.com/v1/reddit/reply \
  -H "x-api-key: $OAISYS_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
  "account_username": "No_Damage2178",
  "target_url": "https://www.reddit.com/r/sub/comments/abc123/",
  "message": "Great post!"
}'
POST /v1/reddit/profile/name  /bio  /privacy Update profile fields

Three endpoints to update display name, bio, and privacy settings on selected accounts.

# Update display name
curl https://oaisyscloud.com/v1/reddit/profile/name \
  -H "x-api-key: $OAISYS_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"account_ids":["reddit_42"],"name":"New Name"}'

# Update bio
curl https://oaisyscloud.com/v1/reddit/profile/bio \
  -H "x-api-key: $OAISYS_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"account_ids":["reddit_42"],"bio":"My new bio"}'
POST /v1/reddit/scrape/user  /subreddit  /profiles Scrape Reddit data
# Scrape a user profile
curl https://oaisyscloud.com/v1/reddit/scrape/user \
  -H "x-api-key: $OAISYS_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"username":"someuser","max_pages":3}'

# Scrape subreddit posts
curl https://oaisyscloud.com/v1/reddit/scrape/subreddit \
  -H "x-api-key: $OAISYS_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"subreddit":"entrepreneur","sort_by":"hot","limit":50}'

👤 Connected Accounts

GET /v1/accounts List all connected accounts
curl https://oaisyscloud.com/v1/accounts \
  -H "x-api-key: $OAISYS_API_KEY"
GET /v1/accounts/{account_id}/proxy Get or update account proxy
# Get proxy
curl https://oaisyscloud.com/v1/accounts/2/proxy \
  -H "x-api-key: $OAISYS_API_KEY"

# Update proxy
curl -X PATCH https://oaisyscloud.com/v1/accounts/2/proxy \
  -H "x-api-key: $OAISYS_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"proxy":"host:port:user:pass"}'

💳 Usage & Credits

GET /v1/usage Credit balance and recent billed events
curl https://oaisyscloud.com/v1/usage \
  -H "x-api-key: $OAISYS_API_KEY"

⚠️ Error Codes

CodeMeaning
200Request completed successfully
400Missing or invalid request body — check required parameters
401Missing, invalid, or inactive API key
402Insufficient OAISYS credits — top up in Account Settings
429Instagram or Reddit rate limit hit — wait before retrying
500Server error — retry or contact support
API errors never include stack traces, internal paths, or raw exception messages. Rate limit (429) errors from Instagram are due to session-level throttling — wait a few minutes before retrying.
Only use this API with accounts you own or are authorized to manage.