Dageno Open API
    • Introduction
    • Authentication
    • Errors and Error Responses
    • MCP
    • GEO Analysis Query Parameter Guide
    • API
      • Get brand base information
        GET
      • Execute GEO analysis query
        POST
      • List topics
        GET
      • List prompts
        GET
      • List responses by prompt
        GET
      • Get response detail by prompt
        GET
      • List citation domains
        GET
      • List citation URLs
        GET
      • List citation domains by prompt
        GET
      • List citation URLs by prompt
        GET
      • List content opportunities
        GET
      • List backlink opportunities
        GET
      • List community opportunities
        GET

    GEO Analysis Query Parameter Guide

    Getting started tip: pick the closest example in Section 4, copy it, then modify only your date range and business fields.
    This document explains how to call:
    Method: POST
    Path: /v1/open-api/geo/analysis
    Production URL: https://api.dageno.ai/business/api/v1/open-api/geo/analysis

    1. Prerequisites#

    Include header x-api-key.
    Use Content-Type: application/json.
    Send body in the DSL structure shown below.

    2. Request Body Structure#

    {
      "target": {
        "entity": "topic",
        "metrics": ["visibility", "citation"],
        "filters": {
          "dateRange": {
            "startAt": "2026-03-01T00:00:00.000Z",
            "endAt": "2026-03-28T00:00:00.000Z"
          }
        }
      },
      "analysis": {
        "type": "ranking",
        "ranking": {
          "orderBy": "visibility",
          "direction": "desc"
        }
      }
    }

    2.1 Quick Parameter Template#

    Copy this template and replace placeholders:
    {
      "target": {
        "entity": "<brand|topic|platform>",
        "metrics": ["<metric_1>", "<metric_2_optional>"],
        "filters": {
          "dateRange": {
            "startAt": "<ISO_8601_UTC>",
            "endAt": "<ISO_8601_UTC>"
          }
        }
      },
      "analysis": {
        "type": "<summary|trend|ranking|distribution|correlation|matrix>",
        "ranking": {
          "orderBy": "<metric_key>",
          "direction": "<asc|desc>"
        },
        "matrix": {
          "rowDimension": "<brand|topic>"
        }
      }
    }
    Notes:
    Remove analysis.ranking unless analysis.type = ranking.
    Remove analysis.matrix unless analysis.type = matrix.

    3. Field-by-field Reference#

    FieldTypeRequiredAllowed valuesNotes
    target.entitystringYesbrand, topic, platformAnalysis target dimension
    target.metricsstring[]Yesvisibility, position, sentiment, citation, ai_mentionMust be non-empty
    target.filters.dateRange.startAtstring (ISO 8601)Yese.g. 2026-03-01T00:00:00.000ZUTC recommended
    target.filters.dateRange.endAtstring (ISO 8601)Yese.g. 2026-03-28T00:00:00.000ZUTC recommended
    analysis.typestringYessummary, trend, ranking, distribution, correlation, matrixCore analysis mode
    analysis.ranking.orderBystringConditionalmetric key aboveRequired when analysis.type = ranking; must exist in target.metrics
    analysis.ranking.directionstringConditionalasc, descRequired when analysis.type = ranking
    analysis.matrix.rowDimensionstringConditionalbrand, topicRequired when analysis.type = matrix

    4. Real-world Use Cases (Business-first Examples)#

    This section starts from real analyst questions and then maps to payloads.

    4.0 Quick Mapping: Question -> analysis.type#

    Business questionRecommended analysis.type
    "What is my current performance snapshot?"summary
    "How did metrics change over time?"trend
    "Who is top/bottom this month?"ranking
    "How is share split across groups?"distribution
    "Do two metrics move together?"correlation
    "How do platforms x topics/brands compare in one view?"matrix

    4.1 Scenario: Monthly topic snapshot for GEO review#

    Business question:
    "For this month, which topics have stronger visibility and citation?"
    Recommended payload:
    {
      "target": {
        "entity": "topic",
        "metrics": ["visibility", "citation", "sentiment"],
        "filters": {
          "dateRange": {
            "startAt": "2026-03-01T00:00:00.000Z",
            "endAt": "2026-03-31T23:59:59.999Z"
          }
        }
      },
      "analysis": {
        "type": "summary"
      }
    }
    How to read results:
    Use rows[].topic to identify the topic.
    Compare visibility, citation, and sentiment in the same row for prioritization.

    4.2 Scenario: Weekly brand trend monitoring#

    Business question:
    "Is brand visibility improving week by week during campaign period?"
    Recommended payload:
    {
      "target": {
        "entity": "brand",
        "metrics": ["visibility", "sentiment"],
        "filters": {
          "dateRange": {
            "startAt": "2026-03-01T00:00:00.000Z",
            "endAt": "2026-03-31T23:59:59.999Z"
          }
        }
      },
      "analysis": {
        "type": "trend"
      }
    }
    How to read results:
    rows[] are time-series points keyed by date.
    Track if visibility trend and sentiment trend move in the same direction.

    4.3 Scenario: Platform leaderboard for current month#

    Business question:
    "Which AI platforms drive the strongest visibility this month?"
    Recommended payload:
    {
      "target": {
        "entity": "platform",
        "metrics": ["visibility", "citation"],
        "filters": {
          "dateRange": {
            "startAt": "2026-03-01T00:00:00.000Z",
            "endAt": "2026-03-31T23:59:59.999Z"
          }
        }
      },
      "analysis": {
        "type": "ranking",
        "ranking": {
          "orderBy": "visibility",
          "direction": "desc"
        }
      }
    }
    How to read results:
    Top rows are leaders (descending by visibility).
    Use citation as a secondary KPI to validate quality, not only exposure.

    4.4 Scenario: Citation share by topic (content planning)#

    Business question:
    "How is citation share distributed across topics?"
    Recommended payload:
    {
      "target": {
        "entity": "topic",
        "metrics": ["citation"],
        "filters": {
          "dateRange": {
            "startAt": "2026-03-01T00:00:00.000Z",
            "endAt": "2026-03-31T23:59:59.999Z"
          }
        }
      },
      "analysis": {
        "type": "distribution"
      }
    }
    How to read results:
    Values are returned as percentage distribution for each topic group.
    Find low-share but strategic topics for next content sprint.

    4.5 Scenario: Check whether visibility and sentiment correlate#

    Business question:
    "When visibility goes up, does sentiment also improve?"
    Recommended payload:
    {
      "target": {
        "entity": "brand",
        "metrics": ["visibility", "sentiment"],
        "filters": {
          "dateRange": {
            "startAt": "2026-03-01T00:00:00.000Z",
            "endAt": "2026-03-31T23:59:59.999Z"
          }
        }
      },
      "analysis": {
        "type": "correlation"
      }
    }
    How to read results:
    Check rows[0].r (correlation coefficient).
    r close to 1: strong positive relation; close to -1: strong inverse relation.

    4.6 Scenario: Platform x Topic matrix for channel strategy#

    Business question:
    "Which platforms perform best for each topic cluster?"
    Recommended payload:
    {
      "target": {
        "entity": "platform",
        "metrics": ["citation"],
        "filters": {
          "dateRange": {
            "startAt": "2026-03-01T00:00:00.000Z",
            "endAt": "2026-03-31T23:59:59.999Z"
          }
        }
      },
      "analysis": {
        "type": "matrix",
        "matrix": {
          "rowDimension": "topic"
        }
      }
    }
    How to read results:
    Each row represents one topic; each platform column contains metric values.
    Use this matrix to decide platform-topic resource allocation.

    5. cURL Example#

    6. Response Shape#

    Successful responses from executeDsl use the common wrapper:
    {
      "success": true,
      "code": 0,
      "message": "OK",
      "data": {
        "rows": [],
        "query": {}
      }
    }
    Notes:
    data.rows schema varies by analysis.type.
    data.query echoes the original request body.

    7. Common Errors and Fixes#

    Error messageWhy it happensHow to fix
    metrics requiredtarget.metrics is missing or emptyProvide at least one metric
    ranking.orderBy must be included in metricsorderBy not present in target.metricsAdd orderBy metric to target.metrics
    correlation requires exactly 2 metricsCorrelation received non-2 metricsSend exactly 2 metrics
    distribution requires exactly 1 metricDistribution received non-1 metricSend exactly 1 metric
    matrix requires entity: platformMatrix entity is not platformSet target.entity to platform
    matrix requires analysis.matrix.rowDimension (brand or topic)Missing rowDimensionAdd analysis.matrix.rowDimension
    ai_mention is not supported for matrix analysisMatrix metric is ai_mentionUse another metric

    8. Quick Checklist Before Sending#

    target.entity is valid.
    target.metrics is non-empty and compatible with analysis.type.
    Date range is valid ISO 8601.
    Ranking/matrix extra fields are present when required.
    x-api-key is provided.
    Modified at 2026-03-30 02:05:15
    Previous
    MCP
    Next
    Get brand base information
    Built with