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

> ## Agent Instructions
> - Base URLs: models `https://api.aisa.one/v1` (Gemini GenerateContent: `https://api.aisa.one/v1beta`); data APIs `https://api.aisa.one/apis/v1`. The `servers` of each operation in https://aisa.one/openapi.yaml is authoritative.
> - Auth: `Authorization: Bearer $AISA_API_KEY`. Never print, log, or commit the key.
> - MCP (preferred for agents): `https://mcp.aisa.one/mcp`, signed in with OAuth, so there is no key to paste.
> - Agent Skill: `npx skills add AIsa-team/agent-skills --skill aisa`. Fallback with the AIsa CLI: `aisa skills install aisa`.
> - Spending: docs, https://aisa.one/models, https://aisa.one/api, `/v1/models`, and MCP `search`, `list_categories`, `get_details`, `batch_quote`, and the `account` operation are free. Quote the exact calls before running them (MCP `batch_quote`, CLI `aisa quote --json`). If the quote reports `auto_execute_eligible: true`, run it unless the user set a tighter limit or asked only for a quote. Otherwise, tell the user in one message the planned calls, the quoted price, and a total USD budget for the task, then wait for approval. Direct HTTP calls follow the stricter rule at https://aisa.one/docs/get-started/cli.md#direct-http-fallback. Do not make paid calls to test availability. Full rule: https://aisa.one/llms.txt

# GraphHopper Geocoding

> <!-- aisa-pricing:start -->
按用量计费；默认请求预估费用：$0.00042 USD（不是固定价格）。 声明的单位费率：每 provider_credit $0.000001 USD。 最终费用以账户适用价格及实际结算为准。
<!-- aisa-pricing:end -->

## 请求规范

* **方法与路径:** POST /apis/v1/graphhopper/geocode-get
* **可用状态:** enabled
* **请求 URL 模板:** `https://api.aisa.one/apis/v1/graphhopper/geocode-get`
* **Runtime 事实版本:** 6a72f8e2fa7fb1c29379e3b24b3a247c8428a3b6ed621b3f84f84e75cb0de2bc

[完整 OpenAPI 定义](https://aisa.one/docs/reference-contracts/zh/graphhopper.json)

有效请求与价格声明（包括认证和引用的 schema）：

```json theme={null}
{
  "operationId": "graphhopper.geocode-get",
  "method": "POST",
  "path": "/apis/v1/graphhopper/geocode-get",
  "servers": [
    {
      "url": "https://api.aisa.one"
    }
  ],
  "parameters": [],
  "security": [
    {
      "bearerAuth": []
    }
  ],
  "requestBody": {
    "required": true,
    "content": {
      "application/json": {
        "schema": {
          "type": "object",
          "properties": {
            "q": {
              "type": "string",
              "description": "Text to geocode (forward geocoding). Required when reverse=false; must be omitted if reverse=true.",
              "examples": [
                "Berlin"
              ]
            },
            "key": {
              "type": "string",
              "examples": [
                "your_api_key"
              ],
              "description": "Your GraphHopper API key. If not provided, it will be automatically injected from the connection."
            },
            "bbox": {
              "type": "string",
              "description": "Bounding box 'minLon,minLat,maxLon,maxLat'. Requires reverse=false. Only provider=default."
            },
            "zoom": {
              "type": "number",
              "description": "Map-like zoom level controlling focus radius. Only provider=default."
            },
            "debug": {
              "type": "boolean",
              "default": false,
              "description": "Pretty-print the output. Default false."
            },
            "limit": {
              "type": "integer",
              "default": 5,
              "minimum": 1,
              "examples": [
                1,
                10
              ],
              "description": "Maximum number of results. Default 5."
            },
            "point": {
              "type": "string",
              "examples": [
                "52.529407,13.397634"
              ],
              "description": "Coordinate 'lat,lon'. Required when reverse=true; for forward geocoding, acts as location bias."
            },
            "bounds": {
              "type": "string",
              "description": "Bounds 'minLon,minLat,maxLon,maxLat'. For nominatim or opencagedata."
            },
            "locale": {
              "enum": [
                "en",
                "de",
                "fr"
              ],
              "type": "string",
              "default": "en",
              "examples": [
                "en"
              ],
              "description": "Locale of results. Default 'en'."
            },
            "radius": {
              "type": "number",
              "description": "Search radius. Default: km for provider=default when reverse=true; meters for provider=gisgraphy."
            },
            "osm_tag": {
              "type": "array",
              "items": {
                "type": "string"
              },
              "description": "OSM tags to filter/include or exclude, e.g., 'tourism:museum' or '!tourism:museum'. Only provider=default."
            },
            "reverse": {
              "enum": [
                false
              ],
              "type": "boolean",
              "description": "Set to true for reverse geocoding. Default false."
            },
            "provider": {
              "enum": [
                "default"
              ],
              "type": "string",
              "description": "Alternative geocoding provider."
            },
            "countrycode": {
              "type": "string",
              "description": "ISO 3166-1 alpha-2 country filter. For nominatim, gisgraphy, or opencagedata."
            },
            "autocomplete": {
              "type": "boolean",
              "description": "Enable autocomplete (only for provider=gisgraphy and reverse=false)."
            },
            "location_bias_scale": {
              "type": "number",
              "maximum": 1,
              "minimum": 0,
              "description": "Location bias scale between 0.0 and 1.0. Only provider=default."
            }
          },
          "required": [
            "provider",
            "q",
            "reverse"
          ]
        }
      }
    }
  },
  "x-aisa-status": "enabled",
  "x-aisa-pricing": {
    "cost_contract": "response_units",
    "customer_multiplier": 1.0,
    "customer_pricing": "provider_cost_multiplier",
    "default_request_estimate_usd": 0.00042,
    "estimate_source": "profile_seed",
    "evidence_source": "response_body",
    "maximum_units": 10000000,
    "unit": "provider_credit",
    "unit_rate_usd": 1e-06
  },
  "components": {
    "securitySchemes": {
      "bearerAuth": {
        "scheme": "bearer",
        "type": "http"
      }
    }
  }
}
```

## 费用与请求规则

按用量计费；默认请求预估费用：\$0.00042 USD（不是固定价格）。 声明的单位费率：每 provider\_credit \$0.000001 USD。 最终费用以账户适用价格及实际结算为准。

公开参考值不是你的账户报价或最终扣费。对于支持 X-AISA-Cost-Mode: quote 的接口，执行前请针对完整请求获取免费报价；执行后通过响应费用元数据和 Usage Logs 核对结算费用。1 USD 等于 1,000,000 个整数 micro-USD。

* **默认请求参考估价（USD）:** 0.00042
* **声明的单位费率（USD）:** 1e-06
* **计费单位:** provider\_credit
* **计费依据:** response\_units
* **公开参考倍率:** 1.0
* **声明的最大计数或单位数:** 10000000
* **结算证据来源:** response\_body


## OpenAPI

````yaml reference-contracts/zh/graphhopper.json POST /apis/v1/graphhopper/geocode-get
openapi: 3.1.0
info:
  description: ''
  title: GraphHopper
  version: '1'
  x-aisa-capabilities:
    idempotency: Idempotency-Key
    max_price: X-AISA-Max-Price-USD
    quote:
      header: X-AISA-Cost-Mode
      value: quote
  x-aisa-configured-paths:
    - /apis/v1/graphhopper/geocode-get
    - /apis/v1/graphhopper/get-matrix
    - /apis/v1/graphhopper/get-route
    - /apis/v1/graphhopper/isochrone-get
    - /apis/v1/graphhopper/matrix-post
    - /apis/v1/graphhopper/route-post
  x-aisa-document:
    facts_hash: 6a72f8e2fa7fb1c29379e3b24b3a247c8428a3b6ed621b3f84f84e75cb0de2bc
    generator_version: '3'
    protocol_version: '1'
    schema_version: '1'
    composer_version: '28'
    response_pending: []
    document_hash: sha256:d9dd70cdbeb543115e630c23fe89116520ef370e8db5c5a9cc923630f4fca8ab
  x-aisa-plans:
    builder: 1
    display_plan: payg
    payg: 1
    similarweb_payg: 1
    team: 1
    version: e70a0959cd1b93b84ae16dffd7a538273ddb9c1d46277b82823c37ff1b6bc0fb
  x-aisa-provider: graphhopper
  x-aisa-catalogs:
    graphhopper:
      title: GraphHopper
      description: ''
      x-aisa-document:
        facts_hash: 6a72f8e2fa7fb1c29379e3b24b3a247c8428a3b6ed621b3f84f84e75cb0de2bc
        generator_version: '3'
        protocol_version: '1'
        schema_version: '1'
      x-aisa-plans:
        builder: 1
        display_plan: payg
        payg: 1
        similarweb_payg: 1
        team: 1
        version: e70a0959cd1b93b84ae16dffd7a538273ddb9c1d46277b82823c37ff1b6bc0fb
      x-aisa-capabilities:
        idempotency: Idempotency-Key
        max_price: X-AISA-Max-Price-USD
        quote:
          header: X-AISA-Cost-Mode
          value: quote
servers:
  - url: https://api.aisa.one
security:
  - bearerAuth: []
paths:
  /apis/v1/graphhopper/geocode-get:
    post:
      tags:
        - GraphHopper
      summary: GraphHopper Geocoding
      description: >-
        <!-- aisa-pricing:start -->

        按用量计费；默认请求预估费用：$0.00042 USD（不是固定价格）。 声明的单位费率：每 provider_credit $0.000001
        USD。 最终费用以账户适用价格及实际结算为准。

        <!-- aisa-pricing:end -->
      operationId: graphhopper.geocode-get
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                q:
                  type: string
                  examples:
                    - Berlin
                  description: >-
                    Text to geocode (forward geocoding). Required when
                    reverse=false; must be omitted if reverse=true.
                key:
                  type: string
                  examples:
                    - your_api_key
                  description: >-
                    Your GraphHopper API key. If not provided, it will be
                    automatically injected from the connection.
                bbox:
                  type: string
                  description: >-
                    Bounding box 'minLon,minLat,maxLon,maxLat'. Requires
                    reverse=false. Only provider=default.
                zoom:
                  type: number
                  description: >-
                    Map-like zoom level controlling focus radius. Only
                    provider=default.
                debug:
                  type: boolean
                  default: false
                  description: Pretty-print the output. Default false.
                limit:
                  type: integer
                  default: 5
                  minimum: 1
                  examples:
                    - 1
                    - 10
                  description: Maximum number of results. Default 5.
                point:
                  type: string
                  examples:
                    - 52.529407,13.397634
                  description: >-
                    Coordinate 'lat,lon'. Required when reverse=true; for
                    forward geocoding, acts as location bias.
                bounds:
                  type: string
                  description: >-
                    Bounds 'minLon,minLat,maxLon,maxLat'. For nominatim or
                    opencagedata.
                locale:
                  enum:
                    - en
                    - de
                    - fr
                  type: string
                  default: en
                  examples:
                    - en
                  description: Locale of results. Default 'en'.
                radius:
                  type: number
                  description: >-
                    Search radius. Default: km for provider=default when
                    reverse=true; meters for provider=gisgraphy.
                osm_tag:
                  type: array
                  items:
                    type: string
                  description: >-
                    OSM tags to filter/include or exclude, e.g.,
                    'tourism:museum' or '!tourism:museum'. Only
                    provider=default.
                reverse:
                  enum:
                    - false
                  type: boolean
                  description: Set to true for reverse geocoding. Default false.
                provider:
                  enum:
                    - default
                  type: string
                  description: Alternative geocoding provider.
                countrycode:
                  type: string
                  description: >-
                    ISO 3166-1 alpha-2 country filter. For nominatim, gisgraphy,
                    or opencagedata.
                autocomplete:
                  type: boolean
                  description: >-
                    Enable autocomplete (only for provider=gisgraphy and
                    reverse=false).
                location_bias_scale:
                  type: number
                  maximum: 1
                  minimum: 0
                  description: >-
                    Location bias scale between 0.0 and 1.0. Only
                    provider=default.
              required:
                - provider
                - q
                - reverse
      responses:
        '200':
          description: Tool result data
          content:
            application/json:
              schema:
                $ref: >-
                  #/components/schemas/Response576A0Ea506F3_connect_GRAPHHOPPER_GEOCODE_GET__output__public_data
        default:
          content:
            application/json:
              schema: {}
          description: >-
            Error response; upstream passthrough responses may use provider
            formats
components:
  schemas:
    Response576A0Ea506F3_connect_GRAPHHOPPER_GEOCODE_GET__output__public_data:
      $ref: >-
        #/components/schemas/Response576A0Ea506F3_connect_GRAPHHOPPER_GEOCODE_GET__output__594915a1a04b386a
    Response576A0Ea506F3_connect_GRAPHHOPPER_GEOCODE_GET__output__594915a1a04b386a:
      type: object
      required:
        - hits
      properties:
        hits:
          type: array
          items:
            $ref: >-
              #/components/schemas/Response576A0Ea506F3_connect_GRAPHHOPPER_GEOCODE_GET__output__0962e457ebfad5ad
        took:
          type: integer
        locale:
          type: string
    Response576A0Ea506F3_connect_GRAPHHOPPER_GEOCODE_GET__output__0962e457ebfad5ad:
      type: object
      required:
        - point
      properties:
        city:
          type: string
        name:
          type: string
        point:
          $ref: >-
            #/components/schemas/Response576A0Ea506F3_connect_GRAPHHOPPER_GEOCODE_GET__output__c2cb23a06bf6bdac
        state:
          type: string
        extent:
          type: array
          items:
            type: number
        osm_id:
          type: integer
        street:
          type: string
        country:
          type: string
        osm_key:
          type: string
        osm_type:
          type: string
        postcode:
          type: string
        osm_value:
          type: string
        countrycode:
          type: string
        housenumber:
          type: string
    Response576A0Ea506F3_connect_GRAPHHOPPER_GEOCODE_GET__output__c2cb23a06bf6bdac:
      type: object
      required:
        - lat
        - lng
      properties:
        lat:
          type: number
        lng:
          type: number
  securitySchemes:
    bearerAuth:
      scheme: bearer
      type: http

````

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