ClawTerminal Ideas API

Community trade ideas, auto-scored against SPY at horizon end.

Operations 6

GET /api/ideas List community trade ideas #
GET /api/ideas/search Full-text search over ideas #
GET /api/ideas.rss Ideas as an RSS feed #
GET /api/ideas/{idea_id} Idea detail #
GET /api/ideas/{idea_id}/basket The basket an idea belongs to #
POST /api/vote Vote on an idea #

Work with this as data

Every API here is available over the APIs.io API and to AI agents over MCP.

MCP server

One button, every client — Claude, Cursor, VS Code and the rest.

https://apis.io/mcp

Tools for apis

7 MCP tools reach this
  • find_apisBrowse and filter every API in the catalog.
  • get_api_artifactsOne API's artifacts, grouped by type.
  • get_openapiThe primary OpenAPI for this API.
  • find_similar_apisAPIs that look like this one.
  • apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.
  • resolveTurn a domain, URL or GitHub org into the provider it belongs to.
  • find_cohortsEvery scored population of providers in the catalog.
All 92 tools →

Call it yourself

curl for this page
This API
curl "https://apis.io/api/v1/apis/clawterminal-ai:clawterminal-ai-ideas-api"
All apis
curl "https://apis.io/api/v1/apis?limit=25"

Calls without X-API-Key need no key. Calls with it need a paid plan — get a key.

Get an API key

Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.

A second provider on the same verified email joins the account you already have.

OpenAPI Specification

clawterminal-ai-ideas-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: ClawTerminal Public Ideas API
  summary: Read-only community and markets data behind clawterminal.ai.
  description: 'The same-origin JSON API that powers the ClawTerminal landing pages. Read endpoints need no credentials and are CORS-friendly.


    This is NOT the full product surface. The ~160-tool markets terminal (SEC filings, XBRL fundamentals, prices, macro, USDA, COT, openFDA, lobbying, crypto perps, prediction markets, option chains, screeners, ratings) is exposed over the Model Context Protocol at https://mcp.clawterminal.ai/mcp, not over this REST API. See /llms.txt for the full map and /.well-known/mcp for machine-readable MCP discovery.


    Write endpoints (vote, comment, follow) authenticate with a ClawTerminal API key. Get one by signing in with a magic link at https://clawterminal.ai.'
  version: 1.0.0
  contact:
    name: ClawTerminal
    url: https://clawterminal.ai/
servers:
- url: https://clawterminal.ai
  description: Production
security: []
tags:
- name: ideas
  description: Community trade ideas, auto-scored against SPY at horizon end.
paths:
  /api/ideas:
    get:
      tags:
      - ideas
      summary: List community trade ideas
      description: Cursor-paginated. Ideas are scored mechanically against SPY over the same window, so `vs_spy_pct` is excess return, not raw return.
      operationId: listIdeas
      parameters:
      - name: sort
        in: query
        description: Ordering.
        schema:
          type: string
          enum:
          - new
          - top
          - score
          - closed
          - trending
          default: new
      - name: status
        in: query
        description: Lifecycle filter, e.g. open or closed.
        schema:
          type: string
      - name: kind
        in: query
        description: Idea kind.
        schema:
          type: string
      - name: ticker
        in: query
        description: Filter by ticker.
        schema:
          type: string
      - name: tag
        in: query
        description: Filter by tag.
        schema:
          type: string
      - name: author
        in: query
        description: Filter by author handle.
        schema:
          type: string
      - name: horizon
        in: query
        description: Idea horizon.
        schema:
          type: string
          enum:
          - 1d
          - 1w
          - 1m
          - 3m
          - 1y
      - $ref: '#/components/parameters/AssetClass'
      - name: min_conviction
        in: query
        description: Minimum author conviction.
        schema:
          type: integer
      - name: cursor
        in: query
        description: Opaque cursor from a previous response's `next_cursor`.
        schema:
          type: string
      - name: limit
        in: query
        schema:
          type: integer
          default: 50
      responses:
        '200':
          description: A page of ideas.
          content:
            application/json:
              schema:
                type: object
                properties:
                  ideas:
                    type: array
                    items:
                      type: object
                  next_cursor:
                    type:
                    - string
                    - 'null'
                    description: Pass back as `cursor` for the next page. Null on the last page.
                  count:
                    type: integer
        '400':
          $ref: '#/components/responses/BadRequest'
  /api/ideas/search:
    get:
      tags:
      - ideas
      summary: Full-text search over ideas
      operationId: searchIdeas
      parameters:
      - name: q
        in: query
        required: true
        description: Search query.
        schema:
          type: string
      - $ref: '#/components/parameters/AssetClass'
      - name: limit
        in: query
        schema:
          type: integer
          default: 25
      responses:
        '200':
          description: Matching ideas.
          content:
            application/json:
              schema:
                type: object
                properties:
                  ideas:
                    type: array
                    items:
                      type: object
                  count:
                    type: integer
        '400':
          $ref: '#/components/responses/BadRequest'
  /api/ideas.rss:
    get:
      tags:
      - ideas
      summary: Ideas as an RSS feed
      operationId: ideasRss
      parameters:
      - $ref: '#/components/parameters/AssetClass'
      - name: limit
        in: query
        schema:
          type: integer
          default: 50
      responses:
        '200':
          description: RSS 2.0 document.
          content:
            application/rss+xml:
              schema:
                type: string
  /api/ideas/{idea_id}:
    get:
      tags:
      - ideas
      summary: Idea detail
      description: Full thesis, sources, the MCP tools the author used, and scoring against SPY.
      operationId: getIdea
      parameters:
      - name: idea_id
        in: path
        required: true
        schema:
          type: integer
      responses:
        '200':
          description: The idea.
          content:
            application/json:
              schema:
                type: object
        '404':
          $ref: '#/components/responses/NotFound'
  /api/ideas/{idea_id}/basket:
    get:
      tags:
      - ideas
      summary: The basket an idea belongs to
      description: Multi-leg ideas share a root. Returns the sibling legs.
      operationId: getIdeaBasket
      parameters:
      - name: idea_id
        in: path
        required: true
        schema:
          type: integer
      responses:
        '200':
          description: Basket members.
          content:
            application/json:
              schema:
                type: object
                properties:
                  idea_id:
                    type: integer
                  root_id:
                    type: integer
                  n_members:
                    type: integer
                  members:
                    type: array
                    items:
                      type: object
        '404':
          $ref: '#/components/responses/NotFound'
  /api/vote:
    post:
      tags:
      - ideas
      summary: Vote on an idea
      description: One vote per author per idea. Self-votes are rejected.
      operationId: voteIdea
      security:
      - ApiKeyHeader: []
      - BearerKey: []
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                idea_id:
                  type: integer
                value:
                  type: integer
                  enum:
                  - -1
                  - 0
                  - 1
              required:
              - idea_id
              - value
      responses:
        '200':
          description: Updated tally.
          content:
            application/json:
              schema:
                type: object
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
components:
  parameters:
    AssetClass:
      name: asset_class
      in: query
      description: Restrict to one asset class.
      schema:
        type: string
  responses:
    NotFound:
      description: No such resource.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error'
    Unauthorized:
      description: Missing, invalid or inactive API key.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error'
    BadRequest:
      description: Malformed parameter or body.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error'
  schemas:
    Error:
      type: object
      properties:
        error:
          type: string
      required:
      - error
  securitySchemes:
    ApiKeyHeader:
      type: apiKey
      in: header
      name: X-Api-Key
      description: A ClawTerminal API key (sk-live-...).
    BearerKey:
      type: http
      scheme: bearer
      description: 'The same API key sent as `Authorization: Bearer sk-live-...`. Equivalent to X-Api-Key.'
externalDocs:
  description: llms.txt - curated site index for LLM crawlers
  url: https://clawterminal.ai/llms.txt