> ## Documentation Index
> Fetch the complete documentation index at: https://docs.asksurf.ai/llms.txt
> Use this file to discover all available pages before exploring further.

# Social Analytics



## OpenAPI

````yaml openapi.json GET /gateway/v1/social/detail
openapi: 3.1.0
info:
  title: Hermod
  version: 0.0.1
servers:
  - url: https://api.asksurf.ai
security: []
paths:
  /gateway/v1/social/detail:
    get:
      tags:
        - Social
      summary: Aggregated Social Analytics
      description: >-
        Returns a **point-in-time snapshot** of social analytics for a project.


        **Available fields** (via `fields`): `sentiment`, `follower_geo`,
        `smart_followers`.


        **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 account.


        For sentiment **trends over time**, use `/social/mindshare` instead.
      operationId: social-detail
      parameters:
        - description: Numeric X (Twitter) account ID (takes priority over `q`)
          explode: false
          in: query
          name: x_id
          schema:
            description: Numeric X (Twitter) account ID (takes priority over `q`)
            examples:
              - '984188226826010624'
            type: string
        - description: Entity name to resolve like `uniswap`, `ethereum`, or `aave`
          explode: false
          in: query
          name: q
          schema:
            description: Entity name to resolve like `uniswap`, `ethereum`, or `aave`
            examples:
              - uniswap
            type: string
        - description: >-
            Comma-separated sub-resources to include. Can be `sentiment`,
            `follower_geo`, or `smart_followers`.
          explode: false
          in: query
          name: fields
          schema:
            default: sentiment,follower_geo,smart_followers
            description: >-
              Comma-separated sub-resources to include. Can be `sentiment`,
              `follower_geo`, or `smart_followers`.
            examples:
              - sentiment
            type: string
        - description: >-
            Timeframe for sentiment data. Can be `24h`, `48h`, `7d`, `30d`,
            `3m`, `6m`, or `1y`.
          explode: false
          in: query
          name: time_range
          schema:
            default: 7d
            description: >-
              Timeframe for sentiment data. Can be `24h`, `48h`, `7d`, `30d`,
              `3m`, `6m`, or `1y`.
            enum:
              - 24h
              - 48h
              - 7d
              - 30d
              - 3m
              - 6m
              - 1y
            examples:
              - 7d
            type: string
        - description: Max geo locations to return
          explode: false
          in: query
          name: geo_limit
          schema:
            default: 20
            description: Max geo locations to return
            examples:
              - 10
            format: int64
            maximum: 100
            minimum: 1
            type: integer
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/DataObjectResponseSocialDetailBody'
          description: OK
        default:
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/DataAPIError'
          description: Error
      security:
        - AccessToken: []
components:
  schemas:
    DataObjectResponseSocialDetailBody:
      additionalProperties: false
      properties:
        $schema:
          description: A URL to the JSON Schema for this object.
          examples:
            - >-
              https://example.com/schemas/DataObjectResponseSocialDetailBody.json
          format: uri
          readOnly: true
          type: string
        data:
          $ref: '#/components/schemas/SocialDetailBody'
        meta:
          $ref: '#/components/schemas/ObjectResponseMeta'
      required:
        - data
        - meta
      type: object
    DataAPIError:
      additionalProperties: false
      properties:
        $schema:
          description: A URL to the JSON Schema for this object.
          examples:
            - https://example.com/schemas/DataAPIError.json
          format: uri
          readOnly: true
          type: string
        error:
          $ref: '#/components/schemas/DataAPIErrorDetail'
      required:
        - error
      type: object
    SocialDetailBody:
      additionalProperties: false
      properties:
        follower_geo:
          $ref: '#/components/schemas/FollowerGeoData'
          description: Geographic breakdown of followers
        project_id:
          description: >-
            Surf project UUID — pass as 'id' parameter to /project/detail,
            /project/events, or /project/defi/metrics. Omitted for direct x_id
            lookups.
          type: string
        project_name:
          description: Project name (omitted for direct x_id lookups)
          type: string
        sentiment:
          $ref: '#/components/schemas/SentimentData'
          description: Sentiment analysis data for the project
        smart_followers:
          $ref: '#/components/schemas/SmartFollowersData'
          description: Top smart followers for the project
        twitter_id:
          description: Numeric X (Twitter) account ID
          type: string
      required:
        - twitter_id
      type: object
    ObjectResponseMeta:
      additionalProperties: false
      properties:
        cached:
          description: Whether this response was served from cache
          type: boolean
        credits_used:
          description: Credits deducted for this request
          format: int64
          type: integer
      required:
        - credits_used
        - cached
      type: object
    DataAPIErrorDetail:
      additionalProperties: false
      properties:
        code:
          type: string
        message:
          type: string
      required:
        - code
        - message
      type: object
    FollowerGeoData:
      additionalProperties: false
      properties:
        locations:
          description: Follower count breakdown by geographic location
          items:
            $ref: '#/components/schemas/FollowerGeoItem'
          type:
            - array
            - 'null'
        total_follower_count:
          description: Total number of followers across all locations
          format: int64
          type: integer
      required:
        - total_follower_count
        - locations
      type: object
    SentimentData:
      additionalProperties: false
      properties:
        score:
          description: Sentiment score from -1 (very negative) to 1 (very positive)
          format: double
          type:
            - number
            - 'null'
        time_range:
          description: Time range for the sentiment analysis like 7d or 30d
          type: string
      required:
        - score
        - time_range
      type: object
    SmartFollowersData:
      additionalProperties: false
      properties:
        count:
          description: Total number of smart followers
          format: int64
          type: integer
        followers:
          description: List of top smart followers sorted by influence score
          items:
            $ref: '#/components/schemas/SmartFollowerItem'
          type:
            - array
            - 'null'
      required:
        - count
        - followers
      type: object
    FollowerGeoItem:
      additionalProperties: false
      properties:
        follower_count:
          description: Number of followers in this location
          format: int64
          type: integer
        location:
          description: Geographic location name like a country or region
          type: string
        percentage:
          description: Percentage of total followers in this location (0-100)
          format: double
          type: number
      required:
        - location
        - follower_count
        - percentage
      type: object
    SmartFollowerItem:
      additionalProperties: false
      properties:
        avatar:
          description: Profile image URL
          type: string
        description:
          description: Human-readable description of the follower's role
          type: string
        followers_count:
          description: Number of followers this account has
          format: int64
          type: integer
        handle:
          description: X (Twitter) handle without the @ prefix
          type: string
        name:
          description: Display name of the follower
          type: string
        rank:
          description: Rank position among smart followers (1 = highest)
          format: int32
          type: integer
        score:
          description: Smart follower influence score
          format: double
          type: number
        tag:
          description: Smart follower category tag like VC, KOL, or Developer
          type: string
        twitter_id:
          description: Numeric X (Twitter) user ID
          type: string
      required:
        - twitter_id
        - tag
        - name
        - handle
        - avatar
        - followers_count
        - rank
        - score
      type: object

````