800notes API800notes.com ↗
Access phone number scam reports, user comments, area code listings, forum threads, and articles from 800notes.com via a structured REST API.
What is the 800notes API?
The 800notes API exposes 6 endpoints for retrieving community-submitted call reports from 800notes.com, the crowd-sourced phone number reputation database. The get_phone_number_report endpoint returns the full comment history for any US phone number — including caller type classifications, vote scores, and author metadata — while companion endpoints cover area code browsing, recent reports, forum threads, and scam articles.
curl -X GET 'https://api.parse.bot/scraper/c712b340-cc00-44af-bcbd-b0f361e2c3e5/get_phone_number_report?phone_number=8002662278' \ -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 800notes-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: 800Notes SDK — investigate scam calls, browse reports and articles."""
from parse_apis.eight_hundred_notes_scam_call_api import EightHundredNotes, PhoneNumberInvalid
client = EightHundredNotes()
# Browse recent scam reports from the homepage
for report in client.recentreports.list(limit=3):
print(report.text_snippet[:80], report.author_info)
# Look up a specific phone number's full report
report = client.phonereports.get(phone_number="8002662278")
print(report.title, f"({report.report_count} reports)")
for comment in report.comments[:2]:
print(comment.author, comment.text[:60], comment.date)
# Search for phone numbers matching a query
result = client.phonereports.search(query="8002662278", limit=1).first()
if result:
print(result.phone_number, result.title)
# Browse reported numbers in an area code
area = client.areacodepages.get(area_code="800")
for entry in area.phone_numbers[:3]:
print(entry.number, entry.url)
# Get community forum threads about scam trends
for thread in client.forumthreads.list(limit=3):
print(thread.title, thread.meta)
# Handle invalid phone number input gracefully
try:
client.phonereports.get(phone_number="")
except PhoneNumberInvalid as exc:
print(f"Invalid input: {exc}")
# Browse educational articles about phone fraud prevention
for article in client.articles.list(limit=3):
print(article.title, article.excerpt[:60])
print("exercised: recentreports.list / phonereports.get / phonereports.search / areacodepages.get / forumthreads.list / articles.list")
Retrieve the full report for a specific phone number including user-submitted comments about calls received from that number. Accepts phone numbers in various formats (with or without dashes, with or without country code prefix). Returns the phone number normalized to 1-AAA-BBB-CCCC format, a title, comment count, and the full list of user comments with author, text, date, call_type, and vote_score.
| Param | Type | Description |
|---|---|---|
| phone_numberrequired | string | Phone number to lookup. Accepts formats like '1-800-266-2278', '800-266-2278', '8002662278', or '18002662278'. |
{
"type": "object",
"fields": {
"title": "string, page title (typically the phone number without country code)",
"comments": "array of comment objects with author, text, date, call_type, and vote_score",
"phone_number": "string, formatted as 1-AAA-BBB-CCCC",
"report_count": "integer, number of comments on the page"
},
"sample": {
"data": {
"title": "+1 (555) 012-3456",
"comments": [
{
"date": "2007-06-08T00:05:42Z",
"text": "This is only Comcast calling their customers",
"author": "Jane Doe",
"call_type": "Call type: Valid",
"vote_score": "+8"
}
],
"phone_number": "+1 (555) 012-3456",
"report_count": 20
},
"status": "success"
}
}About the 800notes API
Phone Number Lookups
The get_phone_number_report endpoint accepts a phone number in any common format — dashes optional, country code optional — and returns a structured response with a comments array. Each comment object includes author, text, date, call_type, and vote_score, letting you assess community consensus on whether a number is a scammer, telemarketer, debt collector, or legitimate business. The report_count field tells you how many submissions exist for that number. The search_phone_number endpoint handles the same lookup by query string and also accepts a bare 3-digit area code to return area-level listings.
Area Code and Recent Activity
get_area_code_page takes an area_code parameter (e.g. '800', '212') and an optional page integer for pagination, returning an array of reported phone numbers and their detail URLs alongside a pagination object listing all available pages. get_recent_reports requires no parameters and returns the latest community comments from the 800notes homepage, with each report object carrying a text_snippet, author_info, date, and a direct url back to the full report.
Forum and Editorial Content
get_forum_listing retrieves community forum threads. Pass section: 'latest' to get the most recent threads across all sub-forums; each thread object includes title, url, meta, snippet, and date. get_articles returns the editorial articles section — objects include title, url, excerpt, and date — covering topics like ongoing scam campaigns and consumer guidance around unwanted calls.
The 800notes API is a managed, monitored endpoint for 800notes.com — not a raw scraper you maintain. Every endpoint is automatically health-checked on a schedule, and when 800notes.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 800notes.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.
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?+
- Building a reverse phone lookup tool that surfaces call_type and vote_score data from community reports
- Feeding incoming call data into a CRM to flag numbers already reported as scammers on 800notes
- Generating area-code-level risk summaries by paginating through get_area_code_page results
- Monitoring get_recent_reports on a schedule to detect newly reported scam number patterns
- Aggregating forum thread content from get_forum_listing for a consumer safety research corpus
- Enriching a spam-call dataset with article excerpts and dates from get_articles for trend analysis
- Building a browser extension that queries get_phone_number_report and displays comment counts inline
| 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 | 100 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.