Search the web and get titles, links and snippets
import { Stophy } from "stophy";
const stophy = new Stophy({ apiKey: process.env.STOPHY_API_KEY });
const result = await stophy.web.search({ query: "best project management software", limit: 10 });
console.log(result.data.results);
from stophy import Stophy
stophy = Stophy() # reads STOPHY_API_KEY
result = stophy.web.search(query="best project management software", limit=10)
print(result["data"]["results"])
curl -X POST https://api.stophy.dev/v1/web/search \
-H "Authorization: Bearer $STOPHY_API_KEY" \
-H "content-type: application/json" \
-d '{"query":"best project management software","limit":10}'
stophy web search "best project management software" --limit 10
{
"success": true,
"data": {
"results": [
{
"title": "Top 10 Project Management Software I Tested & Recommend for 2026",
"url": "https://project-management.com/top-10-project-management-software/",
"description": "2 weeks ago - The best project management software is monday.com for visual planning and beginners, ClickUp for task hierarchies, Jira for agile software delivery, Asana for workflow automation, and Teamwork for professional services.",
"domain": "project-management.com",
"position": 1
},
{
"title": "10 Best Project Management Software Picked For 2026",
"url": "https://thedigitalprojectmanager.com/tools/best-project-management-software/",
"description": "4 days ago - Project management software earns its place when it gives teams real visibility, handles resource planning, and scales with your workload. I evaluated 40 options.",
"domain": "thedigitalprojectmanager.com",
"position": 2
}
]
},
"creditsUsed": 0,
"requestId": "08a1799a-c64c-4d69-a39f-34fe91139d31"
}
Endpoints
| Endpoint | Cost |
|---|---|
| Search the web and get titles, links and snippets | 1 credit per 10 items, at least 1 credit (no key needed) |
| Search news articles by topic, date and country | 2 credits per 10 items, at least 2 credits |
| Find emails, phone numbers and social profiles on a website | 2 credits per 5 items, at least 2 credits |
| List every page on a website | 2 credits per 500 items, at least 2 credits |
| Check a page’s SEO: titles, tags, headings and links | 2 credits per 2 items, at least 2 credits |
| Get a domain’s registrar and key dates | 1 credit |
| Get a domain’s DNS records | 1 credit |
| Find the technologies a website uses | 1 credit |
| Check if email addresses can receive mail | 1 credit per 10 items, at least 1 credit |
| Get Google search suggestions for a keyword | 1 credit per 50 items, at least 1 credit |
| Get search interest over time | 1 credit |
| Get search interest by region | 1 credit |
| Get related searches for a keyword | 1 credit |
| Get what is trending on Google now | 1 credit per 50 items, at least 1 credit |
More ways to call it
List every page on a website
import { Stophy } from "stophy";
const stophy = new Stophy({ apiKey: process.env.STOPHY_API_KEY });
const result = await stophy.site.map({ url: "https://stripe.com", limit: 500 });
console.log(result.data.urls);
from stophy import Stophy
stophy = Stophy() # reads STOPHY_API_KEY
result = stophy.site.map(url="https://stripe.com", limit=500)
print(result["data"]["urls"])
curl -X POST https://api.stophy.dev/v1/site/map \
-H "Authorization: Bearer $STOPHY_API_KEY" \
-H "content-type: application/json" \
-d '{"url":"https://stripe.com","limit":500}'
stophy site map https://stripe.com --limit 500
Get a domain’s registrar and key dates
import { Stophy } from "stophy";
const stophy = new Stophy({ apiKey: process.env.STOPHY_API_KEY });
const result = await stophy.domain.whois({ domain: "stripe.com" });
console.log(result.data.domain);
from stophy import Stophy
stophy = Stophy() # reads STOPHY_API_KEY
result = stophy.domain.whois(domain="stripe.com")
print(result["data"]["domain"])
curl -X POST https://api.stophy.dev/v1/domain/whois \
-H "Authorization: Bearer $STOPHY_API_KEY" \
-H "content-type: application/json" \
-d '{"domain":"stripe.com"}'
stophy domain whois stripe.com
Send
accept: text/markdown to any of these endpoints to get a readable page instead of JSON. See Get markdown for a model.