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)

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
GET /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
GET /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
GET /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
GET /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
GET /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
GET /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
GET /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
GET /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
GET /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
GET /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
GET /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"
GET /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)

POST /api/v1/reports

Create a report for an idea. Body: idea_id, title, string_key (required), template_id (optional).

PATCH /api/v1/reports/<report_id>

Update a report. Body: title, string_key (optional).

POST /api/v1/reports/<report_id>/sections

Create a report section (note). Body: title (required), summary, details, order_index, template_id (optional).

PATCH /api/v1/reports/<report_id>/sections/<section_id>

Update a report section. Body: title, summary, details, order_index (optional).

POST /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
POST /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
POST /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
POST /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
POST /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
POST /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
POST /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
POST /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
POST /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
PATCH /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.