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

# 获取坐标网格

> 按地点读取网格：每个地点的坐标、任务状态和回答。



## OpenAPI

````yaml GET /v1/async/task/grid/{id}
openapi: 3.1.0
info:
  title: querying.ai
  description: >-
    One API for every AI answer engine. Every task is asynchronous: submit, then
    collect the result via webhook or polling.
  version: 1.0.0
servers:
  - url: https://api.querying.ai
    description: Production
security:
  - bearerAuth: []
paths:
  /v1/async/task/grid/{id}:
    get:
      tags:
        - Tasks
      summary: Get a location grid
      description: >-
        The grid's points in row and column order, each with its location, task
        and credits. include=response adds each finished task's response. Points
        the grid never admitted are absent.
      operationId: getTaskGrid
      parameters:
        - name: id
          in: path
          required: true
          schema:
            type: string
        - name: include
          in: query
          required: false
          schema:
            type: string
            enum:
              - response
      responses:
        '200':
          description: The grid's points.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GridReadResult'
        '400':
          $ref: '#/components/responses/ValidationError'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '404':
          $ref: '#/components/responses/NotFound'
components:
  schemas:
    GridReadResult:
      type: object
      properties:
        success:
          type: boolean
        grid:
          type: object
          properties:
            id:
              type: string
        summary:
          type: object
          properties:
            total:
              type: integer
            queued:
              type: integer
            processing:
              type: integer
            completed:
              type: integer
            failed:
              type: integer
        points:
          type: array
          items:
            type: object
            properties:
              row:
                type: integer
              col:
                type: integer
              location:
                $ref: '#/components/schemas/LocationPoint'
              task:
                $ref: '#/components/schemas/TaskMeta'
              credits:
                $ref: '#/components/schemas/Credits'
              response:
                $ref: '#/components/schemas/TaskResponse'
    LocationPoint:
      type: object
      additionalProperties: false
      required:
        - latitude
        - longitude
      properties:
        latitude:
          type: number
          minimum: -90
          maximum: 90
        longitude:
          type: number
          minimum: -180
          maximum: 180
      example:
        latitude: 37.4979
        longitude: 127.0276
    TaskMeta:
      type: object
      required:
        - id
        - taskType
        - status
        - priority
        - createdAt
      properties:
        id:
          type: string
          format: uuid
        taskType:
          $ref: '#/components/schemas/TaskType'
        status:
          $ref: '#/components/schemas/TaskStatus'
        priority:
          type: integer
        createdAt:
          type: string
          format: date-time
        idempotencyKey:
          type: string
          description: >-
            Echoed back verbatim. **Omitted** — not null — when the caller
            supplied none.
    Credits:
      type: object
      description: >-
        Credits, with up to two decimals (for example `1.25`). The submit
        response always shows `0`: a hold is placed on your balance, but nothing
        is charged yet. Polling shows `0` until the task is terminal, then the
        settled charge: the task's price for COMPLETED, `0` for FAILED. A task
        webhook reports the same charge in `creditsCharged`; on a FAILED task it
        reports the task's price in `creditsToCharge` and `0` in
        `creditsCharged`. CITATION_ANALYSIS and WEB_CRAWL are charged by usage,
        up to the hold placed at submit.
      properties:
        creditsToCharge:
          type: number
        creditsCharged:
          type:
            - number
            - 'null'
    TaskResponse:
      type: object
      required:
        - success
        - task
        - credits
      allOf:
        - if:
            properties:
              task:
                properties:
                  taskType:
                    const: COMMERCE_SERP
                required:
                  - taskType
            required:
              - task
          then:
            properties:
              response:
                $ref: '#/components/schemas/CommerceSerpResult'
        - if:
            properties:
              task:
                properties:
                  taskType:
                    const: COMMERCE_PRODUCT
                required:
                  - taskType
            required:
              - task
          then:
            properties:
              response:
                $ref: '#/components/schemas/CommerceProductResult'
      properties:
        success:
          type: boolean
          const: true
        task:
          $ref: '#/components/schemas/TaskMeta'
        credits:
          $ref: '#/components/schemas/Credits'
        response:
          type: object
          description: >-
            The engine-specific result. Absent until the task is terminal. See
            the Engines guide for per-engine shapes. With
            `include.citationAnalysis`, answer results also carry
            `citationAnalysis` (see Include). CITATION_ANALYSIS returns
            CitationAnalysisResult; see the Citation Analysis guide.
            PROMPT_RESEARCH returns PromptResearchResult; see the Prompt
            Research guide. GEO_SCORE returns GeoScoreResult; see the GEO Score
            guide. Answer engines with `include.analysis` add `analysis`
            (AnswerAnalysis).
          additionalProperties: true
        error:
          type: string
          description: >-
            Present when `task.status` is `FAILED`. A plain string — not the
            `{code, message, timestamp}` object used by request-level errors.
    ErrorResponse:
      type: object
      required:
        - success
        - error
      properties:
        success:
          type: boolean
          const: false
        error:
          $ref: '#/components/schemas/ErrorDetail'
    TaskType:
      type: string
      description: >-
        The engine to query. `NAVER` is a deprecated alias for `NAVER_AI_BRIEF`.
        GOOGLE_AIO and GOOGLE_AIMODE are the unified names for GOOGLE and
        AIMODE; both spellings are accepted and responses echo the canonical
        GOOGLE / AIMODE. `NAVER_AI_MODE` is accepted as an earlier spelling of
        `NAVER_AI_TAB`. `GOOGLE_SERP` returns the Google results page without
        the AI Overview; `payload.page` selects pages 1-10. `NAVER_SERP` returns
        Naver's web results, 15 per page (`payload.page` 1-10), and with
        `payload.action` `page` reads one naver.com page by `payload.url`.
        `REDDIT` searches Reddit posts by `query` (optionally within one
        `subreddit`), reads one post with its first page of comments by `url`,
        or lists posts with `action` `feed` or `user_posts`. `WEB_SCRAPE` reads
        one web page by `payload.url` and returns its main content as Markdown
        with its images. `WEB_MAP` lists a site's addresses from its start page
        links and sitemaps. `WEB_CRAWL` reads a site's pages under a start
        address, each as WEB_SCRAPE reads it, at 1 credit per page returned.
        `KEYWORD_VOLUME` returns the monthly search volume of `payload.keywords`
        (1-100) in `payload.country`: Naver for KR and Google for 216 other
        countries. `META_AI` returns the meta.ai chat answer with its cited
        sources, search queries and the products it shows (`shoppingCards`,
        `inlineProducts`); a prompt Meta refuses completes with an empty text
        and a `notice` quoting Meta. `QWEN` returns the answer of Qwen's China
        web chat (qianwen.com) with its web search, sources and search queries;
        `payload.country` sets the exit and the answer locale. `DOUBAO` returns
        the answer of Doubao's China web chat (doubao.com) with its web search,
        sources and search queries; it always asks from mainland China, whatever
        `payload.country` is. `BING` and `BING_COPILOT_SEARCH` are accepted as
        earlier spellings of `BING_SEARCH`, and `COPILOT` as the earlier
        spelling of `BING_COPILOT`; responses echo the new names. Private
        engines (for example CLAUDE) are rejected with 403 ENGINE_PRIVATE.
        CITATION_ANALYSIS, PROMPT_RESEARCH and GEO_SCORE tasks are created
        through their own endpoints (POST /v1/citation-analysis, POST
        /v1/prompt-research, POST /v1/geo-score) and are rejected here with 400
        USE_DEDICATED_ENDPOINT; they appear in this list because their tasks
        report them. GEO_AUDIT, SOURCE_INFLUENCE and CITATION_ATTRIBUTION are
        accepted as earlier names of CITATION_ANALYSIS; responses echo
        CITATION_ANALYSIS.
      enum:
        - CHATGPT
        - PERPLEXITY
        - GEMINI
        - AIMODE
        - GOOGLE_AIMODE
        - GOOGLE
        - GOOGLE_AIO
        - GOOGLE_SERP
        - NAVER_AI_BRIEF
        - NAVER_AI_TAB
        - NAVER_AI_MODE
        - NAVER
        - NAVER_SERP
        - COMMERCE_SERP
        - COMMERCE_PRODUCT
        - BING_SEARCH
        - BING
        - BING_COPILOT_SEARCH
        - BING_COPILOT
        - COPILOT
        - META_AI
        - QWEN
        - DOUBAO
        - REDDIT
        - WEB_SCRAPE
        - WEB_MAP
        - WEB_CRAWL
        - KEYWORD_VOLUME
        - CITATION_ANALYSIS
        - GEO_AUDIT
        - SOURCE_INFLUENCE
        - CITATION_ATTRIBUTION
        - PROMPT_RESEARCH
        - GEO_SCORE
    TaskStatus:
      type: string
      description: >-
        `PROCESSING` means a worker holds the task. `COMPLETED` and `FAILED` are
        terminal.
      enum:
        - QUEUED
        - PROCESSING
        - COMPLETED
        - FAILED
    ErrorDetail:
      type: object
      required:
        - code
        - message
      properties:
        code:
          type: string
          description: Stable, safe to branch on. See the Errors guide for the full list.
        message:
          type: string
          description: For humans. May change.
        details:
          description: >-
            Context for the error. An array of `{field, message}` on most
            `VALIDATION_ERROR`s; an object elsewhere (for example `{id}` on
            `RESOURCE_NOT_FOUND`, `retryAfterSec` on 429 and 503 codes). Omitted
            when there is nothing to add.
          oneOf:
            - type: array
              items:
                type: object
                properties:
                  field:
                    type: string
                  message:
                    type: string
            - type: object
              additionalProperties: true
        timestamp:
          type: string
          format: date-time
  responses:
    ValidationError:
      description: >-
        The request is malformed — bad JSON, unrecognised `taskType`, or neither
        `payload.prompt` nor `payload.query` present. `details` names the
        offending field.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ErrorResponse'
          examples:
            missingPrompt:
              summary: Neither prompt nor query supplied
              value:
                success: false
                error:
                  code: VALIDATION_ERROR
                  message: Request validation failed
                  details:
                    - field: payload.prompt
                      message: payload.prompt or payload.query is required
                  timestamp: '2026-07-09T04:12:00.000Z'
            badTaskType:
              summary: Unrecognised taskType
              value:
                success: false
                error:
                  code: VALIDATION_ERROR
                  message: Request validation failed
                  details:
                    - field: taskType
                      message: '''NOPE'' is not recognized'
                  timestamp: '2026-07-09T04:12:00.000Z'
    Unauthorized:
      description: Missing or invalid bearer token.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ErrorResponse'
          example:
            success: false
            error:
              code: MISSING_API_KEY
              message: Missing or invalid API key
              timestamp: '2026-07-09T04:12:00.000Z'
    NotFound:
      description: >-
        No monitor with that id for this key, or no scored row with that task
        id. A monitor owned by another account is reported the same way rather
        than as a 403.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ErrorResponse'
          example:
            success: false
            error:
              code: NOT_FOUND
              message: No monitor with that id
              timestamp: '2026-09-22T04:12:00.000Z'
  securitySchemes:
    bearerAuth:
      type: http
      scheme: bearer
      description: 'Your API key, sent as `Authorization: Bearer <key>`.'

````

This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.