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.

Base URL: 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.

CodeMeaning
200Success
400Bad request — check your parameters
401Invalid or missing API key
422Validation error — missing required field
429Rate limit exceeded — upgrade or wait until midnight UTC
500Server 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.

TierData / dayText / dayAutomation / day
Free100105
Starter1,00020050
Pro5,0001,000200
Business50,0005,0001,000

Upgrade your plan →

Keywords

Returns trending keywords and hot Reddit posts for a given niche. Data is refreshed every 6 hours from Google Trends and Reddit.

GET /v1/data/keywords Trending keywords by niche
ParameterTypeDescription
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.

GET /v1/data/market Crypto prices and market stats
ParameterTypeDescription
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.

GET /v1/data/gold Precious metals prices and premium data
ParameterTypeDescription
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).

GET /v1/data/enrich Domain intelligence
ParameterTypeDescription
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.

POST /v1/text/pii-detect Detect PII in text
Body fieldTypeDescription
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.

POST /v1/text/extract Extract structured data from text
Body fieldTypeDescription
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.

POST /v1/text/moderate Moderate text content
Body fieldTypeDescription
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.

POST /v1/text/contract-clauses Extract contract clauses
Body fieldTypeDescription
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

GET /billing/keys List your API keys

Returns all API keys on your account. Key values are never returned after creation.

POST /billing/keys Create a new API key
Body fieldTypeDescription
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

GET /billing/usage Today's usage and limits
# Example response
{
  "date": "2026-04-10",
  "tier": "free",
  "usage": {
    "data": 42,
    "text": 3,
    "automation": 0
  },
  "limits": {
    "data": 100,
    "text": 10,
    "automation": 5
  }
}