{
  "opencollection": "1.0.0",
  "info": {
    "name": "Hermod DEX Social API",
    "version": "sha-80d3407"
  },
  "items": [
    {
      "info": {
        "name": "Social",
        "type": "folder"
      },
      "items": [
        {
          "info": {
            "name": "Aggregated Social Analytics",
            "type": "http"
          },
          "http": {
            "method": "GET",
            "url": "/gateway/v1/social/detail",
            "params": [
              {
                "name": "x_id",
                "value": "",
                "type": "query",
                "description": "Numeric X (Twitter) account ID (takes priority over `q`)"
              },
              {
                "name": "q",
                "value": "",
                "type": "query",
                "description": "Entity name to resolve like `uniswap`, `ethereum`, or `aave`"
              },
              {
                "name": "fields",
                "value": "",
                "type": "query",
                "description": "Comma-separated sub-resources to include. Can be `sentiment`, `follower_geo`, or `smart_followers`."
              },
              {
                "name": "time_range",
                "value": "",
                "type": "query",
                "description": "Window to aggregate sentiment data over: `24h`, `48h`, `7d`, `30d`, `3m`, `6m`, or `1y`. Returns a single snapshot (not a time-series). This endpoint uses `time_range` only — it does NOT accept `interval`. For mindshare time-series use /v1/social/mindshare."
              },
              {
                "name": "geo_limit",
                "value": "",
                "type": "query",
                "description": "Max geo locations to return"
              }
            ],
            "auth": {
              "type": "bearer",
              "token": "{{bearerToken}}"
            }
          },
          "docs": "Returns Twitter/X analytics for a crypto project: sentiment score, follower geography, and smart follower breakdown (VCs, KOLs, developers). For individual user profiles use `social-user` instead.\n\n**Available fields** (via `fields`): `sentiment`, `follower_geo`, `smart_followers`.\n\n**Lookup:** by X account ID (`x_id`) or project name (`q`, e.g. `uniswap`, `solana`). The `q` parameter must be a crypto project name, not a personal Twitter handle. Returns 404 if the project has no linked Twitter a"
        },
        {
          "info": {
            "name": "Project Mindshare Time Series",
            "type": "http"
          },
          "http": {
            "method": "GET",
            "url": "/gateway/v1/social/mindshare",
            "params": [
              {
                "name": "id",
                "value": "",
                "type": "query",
                "description": "Surf project UUID. Provide one of `id` or `q`."
              },
              {
                "name": "q",
                "value": "",
                "type": "query",
                "description": "Entity name to resolve like `uniswap`, `ethereum`, or `aave`. Provide one of `id` or `q`."
              },
              {
                "name": "interval",
                "value": "",
                "type": "query",
                "description": "Bucket size for each point in the returned time-series: `5m`, `1h`, `1d`, or `7d`. This is NOT a window — this endpoint has no default window, pass `from`/`to` to bound the range. Not the same parameter as `time_range` (which does not exist on this endpoint). Note: when `include_tag_percents=true`, `5m` falls back to hourly data for the per-tag series (Argus has no 5m granularity for tag percentages)."
              },
              {
                "name": "from",
                "value": "",
                "type": "query",
                "description": "Start timestamp. Accepts Unix seconds (1704067200) or date string (2024-01-01)"
              },
              {
                "name": "to",
                "value": "",
                "type": "query",
                "description": "End timestamp. Accepts Unix seconds (1706745600) or date string (2024-02-01)"
              },
              {
                "name": "include_tag_percents",
                "value": "",
                "type": "query",
                "description": "Set to `true` to additionally return per-tag mindshare percentage time-series in the `tag_percents` field. A project can belong to multiple tags; each tag returns its own sparse time-series (values are 0~100 percentages, not ratios). Default `false` — response shape is byte-identical to the legacy format."
              },
              {
                "name": "source",
                "value": "",
                "type": "query",
                "description": "Data lane: `x` (X/Twitter, default) or `binance_square` (Binance Square). Response shape is identical across sources."
              }
            ],
            "auth": {
              "type": "bearer",
              "token": "{{bearerToken}}"
            }
          },
          "docs": "Returns mindshare (social view count) **time-series trend** for a project, aggregated by `interval`.\n\n**Intervals:** `5m`, `1h`, `1d`, `7d`. `interval` is REQUIRED.\n\n**Filters:** date range with `from`/`to` (Unix seconds). Lookup by Surf project UUID (`id`) or by name (`q`) — exactly one of the two is required.\n\n**No pagination and no `time_range`** — this endpoint does NOT accept `limit`, `offset`, or `time_range`. Size of the returned series is controlled by `from`/`to` divided by `interval`.\n"
        },
        {
          "info": {
            "name": "Social Mindshare Ranking",
            "type": "http"
          },
          "http": {
            "method": "GET",
            "url": "/gateway/v1/social/ranking",
            "params": [
              {
                "name": "offset",
                "value": "",
                "type": "query",
                "description": "Pagination offset"
              },
              {
                "name": "limit",
                "value": "",
                "type": "query",
                "description": "Results per page"
              },
              {
                "name": "tag",
                "value": "",
                "type": "query",
                "description": "Filter by project category. `l1` = Layer 1, `l2` = Layer 2/scaling, `dex` = DEX/AMM, `derivatives` = perps/options, `cex` = centralized exchange, `gamefi` = gaming, `nft` = NFT collections, `oracle` = oracle, `prediction` = prediction market, `rwa` = real-world assets, `yield` = yield/asset management, `data` = data/analytics, `devtool` = developer tooling, `compliance` = compliance/regtech, `meme` = meme/token launchpad."
              },
              {
                "name": "time_range",
                "value": "",
                "type": "query",
                "description": "Window to compute the ranking over: `24h`, `48h`, `7d`, or `30d`. Returns a single ranked snapshot (not a time-series). This endpoint uses `time_range` only — it does NOT accept `interval`."
              },
              {
                "name": "sentiment",
                "value": "",
                "type": "query",
                "description": "Filter by sentiment polarity. Only projects with sufficient tweet data are classified."
              },
              {
                "name": "source",
                "value": "",
                "type": "query",
                "description": "Data lane: `x` (X/Twitter, default) or `binance_square` (Binance Square). Response shape is identical across sources."
              }
            ],
            "auth": {
              "type": "bearer",
              "token": "{{bearerToken}}"
            }
          },
          "docs": "Returns top crypto projects ranked by mindshare (social view count), refreshed every 5 minutes.\n\n**Filters:**\n- `tag` — scope to a category (e.g. `dex`, `l1`, `meme`)\n- `time_range` — ranking window (`24h`, `48h`, `7d`, `30d`)\n\nSupports `limit`/`offset` pagination."
        },
        {
          "info": {
            "name": "Social Sentiment",
            "type": "http"
          },
          "http": {
            "method": "GET",
            "url": "/gateway/v1/social/sentiment",
            "params": [
              {
                "name": "id",
                "value": "",
                "type": "query",
                "description": "Surf project UUID"
              },
              {
                "name": "q",
                "value": "",
                "type": "query",
                "description": "Project name or symbol for entity resolution"
              }
            ],
            "auth": {
              "type": "bearer",
              "token": "{{bearerToken}}"
            }
          },
          "docs": "Returns the aggregate social sentiment score for a project.\n\nScore ranges from -1.0 (bearish) to 1.0 (bullish)."
        },
        {
          "info": {
            "name": "Smart Follower Count History",
            "type": "http"
          },
          "http": {
            "method": "GET",
            "url": "/gateway/v1/social/smart-followers/history",
            "params": [
              {
                "name": "x_id",
                "value": "",
                "type": "query",
                "description": "Numeric X (Twitter) account ID (takes priority over `q`)"
              },
              {
                "name": "q",
                "value": "",
                "type": "query",
                "description": "Project name to resolve (e.g. `uniswap`, `ethereum`). Must be a project with a linked X account — personal handles like `VitalikButerin` return 404. Use `x_id` for individual accounts."
              },
              {
                "name": "limit",
                "value": "",
                "type": "query",
                "description": "Max data points to return (upstream typically provides ~36 daily points)"
              }
            ],
            "auth": {
              "type": "bearer",
              "token": "{{bearerToken}}"
            }
          },
          "docs": "Returns smart follower count time-series for a project, sorted by date descending.\n\n**Lookup:** by X account ID (`x_id`) or project name (`q`). The `q` parameter must be a project name (e.g. `uniswap`, `ethereum`), not a personal X handle — use `x_id` for individual accounts. Returns 404 if the project has no linked X account."
        },
        {
          "info": {
            "name": "Tweet Replies",
            "type": "http"
          },
          "http": {
            "method": "GET",
            "url": "/gateway/v1/social/tweet/replies",
            "params": [
              {
                "name": "tweet_id",
                "value": "",
                "type": "query",
                "description": "Tweet ID to get replies for"
              },
              {
                "name": "limit",
                "value": "",
                "type": "query",
                "description": "Max results to return"
              },
              {
                "name": "cursor",
                "value": "",
                "type": "query",
                "description": "Opaque cursor token from a previous response's next_cursor field for fetching the next page"
              }
            ],
            "auth": {
              "type": "bearer",
              "token": "{{bearerToken}}"
            }
          },
          "docs": "Returns replies/comments on a specific tweet.\n\n**Lookup:** by `tweet_id`."
        },
        {
          "info": {
            "name": "Social Posts by IDs",
            "type": "http"
          },
          "http": {
            "method": "GET",
            "url": "/gateway/v1/social/tweets",
            "params": [
              {
                "name": "ids",
                "value": "",
                "type": "query",
                "description": "Comma-separated numeric post ID strings, max 100"
              }
            ],
            "auth": {
              "type": "bearer",
              "token": "{{bearerToken}}"
            }
          },
          "docs": "Returns X (Twitter) posts by numeric post ID strings.\n\nPass up to 100 comma-separated IDs via the `ids` query parameter."
        },
        {
          "info": {
            "name": "Social User Profile",
            "type": "http"
          },
          "http": {
            "method": "GET",
            "url": "/gateway/v1/social/user",
            "params": [
              {
                "name": "handle",
                "value": "",
                "type": "query",
                "description": "X (Twitter) username without @ like `cz_binance` or `vitalikbuterin`"
              }
            ],
            "auth": {
              "type": "bearer",
              "token": "{{bearerToken}}"
            }
          },
          "docs": "Returns a basic X/Twitter profile (name, bio, avatar, follower/following counts) for any handle. For crypto project social analytics (sentiment, smart followers, geo), use `social-detail` instead.\n\n**Lookup:** by `handle` (without @)."
        },
        {
          "info": {
            "name": "User Followers List",
            "type": "http"
          },
          "http": {
            "method": "GET",
            "url": "/gateway/v1/social/user/followers",
            "params": [
              {
                "name": "handle",
                "value": "",
                "type": "query",
                "description": "X (Twitter) username without @ like `vitalikbuterin` or `cz_binance`"
              },
              {
                "name": "limit",
                "value": "",
                "type": "query",
                "description": "Max results to return"
              },
              {
                "name": "cursor",
                "value": "",
                "type": "query",
                "description": "Opaque cursor token from a previous response's next_cursor field for fetching the next page"
              }
            ],
            "auth": {
              "type": "bearer",
              "token": "{{bearerToken}}"
            }
          },
          "docs": "Returns a list of followers for the specified handle on X (Twitter).\n\n**Lookup:** by `handle` (without @)."
        },
        {
          "info": {
            "name": "User Following List",
            "type": "http"
          },
          "http": {
            "method": "GET",
            "url": "/gateway/v1/social/user/following",
            "params": [
              {
                "name": "handle",
                "value": "",
                "type": "query",
                "description": "X (Twitter) username without @ like `vitalikbuterin` or `cz_binance`"
              },
              {
                "name": "limit",
                "value": "",
                "type": "query",
                "description": "Max results to return"
              },
              {
                "name": "cursor",
                "value": "",
                "type": "query",
                "description": "Opaque cursor token from a previous response's next_cursor field for fetching the next page"
              }
            ],
            "auth": {
              "type": "bearer",
              "token": "{{bearerToken}}"
            }
          },
          "docs": "Returns a list of users that the specified handle follows on X (Twitter).\n\n**Lookup:** by `handle` (without @)."
        },
        {
          "info": {
            "name": "User Social Posts",
            "type": "http"
          },
          "http": {
            "method": "GET",
            "url": "/gateway/v1/social/user/posts",
            "params": [
              {
                "name": "handle",
                "value": "",
                "type": "query",
                "description": "X (Twitter) username without @ like `vitalikbuterin` or `cz_binance`"
              },
              {
                "name": "limit",
                "value": "",
                "type": "query",
                "description": "Results per page"
              },
              {
                "name": "cursor",
                "value": "",
                "type": "query",
                "description": "Opaque cursor token from a previous response's next_cursor field for fetching the next page"
              },
              {
                "name": "filter",
                "value": "",
                "type": "query",
                "description": "Filter tweets: `all` returns everything, `original` excludes retweets"
              }
            ],
            "auth": {
              "type": "bearer",
              "token": "{{bearerToken}}"
            }
          },
          "docs": "Returns recent X (Twitter) posts by a specific user, ordered by recency.\n\n**Lookup:** by `handle` (without @). Use `filter=original` to exclude retweets.\n\n**Pagination:** check `meta.has_more`; if true, pass `meta.next_cursor` as the `cursor` query parameter in the next request."
        },
        {
          "info": {
            "name": "User Replies",
            "type": "http"
          },
          "http": {
            "method": "GET",
            "url": "/gateway/v1/social/user/replies",
            "params": [
              {
                "name": "handle",
                "value": "",
                "type": "query",
                "description": "X (Twitter) username without @ like `vitalikbuterin` or `cz_binance`"
              },
              {
                "name": "limit",
                "value": "",
                "type": "query",
                "description": "Max results to return"
              },
              {
                "name": "cursor",
                "value": "",
                "type": "query",
                "description": "Opaque cursor token from a previous response's next_cursor field for fetching the next page"
              }
            ],
            "auth": {
              "type": "bearer",
              "token": "{{bearerToken}}"
            }
          },
          "docs": "Returns recent replies by the specified handle on X (Twitter).\n\n**Lookup:** by `handle` (without @)."
        }
      ]
    }
  ],
  "bundled": true
}