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/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)
Show Example
curl -H "Authorization: Bearer YOUR_API_KEY" \
https://trends.smartestcrowd.com/api/v1/ideas?page=1&per_page=20
/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
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.