Getboba APIgetboba.ai ↗
Retrieve Boba's current SMS number, invite link, availability state, FAQ entries, and expiry timestamp via a single API endpoint.
What is the Getboba API?
The Getboba.ai API exposes 1 endpoint — get_sms_contact — that returns 9 structured fields describing how to reach the Boba AI assistant over SMS. A single call yields the current E.164 phone number, a pre-filled sms: deep link with an embedded invite code, the invite's UTC expiry timestamp, page availability state, FAQ entries, and navigational links — everything shown on the Boba homepage at the time of the request.
No input parameters required.
curl -X GET 'https://api.parse.bot/scraper/649d701b-ae28-4f6a-ada9-01c2c09b5e00/get_sms_contact' \ -H 'X-API-Key: $PARSE_API_KEY'
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 getboba-ai-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: Boba SMS Contact API — fetch contact info and explore FAQ/links."""
from parse_apis.getboba_ai_api import Boba, ParseError
client = Boba()
# Fetch the current SMS contact details (number, availability, invite link).
try:
contact = client.contacts.get()
except ParseError as e:
print("Could not fetch contact info:", e.code)
raise
print(contact.sms_number, contact.availability)
# The invite code is short-lived; show when it expires.
if contact.invite_expires_at is not None:
print("Invite expires:", contact.invite_expires_at.isoformat())
# The deep-link lets the user open Messages directly.
if contact.messages_url is not None:
print("Tap to text:", contact.messages_url)
# Walk the FAQ entries returned from the page.
for item in contact.faq:
print(f"Q: {item.question}")
print(f"A: {item.answer[:120]}")
# Show navigational links (terms, web app, etc.).
for link in contact.links:
print(link.label, "→", link.url)
print("exercised: contacts.get")
Returns a single object describing how to text Boba. The homepage shows no fixed number in its static text: on every visit it mints a short-lived invite (about ten minutes) and the number plus a ready-made 'sms:' link come back with it, so this endpoint performs that same page-load step and returns the number it was given; the number can differ between calls because the site assigns it per invite. availability is the label the page's main button shows ('Open Messages' when an invite was issued; 'Unavailable' with sms_number null if the site refuses to issue one, the same state the page shows). Also returned verbatim from the page: the intro paragraph, the FAQ answer stating Boba works over RCS and plain SMS and in group chats (sms_support_quote), the FAQ answer on adding Boba to a group chat (group_chat_quote), the full FAQ list, and every navigational link on the page (terms, privacy, copyright, web app, contact email). Two round trips, no inputs, no pagination.
No input parameters required.
{
"type": "object",
"fields": {
"faq": "array of {question, answer} for every FAQ entry on the page",
"links": "array of {label, url} navigational links found on the page",
"page_url": "the page the data was read from",
"intro_text": "hero paragraph stating one-on-one texting and group chats",
"sms_number": "E.164 phone number to text, e.g. +1646xxxxxxx; null when availability is 'Unavailable'",
"availability": "button state shown on the page: 'Open Messages' or 'Unavailable'",
"messages_url": "the page's sms: deep link including the pre-filled hello message and invite code; null when unavailable",
"group_chat_quote": "verbatim FAQ answer on adding Boba to a group chat",
"availability_note": "plain-language note on the availability state and invite expiry",
"invite_expires_at": "ISO-8601 UTC timestamp when the invite code in messages_url expires; null when unavailable",
"sms_support_quote": "verbatim FAQ answer stating support for RCS, plain SMS and group chats"
},
"sample": {
"data": {
"faq": [
{
"answer": "Yes. No subscription, no ads. Free to use.",
"question": "Is Boba really free?"
},
{
"answer": "Yes. Boba works over RCS and plain SMS, so any Android phone can text it. Tap Open Messages here or text the number shown, and you're in. Boba also works in group chats that mix iPhone and Android. Turning on chat features (RCS) in Google Messages gets you the richer experience, with typing indicators and full-size photos.",
"question": "Does it work on Android?"
},
{
"answer": "Text Boba 1:1 first. Then add the Boba number to any group from your Messages app, same as adding any other contact.",
"question": "How do I add Boba to a group chat?"
}
],
"links": [
{
"url": "https://getboba.ai/app/",
"label": "Boba Web NEW"
},
{
"url": "https://getboba.ai/terms",
"label": "Terms of Service"
},
{
"url": "https://getboba.ai/privacy",
"label": "Privacy Notice"
},
{
"url": "https://getboba.ai/copyright",
"label": "Copyright"
},
{
"url": "mailto:[email protected]",
"label": "[email protected]"
}
],
"page_url": "https://getboba.ai/",
"intro_text": "Meet Boba, a genuinely smart assistant with real social instincts, living in the Messages app you already have. Text it one-on-one, or start a group chat with it to plan with everyone at once. No download, no login, no $20/mo.",
"sms_number": "+1 (555) 012-3456",
"availability": "Open Messages",
"messages_url": "sms:+1 (555) 012-3456&body=Let%27s%20Chat%21%0A%0AInvite%20code%3A%2005120314",
"group_chat_quote": "Text Boba 1:1 first. Then add the Boba number to any group from your Messages app, same as adding any other contact.",
"availability_note": "Free · No app · No sign-up; the invite code in messages_url expires at invite_expires_at and the page mints a new one when it does.",
"invite_expires_at": "2026-10-18T12:14:18.250052+00:00",
"sms_support_quote": "Yes. Boba works over RCS and plain SMS, so any Android phone can text it. Tap Open Messages here or text the number shown, and you're in. Boba also works in group chats that mix iPhone and Android. Turning on chat features (RCS) in Google Messages gets you the richer experience, with typing indicators and full-size photos."
},
"status": "success"
}
}About the Getboba API
What the API Returns
The get_sms_contact endpoint returns a single object covering the full state of the Boba contact page. The key fields are sms_number (an E.164-formatted number such as +1646xxxxxxx) and messages_url (the sms: deep link that includes the pre-filled greeting and the invite code). Both are null when availability reads 'Unavailable', so callers should always check that field before using them.
Invite Expiry and Availability
Boba mints a short-lived invite on each page load. The invite_expires_at field returns an ISO-8601 UTC timestamp marking when that code lapses (roughly ten minutes after the request). The availability_note field gives a plain-language description of the current state — useful for surfacing status to end users without parsing the raw timestamp. When availability is 'Open Messages', both sms_number and messages_url are populated; when it is 'Unavailable', all three contact fields return null.
FAQ and Page Content
The response also includes the full faq array — every question/answer pair on the Boba homepage — and intro_text, the hero paragraph describing one-on-one texting and group chats. The group_chat_quote field is the verbatim FAQ answer about adding Boba to a group chat. The links array lists all navigational links found on the page, and page_url records the source URL the data was read from.
The Getboba API is a managed, monitored endpoint for getboba.ai — not a raw scraper you maintain. Every endpoint is automatically health-checked on a schedule, and when getboba.ai 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 getboba.ai 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.
Will this API break when the source site changes?+
Is this an official API from the source site?+
Can I fix or extend this API myself if I need a new endpoint or field?+
What happens if I call an endpoint that has an issue?+
- Build a status widget that shows whether Boba is currently accepting SMS contacts using the
availabilityfield. - Auto-generate a 'Text Boba' button in a web app by reading
messages_urland displaying it only when non-null. - Monitor invite availability over time by polling
invite_expires_atand logging state changes. - Populate a help-center snippet with Boba's current FAQ answers using the
faqarray. - Embed the
group_chat_quotetext directly in documentation or onboarding flows describing Boba's group chat support. - Alert a Slack channel when
availabilitytransitions from'Unavailable'to'Open Messages'.
| Tier | Price | Credits/month | Rate limit |
|---|---|---|---|
| Free | $0/mo | 200 | 5 req/min |
| Hobby | $30/mo | 1,000 | 20 req/min |
| Developer | $100/mo | 5,000 | 100 req/min |
| Team | $300/mo | 20,000 | 300 req/min |
| Company | $1,000/mo | 100,000 | 500 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.
Does Getboba.ai have an official developer API?+
What does `get_sms_contact` return when Boba is unavailable?+
'Unavailable', the fields sms_number, messages_url, and invite_expires_at all return null. The availability field will read 'Unavailable' and availability_note will contain a plain-language description of the state. The faq, links, intro_text, and group_chat_quote fields are still populated regardless of availability.How long is the invite code in `messages_url` valid?+
invite_expires_at field gives the exact UTC expiry as an ISO-8601 timestamp. In practice this is approximately ten minutes from the time of the request. After that point the invite code embedded in messages_url will no longer be valid, and a fresh call to get_sms_contact is needed to obtain a new one.