smstome.com APIsmstome.com ↗
Access temporary phone numbers and incoming SMS messages from smstome.com. List countries, browse numbers by country, read messages, and search by sender or content.
No input parameters required.
curl -X GET 'https://api.parse.bot/scraper/9d0f9dc7-f182-4bd8-a1eb-1965e3d0121a/list_countries' \ -H 'X-API-Key: $PARSE_API_KEY'
List all available countries that have temporary phone numbers on smstome.com. Returns deduplicated country entries with slugs usable in other endpoints.
No input parameters required.
{
"type": "object",
"fields": {
"total": "integer total number of unique countries",
"countries": "array of objects with name, slug, and url for each country"
},
"sample": {
"data": {
"total": 6,
"countries": [
{
"url": "https://smstome.com/country/united-kingdom",
"name": "United Kingdom+44",
"slug": "united-kingdom"
},
{
"url": "https://smstome.com/country/finland",
"name": "Finland+358",
"slug": "finland"
},
{
"url": "https://smstome.com/country/belgium",
"name": "Belgium+32",
"slug": "belgium"
},
{
"url": "https://smstome.com/country/netherlands",
"name": "Netherlands+31",
"slug": "netherlands"
},
{
"url": "https://smstome.com/country/slovenia",
"name": "Slovenia+386",
"slug": "slovenia"
},
{
"url": "https://smstome.com/country/poland",
"name": "Poland+48",
"slug": "poland"
}
]
},
"status": "success"
}
}About the smstome.com API
The smstome.com API exposes 4 endpoints for browsing temporary phone numbers and reading their incoming SMS messages. Starting with list_countries, you can enumerate every country that has available numbers, then drill into specific numbers per country, retrieve paginated message history sorted newest to oldest, or search message content and sender fields across a number's full inbox.
Country and Number Discovery
The list_countries endpoint returns every country currently offering temporary numbers on smstome.com, including each country's name, slug, and url. The slug field is the key identifier used by all other endpoints. list_phone_numbers accepts that slug via the country parameter and returns up to 20 numbers per page, with each record carrying phone_number, country_code, added timestamp, number, sms_id, and sms_url. The sms_id and number fields from this response are required inputs for message retrieval.
Reading SMS Messages
get_messages fetches the SMS inbox for a specific number, identified by the combination of number, sms_id, and country. Messages are returned 10 per page, ordered newest to oldest. Each message object contains from (sender identifier), received (timestamp), and message (body text). Requesting a page beyond the available range returns an empty messages array rather than an error, so iterating to completion is straightforward using the total_pages field.
Searching Message History
search_messages accepts a query string and scans a number's inbox for messages where either the from field or message content contains the term (case-insensitive). The scan range is controlled by start_page and max_pages, letting you limit how far back the search reaches. The response includes pages_scanned, total_pages_available, and a note field that clarifies result ordering. This is useful when you know roughly when a message arrived and want to narrow the scan window to reduce latency.
- Verify whether an SMS verification code from a specific sender arrived on a given temporary number
- Monitor all incoming messages on a country-specific number by polling get_messages for new entries
- Enumerate available temporary numbers across multiple countries using list_countries and list_phone_numbers
- Search a number's full message history for OTP codes or service names using search_messages with a keyword query
- Build a country-filtered directory of active temporary numbers using the slug and country_code fields
- Track when a new number was added by reading the added field from list_phone_numbers results
- Paginate through a high-volume number's inbox to archive all received messages using total_pages from get_messages
| Tier | Price | Credits/month | Rate limit |
|---|---|---|---|
| Free | $0/mo | 100 | 5 req/min |
| Hobby | $30/mo | 1,000 | 20 req/min |
| Developer | $100/mo | 5,000 | 250 req/min |
One credit = one API call regardless of which marketplace API you call. Exceeding the rate limit returns a 429 response. Authenticate with the X-API-Key header.
Does smstome.com have an official developer API?+
What does get_messages return, and how is pagination handled?+
from), a received timestamp, and the full message body. The response includes total_pages so you can iterate all pages. Requesting a page number beyond the total returns an empty messages array.Can I retrieve the full message content of every number across all countries in one call?+
Does the API expose any metadata beyond sender, timestamp, and message body?+
from, received, and message. Fields like message length, delivery status, or attachment indicators are not exposed. You can fork this API on Parse and revise it to add any additional fields that appear on the source pages.How does search_messages handle large inboxes with many pages?+
max_pages parameter caps how many pages the search scans, and start_page controls where scanning begins (page 1 = newest messages). The response reports pages_scanned and total_pages_available, so you can tell if the search stopped before reaching the oldest messages. If your target message may be old, increase max_pages or adjust start_page accordingly.