Discover/Addshuffle API
live

Addshuffle APIaddshuffle.com ↗

Access Shuffle's SMS entry point, FAQ content, and official page text via 3 endpoints. Retrieve phone numbers, iMessage links, and keyword-matched quotes.

Endpoint health
verified 4h ago
get_messages_entry_point
get_faq
search_official_text
3/3 passing latest checkself-healing
Endpoints
3
Updated
4h ago

What is the Addshuffle API?

This API exposes three endpoints that cover the public-facing content of Shuffle (addshuffle.com): the live Messages/SMS entry point with its current phone number and sms: URL, the complete FAQ as structured question-answer pairs, and a keyword search across Shuffle's home, FAQ, and How-it-works pages. The get_messages_entry_point endpoint returns seven fields including the E.164 phone number, both sms: URLs, and a capacity flag that reflects what the page currently shows.

This call costs1 credit / call— charged only on success
Try it

No input parameters required.

→ api.parse.bot/scraper/2eea24d2-8bf7-4aaa-b7e7-a5c81a72b99e/<endpoint>
Ready to send
Fill in the parameters and hit sign in to send to see live response data here.
Call it over HTTPgrab a free API key at signup
curl -X GET 'https://api.parse.bot/scraper/2eea24d2-8bf7-4aaa-b7e7-a5c81a72b99e/get_messages_entry_point' \
  -H 'X-API-Key: $PARSE_API_KEY'
Python SDK · recommended

Typed, relational, agent-ready

A generated client with real types, enums, and the links between objects — the structure a flat JSON response can't carry. Autocompletes in your editor and reads cleanly to coding agents.

  • Fully typed · autocompletes
  • Objects link to objects
  • Typed errors & pagination

Typed Python client. Set up the SDK in your uv project, then pull this API’s typed client:

uv add parse-sdk
uv run parse init
uv run parse add --marketplace addshuffle-com-api

uv run parse add --marketplace pulls a pinned snapshot of this canonical API — it won’t change underneath you. To customize it, subscribe and swap to your own copy.

"""Walkthrough: Shuffle public-info SDK — bounded, re-runnable."""
from parse_apis.addshuffle_com_api import Shuffle, OfficialPage, InputFormatInvalid

client = Shuffle()

# Fetch the current Messages entry point (phone number rotates each load).
entry = client.entry_points.get()
print(f"Button: {entry.button_label}")
print(f"Phone:  {entry.phone_number}  (rotates: {entry.number_rotates})")
print(f"SMS link: {entry.button_click_href}")

# Browse the FAQ — cap to 5 items.
for item in client.faq_items.list(limit=5):
    print(f"Q: {item.question}")
    print(f"A: {item.answer[:120]}")

# Search official pages for keyword quotes, scoped to the FAQ page.
for quote in client.quotes.search(keywords="iMessage,Messages", page=OfficialPage.FAQ, limit=5):
    print(f"[{quote.page}] {quote.quote[:100]}  (matched: {quote.matched_keywords})")

# Search across all pages and drill into the first hit.
try:
    hit = client.quotes.search(keywords="group chat", limit=1).first()
except InputFormatInvalid as e:
    print(f"Invalid search input: {e.message}")
    hit = None
if hit is not None:
    print(f"First match on '{hit.page}': {hit.quote[:120]}")
    print(f"Source URL: {hit.url}")

print("exercised: entry_points.get / faq_items.list / quotes.search")
All endpoints · 3 totalmissing one? ·

Returns the Messages (iMessage/SMS) entry point currently shown on the Shuffle home page: the label of the 'Or text Shuffle in Messages' button, the phone number it targets, the sms: URL the button opens when tapped on a phone (the site composes it from the current number and its default draft text), and the server-rendered sms: link for the same number. The site rotates the phone number between page loads and its own help pages say to use the live link rather than a saved number, so number_rotates is always true and callers should re-fetch rather than cache. One request; always returns a single object.

Input

No input parameters required.

Response
{
  "type": "object",
  "fields": {
    "entry_slug": "per-page-load entry slug the site attaches to the number assignment",
    "button_label": "visible text of the Messages button on the home page",
    "phone_number": "E.164 phone number the entry point targets, as published on this page load",
    "is_at_capacity": "boolean; true when the site reports the entry point is at capacity",
    "number_rotates": "boolean; always true, the number changes between page loads",
    "server_link_href": "sms: URL in the server-rendered Messages link for the same number (different default draft text)",
    "button_click_href": "sms: URL the button navigates to when tapped (number plus the site's default draft message)"
  },
  "sample": {
    "data": {
      "entry_slug": "dawn-comm-894731",
      "button_label": "Or text Shuffle in Messages",
      "phone_number": "+1 (555) 012-3456",
      "is_at_capacity": false,
      "number_rotates": true,
      "server_link_href": "sms:+1 (555) 012-3456?body=hey%2C%20im%20new%20here",
      "button_click_href": "sms:+1 (555) 012-3456?body=Hey%20Shuffle!"
    },
    "status": "success"
  }
}

About the Addshuffle API

Entry Point Data

The get_messages_entry_point endpoint returns the current state of the 'Or text Shuffle in Messages' button on the Shuffle home page. Because the phone number rotates between page loads, each call reflects the number assigned at that moment. The response includes phone_number (E.164 format), button_click_href (the sms: URL the button opens, with Shuffle's default draft text pre-filled), server_link_href (an sms: URL from the server-rendered link, which uses different draft text), is_at_capacity (a boolean reflecting whether the entry point is currently reported as full), and entry_slug (a per-load identifier the site attaches to the number).

FAQ Content

The get_faq endpoint fetches the entire Shuffle FAQ page and returns every question-answer pair as a flat array in page order. The items array contains each entry's question and answer text; total gives the integer count. There is no pagination — one request returns all entries. If the FAQ page returns no parseable content, the endpoint reports an extraction failure rather than an empty array.

Keyword Search Across Official Pages

The search_official_text endpoint accepts a required keywords parameter (comma-separated terms, not an array) and searches the visible text of Shuffle's home, FAQ, and How-it-works pages for matching sentences. Each result in the quotes array includes the verbatim sentence, the page key, the page_url, and the matched_keywords list. Matching is case-insensitive substring per sentence. The optional page parameter restricts the search to one of the three pages; omitting it searches all three. The response also returns pages_searched and keywords so callers can verify what was actually queried.

Reliability & maintenanceVerified

The Addshuffle API is a managed, monitored endpoint for addshuffle.com — not a raw scraper you maintain. Every endpoint is automatically health-checked on a schedule, and when addshuffle.com changes and a check fails, the API is automatically queued for repair and re-verified. It is built to keep working as the site underneath it changes.

This isn't an official addshuffle.com API — it's an independent, maintained REST wrapper over public data. Where the source has no official API (or only a limited one), Parse gives you a stable contract over a source that never promised one, and keeps it current. Need a new endpoint or field? You can revise it yourself in plain English and the agent rebuilds it against the live site in minutes — contributing the change back to the shared API is free.

Last verified
4h ago
Latest check
3/3 endpoints passing
Maintenance
Monitored & self-healing
Will this API break when the source site changes?+
It's built not to. Every endpoint is health-checked on a schedule with automated test probes. When the source site changes and a check fails, the API is automatically queued for repair and re-verified — that's the self-healing layer. Each API page shows when its endpoints were last verified. And because marketplace APIs are shared, any fix reaches everyone using it.
Is this an official API from the source site?+
No — Parse APIs are independent, managed REST wrappers over publicly available data. That is the point: where a site has no official API (or only a limited one), Parse gives you a maintained, monitored endpoint for that data and keeps it working as the site changes — so you get a stable contract over a source that never promised one.
Can I fix or extend this API myself if I need a new endpoint or field?+
Yes — and you don't have to wait on us. This API was generated by the Parse agent, which stays attached. Describe the change in plain English ("add an endpoint that returns reviews", "fix the price field") in the revise box on the API page or via the revise_api MCP tool, and the agent rebuilds it against the live site in minutes. Contributing the change back to the public API is free.
What happens if I call an endpoint that has an issue?+
Errors are machine-readable: a bad call returns a clean status with the list of available endpoints and a repair hint, so an agent (or you) can recover or trigger a fix instead of failing silently. Confirmed failures feed the automatic repair queue.
Common use cases
  • Track rotation of Shuffle's public SMS entry point phone number over time using phone_number from get_messages_entry_point
  • Monitor whether the Shuffle Messages entry point is at capacity using the is_at_capacity boolean
  • Build a structured reference of Shuffle's FAQ content by consuming the items array from get_faq
  • Extract specific policy or feature language from Shuffle's official pages using search_official_text with targeted keywords
  • Identify which official Shuffle page mentions a given term using the page and page_url fields in search results
  • Detect changes to the default iMessage draft text by comparing button_click_href values across calls
Pricing & limitsSee full pricing →
TierPriceCredits/monthRate limit
Free$0/mo2005 req/min
Hobby$30/mo1,00020 req/min
Developer$100/mo5,000100 req/min
Team$300/mo20,000300 req/min
Company$1,000/mo100,000500 req/min

Each endpoint has a fixed posted price per successful call — most fall between 1 and 10 credits — shown on this API's page before you run it. Exceeding the rate limit returns a 429 response. Authenticate with the X-API-Key header.

Frequently asked questions
Does Shuffle have an official developer API?+
No. Shuffle does not publish a documented developer API or SDK. This Parse API provides structured access to the public content Shuffle exposes on its website.
What does `get_messages_entry_point` return, and why might the phone number differ between calls?+
It returns the phone number, both sms: URLs, the button label, the entry slug, and the is_at_capacity and number_rotates flags as they appear on that page load. The number_rotates field is always true, reflecting that Shuffle assigns different numbers across page loads — so sequential calls to this endpoint may return different phone_number values.
Does `search_official_text` support searching pages beyond home, FAQ, and How-it-works?+
Not currently. The pages_searched field will always contain a subset of those three pages. You can fork this API on Parse and revise it to add additional Shuffle pages as sources.
Does the API return user-generated data such as group chat histories or individual Shuffle profiles?+
Not currently. The API covers only Shuffle's public marketing and informational pages: the home page entry point, the FAQ, and the How-it-works page. You can fork it on Parse and revise to add endpoints targeting other publicly accessible Shuffle content.
How should the `keywords` parameter be formatted for `search_official_text`?+
Pass it as a single comma-separated string, for example group chat,SMS,iMessage. Do not pass a JSON array. The endpoint splits on commas internally and returns the parsed terms in the keywords field of the response so you can confirm how they were interpreted.
Page content last updated . Spec covers 3 endpoints from addshuffle.com.
Related APIs in Social MediaSee all →