TrueStare API Documentation
Quick-start guide and complete reference for the TrueStare API. Endpoints for trending keyword data, crypto market intelligence, domain enrichment, AI text processing, and automation workflows. Read the Authentication section first, then jump to the endpoint group you need.
Quick start
TrueStare gives you instant access to pre-scraped market data, trending keywords, and AI text processing — all through a single REST API.
https://api.truestare.com
1. Get an API key
Create a free account to get your API key. Free tier includes 100 data calls and 10 text calls per day.
2. Make your first request
curl https://api.truestare.com/v1/data/keywords?niche=saas \ -H "X-Api-Key: YOUR_API_KEY"
import requests
res = requests.get(
"https://api.truestare.com/v1/data/keywords",
params={"niche": "saas"},
headers={"X-Api-Key": "YOUR_API_KEY"}
)
print(res.json())
const res = await fetch(
"https://api.truestare.com/v1/data/keywords?niche=saas",
{ headers: { "X-Api-Key": "YOUR_API_KEY" } }
);
const data = await res.json();
console.log(data);
Authentication
All requests require an API key passed in the X-Api-Key header.
X-Api-Key: ts_live_xxxxxxxxxxxxxxxx
Never expose your API key in client-side code or public repositories. Generate separate keys for development and production from your dashboard.
Errors
TrueStare uses standard HTTP status codes.
| Code | Meaning |
|---|---|
| 200 | Success |
| 400 | Bad request — check your parameters |
| 401 | Invalid or missing API key |
| 422 | Validation error — missing required field |
| 429 | Rate limit exceeded — upgrade or wait until midnight UTC |
| 500 | Server error — try again shortly |
Error responses always include a JSON body: {"detail": "error message"}
Rate limits
Limits reset daily at midnight UTC. Exceeding a limit returns a 429 response.
| Tier | Data / day | Text / day | Automation / day |
|---|---|---|---|
| Free | 100 | 10 | 5 |
| Starter | 1,000 | 200 | 50 |
| Pro | 5,000 | 1,000 | 200 |
| Business | 50,000 | 5,000 | 1,000 |
Keywords
Returns trending keywords and hot Reddit posts for a given niche. Data is refreshed every 6 hours from Google Trends and Reddit.
| Parameter | Type | Description | |
|---|---|---|---|
| niche | string | optional | Filter by niche (e.g. "saas", "fitness", "crypto"). Omit to return all. |
| limit | integer | optional | Max results to return (default 20, max 100). |
# Example response { "data": [ { "niche": "saas", "source": "google_trends", "rising": [ { "query": "ai saas tools", "value": 200 } ], "top": [ { "query": "saas pricing", "value": 100 } ] }, { "niche": "saas", "source": "reddit", "subreddit": "SaaS", "trending_posts": [ { "title": "I launched my first SaaS!", "score": 412, "comments": 89, "url": "https://reddit.com/..." } ] } ], "count": 2 }
Market data
Returns live crypto prices, market caps, 24h change, and the Fear & Greed index. Updated every 30 minutes.
| Parameter | Type | Description | |
|---|---|---|---|
| category | string | optional | Filter by category. Currently supports "crypto". |
# Example response { "data": [ { "data": { "name": "Bitcoin", "symbol": "BTC", "rank": 1, "price_usd": 71909.0, "change_24h": 1.34, "change_7d": -2.1, "market_cap": 1418000000000, "volume_24h": 28500000000 }, "as_of": "2026-04-10T01:23:09Z" } ] }
Gold & precious metals
Returns live spot prices, eBay sold listings, and dealer premium analysis for gold, silver, and other precious metals. Data is refreshed continuously from spot feeds and secondary market sources.
| Parameter | Type | Description | |
|---|---|---|---|
| type | string | optional | Filter by data type: spot (live spot price), ebay (recent sold listings), premiums (dealer premium analysis). Omit to return all. |
# Spot price curl "https://api.truestare.com/v1/data/gold?type=spot" \ -H "X-Api-Key: YOUR_API_KEY" # Example response { "data": [ { "key": "gold:spot:XAU_USD", "data": { "metal": "gold", "price_usd": 3312.40, "price_oz": 3312.40, "change_24h": 0.82, "currency": "USD" }, "as_of": "2026-05-02T14:00:00Z" } ] } # eBay sold listings (secondary market) curl "https://api.truestare.com/v1/data/gold?type=ebay" \ -H "X-Api-Key: YOUR_API_KEY" # Example response { "data": [ { "key": "gold:ebay_sold_1oz_american_eagle", "data": { "product": "1 oz American Gold Eagle", "avg_sold_usd": 3425.00, "median_usd": 3410.00, "sample_count": 48, "premium_pct": 3.4 }, "as_of": "2026-05-02T12:00:00Z" } ] }
Domain enrichment
Returns WHOIS data, tech stack, DNS records, and page title for any domain. Common domains are pre-cached; others are fetched on-demand (may take up to 30 seconds on first request).
| Parameter | Type | Description | |
|---|---|---|---|
| domain | string | required | Domain to enrich (e.g. stripe.com). |
curl "https://api.truestare.com/v1/data/enrich?domain=stripe.com" \ -H "X-Api-Key: YOUR_API_KEY"
PII detection
Detects and flags personally identifiable information in text — names, emails, phone numbers, SSNs, credit card numbers, and more.
| Body field | Type | Description | |
|---|---|---|---|
| text | string | required | The text to scan for PII. Max 4,000 characters. |
| model | string | optional | Model to use: claude-haiku (default) or grok. |
curl -X POST https://api.truestare.com/v1/text/pii-detect \
-H "X-Api-Key: YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{"text": "Contact John at [email protected] or 555-867-5309"}'
# Example response
{
"result": {
"pii_found": true,
"items": [
{ "type": "name", "value": "John", "risk": "medium" },
{ "type": "email", "value": "[email protected]", "risk": "high" },
{ "type": "phone", "value": "555-867-5309", "risk": "high" }
]
},
"model_used": "claude-haiku"
}
Text extraction
Extracts structured data from unstructured text — key facts, entities, dates, amounts, locations, and organizations.
| Body field | Type | Description | |
|---|---|---|---|
| text | string | required | The text to extract information from. Max 4,000 characters. |
| model | string | optional | Model to use: claude-haiku (default) or grok. |
# Example response { "result": { "names": ["Sarah Chen", "TechCorp Inc."], "dates": ["2026-03-15", "Q2 2026"], "amounts": [{ "value": 45000, "currency": "USD", "context": "annual contract" }], "locations": ["San Francisco, CA"], "organizations": ["TechCorp Inc.", "Acme Partners"], "key_facts": [ "Partnership agreement signed March 2026", "Renewal clause at 12 months" ] }, "model_used": "claude-haiku" }
Content moderation
Classifies text as safe, unsafe, or borderline. Returns category flags for hate speech, violence, adult content, spam, and harassment.
| Body field | Type | Description | |
|---|---|---|---|
| text | string | required | The text to moderate. Max 4,000 characters. |
| model | string | optional | Model to use: claude-haiku (default) or grok. |
# Example response { "result": { "safe": false, "flags": ["hate_speech", "harassment"], "severity": "high", "reason": "Contains targeted slurs and explicit threats toward an individual." }, "model_used": "claude-haiku" } # Safe content example { "result": { "safe": true, "flags": [], "severity": "none", "reason": "No policy violations detected." }, "model_used": "claude-haiku" }
Contract clauses
Extracts and categorizes key clauses from contract text — payment terms, termination conditions, liability caps, IP ownership, and more.
| Body field | Type | Description | |
|---|---|---|---|
| text | string | required | The contract text to analyze. Max 4,000 characters. |
| model | string | optional | Model to use: claude-haiku (default) or grok. |
curl -X POST https://api.truestare.com/v1/text/contract-clauses \
-H "X-Api-Key: YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{"text": "Either party may terminate this agreement with 30 days written notice..."}'
# Example response
{
"result": {
"clauses": [
{
"type": "termination",
"text": "Either party may terminate this agreement with 30 days written notice.",
"risk_level": "low",
"notes": "Standard mutual termination; no penalty clause detected."
},
{
"type": "liability",
"text": "Liability shall not exceed fees paid in the prior 3 months.",
"risk_level": "medium",
"notes": "Cap may be low for high-value integrations."
}
]
},
"model_used": "claude-haiku"
}
API keys
Returns all API keys on your account. Key values are never returned after creation.
| Body field | Type | Description | |
|---|---|---|---|
| name | string | optional | A label for this key (e.g. "Production"). |
The full key value is returned once and never again — save it immediately.
Usage
# Example response { "date": "2026-04-10", "tier": "free", "usage": { "data": 42, "text": 3, "automation": 0 }, "limits": { "data": 100, "text": 10, "automation": 5 } }