API Documentation
Access your data programmatically using our REST API
Getting Started
1. Get Your API Key
Navigate to your Profile page and click on the "API" tab to generate your API key.
2. Authentication
Include your API key in the Authorization header of every request:
Authorization: Bearer YOUR_API_KEY
3. Base URL
All API requests should be made to:
https://trends.smartestcrowd.com/api/v1/
Read Endpoints (GET)
/api/v1/me
Get the profile for the user that owns the API key: id, email, username, full name, bio, avatar URL, timezone, account timestamps, flags, mode, and active membership summary (plan_slug, plan_name, status) or null if none. Does not return your API key, password, or embedded photo blobs.
Show Example
curl -H "Authorization: Bearer YOUR_API_KEY" \
https://trends.smartestcrowd.com/api/v1/me
/api/v1/teams
Get all teams you are a member of.
Show Example
curl -H "Authorization: Bearer YOUR_API_KEY" \
https://trends.smartestcrowd.com/api/v1/teams
/api/v1/ideas
Get all ideas you have created.
Query parameters: page (default: 1), per_page (default: 50, max: 100), sort (default: created_at), order (default: desc).
sort must be one of: created_at, last_message_at, title, topic_id, mode. order is asc or desc. Ideas with no last message sort last when ordering by last_message_at.
The JSON response echoes the applied sort and order alongside ideas, total, and pagination fields.
Show Example
curl -H "Authorization: Bearer YOUR_API_KEY" \
"https://trends.smartestcrowd.com/api/v1/ideas?page=1&per_page=20&sort=title&order=asc"
/api/v1/topics
Get all topics you have created or have ideas in.
Query Parameters: page (default: 1), per_page (default: 50, max: 100)
Show Example
curl -H "Authorization: Bearer YOUR_API_KEY" \
https://trends.smartestcrowd.com/api/v1/topics
/api/v1/trends
Get all trends associated with your teams.
Show Example
curl -H "Authorization: Bearer YOUR_API_KEY" \
https://trends.smartestcrowd.com/api/v1/trends
/api/v1/tagged-items
Get all tagged items you created or in your teams.
Show Example
curl -H "Authorization: Bearer YOUR_API_KEY" \
https://trends.smartestcrowd.com/api/v1/tagged-items
/api/v1/decisions
Get all decisions you have access to.
Show Example
curl -H "Authorization: Bearer YOUR_API_KEY" \
https://trends.smartestcrowd.com/api/v1/decisions
/api/v1/decision-groups
Get all decision groups for your decisions.
Show Example
curl -H "Authorization: Bearer YOUR_API_KEY" \
https://trends.smartestcrowd.com/api/v1/decision-groups
/api/v1/decision-inputs
Get all decision inputs for your decisions.
Show Example
curl -H "Authorization: Bearer YOUR_API_KEY" \
https://trends.smartestcrowd.com/api/v1/decision-inputs
/api/v1/orgs
Get all organizations.
Query Parameters: page (default: 1), per_page (default: 50, max: 100)
Show Example
curl -H "Authorization: Bearer YOUR_API_KEY" \
https://trends.smartestcrowd.com/api/v1/orgs
/api/v1/links
Get all links you have created (includes link targets).
Query Parameters: page (default: 1), per_page (default: 50, max: 100)
Show Example
curl -H "Authorization: Bearer YOUR_API_KEY" \
https://trends.smartestcrowd.com/api/v1/links
/api/v1/competitors
Get all competitors.
Query Parameters: page (default: 1), per_page (default: 50, max: 100)
Show Example
curl -H "Authorization: Bearer YOUR_API_KEY" \
https://trends.smartestcrowd.com/api/v1/competitors
/api/v1/reports
Get all reports you can access. Query: access_type (all, team, consultant, team_or_consultant).
Show Example
curl -H "Authorization: Bearer YOUR_API_KEY" \
https://trends.smartestcrowd.com/api/v1/reports
/api/v1/reports/<report_id>/sections
Get all sections (notes) for a report.
Show Example
curl -H "Authorization: Bearer YOUR_API_KEY" \
https://trends.smartestcrowd.com/api/v1/reports/REPORT_ID/sections
/api/v1/tasks
Get tasks visible to you (created by you, assigned to you or your team, or attached to targets you can view).
Query Parameters: status (optional: open, in_progress, done, cancelled), limit (default: 100, max: 200), offset (default: 0)
Show Example
curl -H "Authorization: Bearer YOUR_API_KEY" \
"https://trends.smartestcrowd.com/api/v1/tasks?status=open&limit=50"
/api/v1/tasks/<task_id>
Get a single task by ID. Returns 403 if you cannot see the task.
Show Example
curl -H "Authorization: Bearer YOUR_API_KEY" \
https://trends.smartestcrowd.com/api/v1/tasks/TASK_UUID
/api/v1/watching/creators/opinions
Returns active opinions on concepts (idea_templates) from creators you watch on the Watching page: watchable types team or source (YouTube channel sources resolve to their creator team). Newest opinions first. Authenticate with Authorization: Bearer YOUR_API_KEY like other v1 routes.
Query parameters
tags— optional. One or more tag names (repeat the parameter or comma-separated). Tags are those you attached to creator watches (Watching → Creators).tag_match— optional:or(default) orand.limit— optional; default200, max500.
Response — opinions (array of opinion objects with id, stock_symbol, date, opinion (explanation text; null unless the API user has Pro membership or is a site admin), score, creator_site, creator_handle, subscriber_count) and meta (watched_creators, returned, limit, tag_match, unrecognized_tags).
Analytics — Successful v1 and session calls are aggregated in Admin → Analytics → APIs under the route label GET /api/watching/creators/opinions.
Session alias (same JSON): GET /api/watching/creators/opinions when logged in (browser cookie). Use fetch(url, { credentials: 'same-origin' }) from this site.
Errors — 400 for invalid tag_match or unknown tag names.
Show curl example (API key)
curl -s -H "Authorization: Bearer YOUR_API_KEY" \
"https://trends.smartestcrowd.com/api/v1/watching/creators/opinions?tag_match=or&limit=100"
Write Endpoints (POST / PATCH)
/api/v1/reports
Create a report for an idea. Body: idea_id, title, string_key (required), template_id (optional).
/api/v1/reports/<report_id>
Update a report. Body: title, string_key (optional).
/api/v1/reports/<report_id>/sections
Create a report section (note). Body: title (required), summary, details, order_index, template_id (optional).
/api/v1/reports/<report_id>/sections/<section_id>
Update a report section. Body: title, summary, details, order_index (optional).
/api/v1/topics
Create a new topic.
Required fields: title
Optional fields: description, volume, growth, permission
Show Example
curl -X POST -H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{"title": "AI Agents", "description": "Autonomous AI agents", "volume": "1000", "growth": "25%"}' \
https://trends.smartestcrowd.com/api/v1/topics
/api/v1/trends
Create a new trend. team_id is optional but requires admin or moderator role.
Option 1: Create trend with existing topic - Required: topic_id, labels (array), values (array)
Option 2: Create topic and trend together - Required: topic (object with title), labels (array), values (array)
Optional fields: team_id (requires admin/moderator role), topic.description, topic.volume, topic.growth, topic.permission
Show Examples
With existing topic:
curl -X POST -H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{"topic_id": "123-abc", "labels": ["Jan", "Feb", "Mar"], "values": [100, 150, 200], "team_id": "team-456"}' \
https://trends.smartestcrowd.com/api/v1/trends
Create topic and trend together:
curl -X POST -H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"topic": {
"title": "AI Agents",
"description": "Autonomous AI agents",
"volume": "1000",
"growth": "25%"
},
"labels": ["Jan", "Feb", "Mar"],
"values": [100, 150, 200]
}' \
https://trends.smartestcrowd.com/api/v1/trends
/api/v1/orgs
Create a new organization.
Required fields: title, type
Valid types: business, organization, non_profit, group
Show Example
curl -X POST -H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{"title": "Acme Corp", "type": "business"}' \
https://trends.smartestcrowd.com/api/v1/orgs
/api/v1/links
Create a new link with optional link targets.
Required fields: title, url
Optional fields: published_at (ISO date), link_targets (array)
Link target types: org, idea, trend, topic, decision_group
Show Example
curl -X POST -H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"title": "AI Research Article",
"url": "https://example.com/ai-article",
"published_at": "2026-01-18T10:00:00Z",
"link_targets": [
{"target_type": "topic", "target_id": "topic-123"},
{"target_type": "idea", "target_id": "idea-456"}
]
}' \
https://trends.smartestcrowd.com/api/v1/links
/api/v1/competitors
Create a new competitor.
Required fields: force_type, force_id
Optional fields: title, user_id, source_type, source_id, org_id
Force types: Org, Topic, Idea, Report
Source types: User, Link
Show Example
curl -X POST -H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"force_type": "Org",
"force_id": "org-123",
"title": "Main Competitor",
"source_type": "User",
"source_id": "user-456",
"org_id": "org-123"
}' \
https://trends.smartestcrowd.com/api/v1/competitors
/api/v1/decision-groups
Create a new decision group. Requires access to the decision.
Required fields: decision_id, title
Optional fields: description, order_index (default: 0)
Show Example
curl -X POST -H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"decision_id": "decision-123",
"title": "Market Analysis",
"description": "Analysis of market conditions",
"order_index": 1
}' \
https://trends.smartestcrowd.com/api/v1/decision-groups
/api/v1/decision-inputs
Create a new decision input. Requires access to the decision.
Required fields: decision_group_id, input_type, input_id
Optional fields: order_index (default: 0)
Input types: idea, report, competitor
Show Example
curl -X POST -H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"decision_group_id": "group-123",
"input_type": "idea",
"input_id": "idea-456",
"order_index": 0
}' \
https://trends.smartestcrowd.com/api/v1/decision-inputs
/api/v1/ideas
Create a new idea.
Required fields: title, description, topic_id
Optional fields: contest_id, mode, is_custom, consultant_id, generated_by, inspired_by_id
Show Example
curl -X POST -H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"title": "AI-Powered Analytics Platform",
"description": "A platform that uses AI to analyze business data",
"topic_id": "topic-123",
"mode": "startups",
"is_custom": false
}' \
https://trends.smartestcrowd.com/api/v1/ideas
/api/v1/tasks
Create a task attached to any object (idea, topic, report, note). When assigned to a team, the team webhook is pinged.
Required: target_type (idea, topic, report, note), target_id, title
Optional: description, prompt, status (default open), assignee_team_id, assignee_user_id, assigner_team_id, due_at (ISO datetime)
Show Example
curl -X POST -H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"target_type": "idea",
"target_id": "idea-123",
"title": "Review draft report",
"description": "Check tone and facts",
"assignee_team_id": "team-456",
"assigner_team_id": "team-789"
}' \
https://trends.smartestcrowd.com/api/v1/tasks
/api/v1/tasks/<task_id>
Update a task (status, title, description, prompt, assignment, due_at). Only if you can see the task. Assigning to a team triggers the team webhook.
Optional body fields: title, description, prompt, status, assignee_team_id, assignee_user_id, assigner_team_id, due_at
Show Example
curl -X PATCH -H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{"status": "in_progress"}' \
https://trends.smartestcrowd.com/api/v1/tasks/TASK_UUID
Response Format
All API responses are returned in JSON format.
Success Response
{
"success": true,
"count": 10,
"data": [...]
}
Error Response
{
"error": "Error message here",
"message": "Additional details (optional)"
}
Rate Limits & Best Practices
- • Keep your API key secure and never share it publicly
- • Regenerate your API key immediately if it's compromised
- • Use pagination for large datasets (ideas, topics)
- • Cache responses when possible to reduce API calls
- • Handle errors gracefully in your application
Need Help?
If you have questions or need assistance with the API, please contact support or visit our Profile page to manage your API key.