Skip to main content
Always pass website URL or UUID for company — not the display name The company parameter expects a full website URL (e.g. "https://canva.com"). A bare display name ("Canva") will not resolve correctly. If you only have a company name, use the Company Search API to look up the website URL or UUID first:
search = requests.get(
    "https://api.akta.pro/api/v1/company/search",
    headers={"x-api-key": API_KEY},
    params={"name": "Canva"}
)
website = search.json()["data"][0]["website"]   # "https://canva.com"
Use sentiment_list, type_list, and news_score_list — not the singular forms All three filter parameters use the _list suffix. The forms sentiment, type, and news_score are not valid parameters and are silently ignored if passed. This is the most common integration mistake.
# ❌ Silently ignored — no filtering applied
params = {"company": "https://canva.com", "sentiment": "positive"}

# ✅ Correct parameter names
params = {"company": "https://canva.com", "sentiment_list": "positive"}
Understand what each filter does and combine them deliberately The three filter parameters work independently and additively — all active filters must match for an article to be returned:
  • sentiment_list — filters by the AI-assigned article sentiment (positive, negative, neutral)
  • type_list — filters by the event type tag (e.g. Equity Fund-Raising, Layoffs). Download the full list of type codes to see all accepted values
  • news_score_list — filters by relevance tier (High, Medium, Low). Use High for daily monitoring briefings where signal density matters; use all for research pulls where recall is more important than precision
Combining them narrows the result set aggressively. For example, sentiment_list=negative + news_score_list=High returns only high-relevance adverse articles — useful for portfolio risk monitoring but may miss lower-profile negative signals if used for comprehensive diligence:
# Portfolio monitoring — high-signal adverse articles only
params = {
    "company":        "https://stripe.com",
    "sentiment_list": "negative",
    "news_score_list": "High",
    "start_date":     "2024-01-01"
}

# Comprehensive diligence — all adverse articles, no score filter
params = {
    "company":        "https://stripe.com",
    "sentiment_list": "negative",
    "start_date":     "2024-01-01"
}
Set start_date explicitly — the default lookback is capped at 6 months Without a start_date, the API defaults to 6 months ago for non-enterprise plans. For research and historical analysis on enterprise plans, always set the date range explicitly so the window is predictable and reproducible: Combine company and industry to scope multi-sector companies For companies that operate across multiple sectors (e.g. Amazon in retail, cloud, and logistics), passing industry alongside company narrows results to articles classified under that specific sector. This reduces noise from unrelated coverage:
# Amazon cloud coverage only — exclude retail, logistics, and media noise
params = {
    "company":  "https://amazon.com",
    "industry": "Cloud Computing",
    "limit":    50
}
Use full_text for LLM pipelines — fall back to ai_summary when empty full_text contains the complete article body and is the right input for embedding, RAG, and summarisation pipelines. For paywalled or restricted articles it may be empty — always fall back to ai_summary so your pipeline never receives blank content:
content = article.get("full_text", "").strip() or article.get("ai_summary", "")