> ## 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

# Update location details

> Google Business. Acts in public on your connected account; needs social:publish. Audited. Ids are yours: accounts acc_..., profiles prf_..., posts pst_...; every other object id is checked against your accounts before the call.

Updates Google Business Profile location details. The updateMask field is required and specifies which fields to update.
This endpoint proxies Google's Business Information API locations.patch, so any valid updateMask field is supported.
Common fields: regularHours, specialHours, profile.description, websiteUri, phoneNumbers, categories, serviceItems.

<!-- aisa-pricing:start -->
当前未提供请求参考价格；请使用接口支持的报价功能确认费用。 最终费用以账户适用价格及实际结算为准。
<!-- aisa-pricing:end -->

## 请求规范

* **方法与路径:** PUT /apis/v1/social/accounts/\{accountId}/gmb-location-details
* **可用状态:** enabled
* **请求 URL 模板:** `https://api.aisa.one/apis/v1/social/accounts/{accountId}/gmb-location-details`
* **accountId:** path; 必填
* **locationId:** query; 可选
* **Runtime 事实版本:** 99acb5bddbedc8d3352e7c4fef86c3e6d8852c14772bcd18dbcf415237a642bd

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

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

```json theme={null}
{
  "operationId": "put_aisa_social_apis_v1_social_accounts_accountid_7d035a",
  "method": "PUT",
  "path": "/apis/v1/social/accounts/{accountId}/gmb-location-details",
  "servers": [
    {
      "url": "https://api.aisa.one"
    }
  ],
  "parameters": [
    {
      "description": "One of your social accounts (acc_...).",
      "in": "path",
      "name": "accountId",
      "required": true,
      "schema": {
        "pattern": "^acc_[0-9A-Za-z]{22}$",
        "type": "string"
      }
    },
    {
      "description": "Override which location to target. If omitted, uses the account's selected location. Use GET /gmb-locations to list valid IDs.",
      "in": "query",
      "name": "locationId",
      "required": false,
      "schema": {
        "type": "string"
      }
    }
  ],
  "security": [
    {
      "bearerAuth": []
    }
  ],
  "requestBody": {
    "content": {
      "application/json": {
        "example": {
          "regularHours": {
            "periods": [
              {
                "closeDay": "MONDAY",
                "closeTime": "17:00",
                "openDay": "MONDAY",
                "openTime": "09:00"
              },
              {
                "closeDay": "SATURDAY",
                "closeTime": "14:00",
                "openDay": "SATURDAY",
                "openTime": "10:00"
              }
            ]
          },
          "specialHours": {
            "specialHourPeriods": [
              {
                "closed": true,
                "startDate": {
                  "day": 25,
                  "month": 12,
                  "year": 2026
                }
              },
              {
                "closeTime": "15:00",
                "openTime": "09:00",
                "startDate": {
                  "day": 31,
                  "month": 12,
                  "year": 2026
                }
              }
            ]
          },
          "updateMask": "regularHours,specialHours"
        },
        "schema": {
          "additionalProperties": true,
          "properties": {
            "adWordsLocationExtensions": {
              "description": "Alternate phone shown in Google Ads location extensions. Use updateMask='adWordsLocationExtensions'.",
              "properties": {
                "adPhone": {
                  "type": "string"
                }
              },
              "type": "object"
            },
            "categories": {
              "description": "Primary and additional business categories. Use updateMask='categories' to update.",
              "properties": {
                "additionalCategories": {
                  "items": {
                    "properties": {
                      "name": {
                        "description": "Category resource name (e.g. 'categories/gcid:dry_cleaner')",
                        "type": "string"
                      }
                    },
                    "type": "object"
                  },
                  "type": "array"
                },
                "primaryCategory": {
                  "properties": {
                    "name": {
                      "description": "Category resource name (e.g. 'categories/gcid:laundromat'). Use Google's Categories API to look up valid IDs.",
                      "type": "string"
                    }
                  },
                  "type": "object"
                }
              },
              "type": "object"
            },
            "labels": {
              "description": "Free-form, internal-only labels for grouping (1-255 characters each). Use updateMask='labels'.",
              "items": {
                "type": "string"
              },
              "type": "array"
            },
            "latlng": {
              "description": "Precise coordinates. Use updateMask='latlng'. Google restricts latlng writes to approved clients, so this update may be silently ignored or rejected.",
              "properties": {
                "latitude": {
                  "type": "number"
                },
                "longitude": {
                  "type": "number"
                }
              },
              "type": "object"
            },
            "moreHours": {
              "description": "Additional hours for specific services (delivery, drive-through, etc.). Use updateMask='moreHours'.",
              "items": {
                "properties": {
                  "hoursTypeId": {
                    "description": "Hours type from Google's catalog (e.g. 'DELIVERY', 'DRIVE_THROUGH')",
                    "type": "string"
                  },
                  "periods": {
                    "items": {
                      "properties": {
                        "closeDay": {
                          "type": "string"
                        },
                        "closeTime": {
                          "type": "string"
                        },
                        "openDay": {
                          "type": "string"
                        },
                        "openTime": {
                          "type": "string"
                        }
                      },
                      "type": "object"
                    },
                    "type": "array"
                  }
                },
                "type": "object"
              },
              "type": "array"
            },
            "openInfo": {
              "description": "Open/closed status of the location. Use updateMask='openInfo'.",
              "properties": {
                "openingDate": {
                  "properties": {
                    "day": {
                      "type": "integer"
                    },
                    "month": {
                      "type": "integer"
                    },
                    "year": {
                      "type": "integer"
                    }
                  },
                  "type": "object"
                },
                "status": {
                  "enum": [
                    "OPEN",
                    "CLOSED_PERMANENTLY",
                    "CLOSED_TEMPORARILY"
                  ],
                  "type": "string"
                }
              },
              "type": "object"
            },
            "phoneNumbers": {
              "properties": {
                "additionalPhones": {
                  "items": {
                    "type": "string"
                  },
                  "type": "array"
                },
                "primaryPhone": {
                  "type": "string"
                }
              },
              "type": "object"
            },
            "profile": {
              "properties": {
                "description": {
                  "type": "string"
                }
              },
              "type": "object"
            },
            "regularHours": {
              "properties": {
                "periods": {
                  "items": {
                    "properties": {
                      "closeDay": {
                        "type": "string"
                      },
                      "closeTime": {
                        "type": "string"
                      },
                      "openDay": {
                        "type": "string"
                      },
                      "openTime": {
                        "type": "string"
                      }
                    },
                    "type": "object"
                  },
                  "type": "array"
                }
              },
              "type": "object"
            },
            "serviceArea": {
              "description": "Areas the business serves. Use updateMask='serviceArea'. Full replacement: send every place you want to keep.",
              "properties": {
                "businessType": {
                  "enum": [
                    "CUSTOMER_LOCATION_ONLY",
                    "CUSTOMER_AND_BUSINESS_LOCATION"
                  ],
                  "type": "string"
                },
                "places": {
                  "properties": {
                    "placeInfos": {
                      "items": {
                        "properties": {
                          "placeId": {
                            "description": "Google Place ID for the area",
                            "type": "string"
                          },
                          "placeName": {
                            "description": "Localized area name (e.g. 'Sao Paulo, SP, Brasil')",
                            "type": "string"
                          }
                        },
                        "type": "object"
                      },
                      "type": "array"
                    }
                  },
                  "type": "object"
                },
                "regionCode": {
                  "description": "Immutable. CLDR region code of the country the business is based in (e.g. 'BR')",
                  "type": "string"
                }
              },
              "type": "object"
            },
            "serviceItems": {
              "description": "Services offered by the business. Use updateMask='serviceItems' to update.",
              "items": {
                "properties": {
                  "freeFormServiceItem": {
                    "description": "A custom service not in Google's catalog",
                    "properties": {
                      "category": {
                        "description": "Category resource name this service belongs to (e.g. 'categories/gcid:laundromat')",
                        "type": "string"
                      },
                      "label": {
                        "properties": {
                          "displayName": {
                            "description": "Service name as displayed to users",
                            "type": "string"
                          },
                          "languageCode": {
                            "description": "Language code (e.g. 'en')",
                            "type": "string"
                          }
                        },
                        "type": "object"
                      }
                    },
                    "type": "object"
                  },
                  "price": {
                    "description": "Optional price for the service",
                    "properties": {
                      "currencyCode": {
                        "description": "ISO 4217 currency code (e.g. 'USD')",
                        "type": "string"
                      },
                      "nanos": {
                        "description": "Nano units (10^-9) of the amount",
                        "type": "integer"
                      },
                      "units": {
                        "description": "Whole units of the amount",
                        "type": "string"
                      }
                    },
                    "type": "object"
                  },
                  "structuredServiceItem": {
                    "description": "A predefined service from Google's service type catalog",
                    "properties": {
                      "description": {
                        "description": "Optional description of the service",
                        "type": "string"
                      },
                      "serviceTypeId": {
                        "description": "Service type ID from Google's catalog (e.g. 'job_type_id:plumbing_drain_repair')",
                        "type": "string"
                      }
                    },
                    "type": "object"
                  }
                },
                "type": "object"
              },
              "type": "array"
            },
            "specialHours": {
              "properties": {
                "specialHourPeriods": {
                  "items": {
                    "properties": {
                      "closeTime": {
                        "type": "string"
                      },
                      "closed": {
                        "type": "boolean"
                      },
                      "endDate": {
                        "properties": {
                          "day": {
                            "type": "integer"
                          },
                          "month": {
                            "type": "integer"
                          },
                          "year": {
                            "type": "integer"
                          }
                        },
                        "type": "object"
                      },
                      "openTime": {
                        "type": "string"
                      },
                      "startDate": {
                        "properties": {
                          "day": {
                            "type": "integer"
                          },
                          "month": {
                            "type": "integer"
                          },
                          "year": {
                            "type": "integer"
                          }
                        },
                        "type": "object"
                      }
                    },
                    "type": "object"
                  },
                  "type": "array"
                }
              },
              "type": "object"
            },
            "storeCode": {
              "description": "External store identifier, unique within the account. Use updateMask='storeCode'.",
              "type": "string"
            },
            "storefrontAddress": {
              "description": "Postal address of the storefront. Use updateMask='storefrontAddress'. Omit for service-area-only businesses.",
              "properties": {
                "addressLines": {
                  "items": {
                    "type": "string"
                  },
                  "type": "array"
                },
                "administrativeArea": {
                  "description": "State or province",
                  "type": "string"
                },
                "languageCode": {
                  "type": "string"
                },
                "locality": {
                  "description": "City",
                  "type": "string"
                },
                "postalCode": {
                  "type": "string"
                },
                "regionCode": {
                  "description": "ISO 3166-1 alpha-2 country code (e.g. 'BR')",
                  "type": "string"
                }
              },
              "type": "object"
            },
            "title": {
              "description": "Business name. Use updateMask='title'.",
              "type": "string"
            },
            "updateMask": {
              "description": "Required. Comma-separated fields to update (e.g. 'regularHours', 'specialHours', 'profile.description', 'categories', 'serviceItems'). Any valid Google Business Information API updateMask field is supported.",
              "type": "string"
            },
            "websiteUri": {
              "type": "string"
            }
          },
          "required": [
            "updateMask"
          ],
          "type": "object"
        }
      }
    },
    "required": true
  },
  "x-aisa-status": "enabled",
  "x-aisa-pricing": {
    "description": "Included with your connected social accounts: AIsa does not charge per call.",
    "kind": "no_customer_charge"
  },
  "components": {
    "securitySchemes": {
      "bearerAuth": {
        "scheme": "bearer",
        "type": "http"
      }
    }
  }
}
```

## 费用与请求规则

当前未提供请求参考价格；请使用接口支持的报价功能确认费用。 最终费用以账户适用价格及实际结算为准。

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


## OpenAPI

````yaml reference-contracts/zh/aisa-social.json PUT /apis/v1/social/accounts/{accountId}/gmb-location-details
openapi: 3.1.0
info:
  description: ''
  title: AIsa Social
  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: []
  x-aisa-document:
    facts_hash: 99acb5bddbedc8d3352e7c4fef86c3e6d8852c14772bcd18dbcf415237a642bd
    generator_version: '3'
    protocol_version: '1'
    schema_version: '1'
    composer_version: '27'
    response_pending: []
    document_hash: sha256:7f9742cb1ea233c648dcb290fdfbf24e53a27dcf900ec1386f83a8ef2e6b1bf9
  x-aisa-plans:
    builder: 1
    display_plan: payg
    payg: 1
    similarweb_payg: 1
    team: 1
    version: e70a0959cd1b93b84ae16dffd7a538273ddb9c1d46277b82823c37ff1b6bc0fb
  x-aisa-provider: aisa-social
  x-aisa-catalogs:
    aisa-social:
      title: AIsa Social
      description: ''
      x-aisa-document:
        facts_hash: 99acb5bddbedc8d3352e7c4fef86c3e6d8852c14772bcd18dbcf415237a642bd
        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/social/accounts/{accountId}/gmb-location-details:
    put:
      summary: Update location details
      description: >-
        Google Business. Acts in public on your connected account; needs
        social:publish. Audited. Ids are yours: accounts acc_..., profiles
        prf_..., posts pst_...; every other object id is checked against your
        accounts before the call.


        Updates Google Business Profile location details. The updateMask field
        is required and specifies which fields to update.

        This endpoint proxies Google's Business Information API locations.patch,
        so any valid updateMask field is supported.

        Common fields: regularHours, specialHours, profile.description,
        websiteUri, phoneNumbers, categories, serviceItems.


        <!-- aisa-pricing:start -->

        当前未提供请求参考价格；请使用接口支持的报价功能确认费用。 最终费用以账户适用价格及实际结算为准。

        <!-- aisa-pricing:end -->
      operationId: put_aisa_social_apis_v1_social_accounts_accountid_7d035a
      parameters:
        - description: One of your social accounts (acc_...).
          in: path
          name: accountId
          required: true
          schema:
            pattern: ^acc_[0-9A-Za-z]{22}$
            type: string
        - description: >-
            Override which location to target. If omitted, uses the account's
            selected location. Use GET /gmb-locations to list valid IDs.
          in: query
          name: locationId
          required: false
          schema:
            type: string
      requestBody:
        content:
          application/json:
            example:
              regularHours:
                periods:
                  - closeDay: MONDAY
                    closeTime: '17:00'
                    openDay: MONDAY
                    openTime: '09:00'
                  - closeDay: SATURDAY
                    closeTime: '14:00'
                    openDay: SATURDAY
                    openTime: '10:00'
              specialHours:
                specialHourPeriods:
                  - closed: true
                    startDate:
                      day: 25
                      month: 12
                      year: 2026
                  - closeTime: '15:00'
                    openTime: '09:00'
                    startDate:
                      day: 31
                      month: 12
                      year: 2026
              updateMask: regularHours,specialHours
            schema:
              additionalProperties: true
              properties:
                adWordsLocationExtensions:
                  description: >-
                    Alternate phone shown in Google Ads location extensions. Use
                    updateMask='adWordsLocationExtensions'.
                  properties:
                    adPhone:
                      type: string
                  type: object
                categories:
                  description: >-
                    Primary and additional business categories. Use
                    updateMask='categories' to update.
                  properties:
                    additionalCategories:
                      items:
                        properties:
                          name:
                            description: >-
                              Category resource name (e.g.
                              'categories/gcid:dry_cleaner')
                            type: string
                        type: object
                      type: array
                    primaryCategory:
                      properties:
                        name:
                          description: >-
                            Category resource name (e.g.
                            'categories/gcid:laundromat'). Use Google's
                            Categories API to look up valid IDs.
                          type: string
                      type: object
                  type: object
                labels:
                  description: >-
                    Free-form, internal-only labels for grouping (1-255
                    characters each). Use updateMask='labels'.
                  items:
                    type: string
                  type: array
                latlng:
                  description: >-
                    Precise coordinates. Use updateMask='latlng'. Google
                    restricts latlng writes to approved clients, so this update
                    may be silently ignored or rejected.
                  properties:
                    latitude:
                      type: number
                    longitude:
                      type: number
                  type: object
                moreHours:
                  description: >-
                    Additional hours for specific services (delivery,
                    drive-through, etc.). Use updateMask='moreHours'.
                  items:
                    properties:
                      hoursTypeId:
                        description: >-
                          Hours type from Google's catalog (e.g. 'DELIVERY',
                          'DRIVE_THROUGH')
                        type: string
                      periods:
                        items:
                          properties:
                            closeDay:
                              type: string
                            closeTime:
                              type: string
                            openDay:
                              type: string
                            openTime:
                              type: string
                          type: object
                        type: array
                    type: object
                  type: array
                openInfo:
                  description: >-
                    Open/closed status of the location. Use
                    updateMask='openInfo'.
                  properties:
                    openingDate:
                      properties:
                        day:
                          type: integer
                        month:
                          type: integer
                        year:
                          type: integer
                      type: object
                    status:
                      enum:
                        - OPEN
                        - CLOSED_PERMANENTLY
                        - CLOSED_TEMPORARILY
                      type: string
                  type: object
                phoneNumbers:
                  properties:
                    additionalPhones:
                      items:
                        type: string
                      type: array
                    primaryPhone:
                      type: string
                  type: object
                profile:
                  properties:
                    description:
                      type: string
                  type: object
                regularHours:
                  properties:
                    periods:
                      items:
                        properties:
                          closeDay:
                            type: string
                          closeTime:
                            type: string
                          openDay:
                            type: string
                          openTime:
                            type: string
                        type: object
                      type: array
                  type: object
                serviceArea:
                  description: >-
                    Areas the business serves. Use updateMask='serviceArea'.
                    Full replacement: send every place you want to keep.
                  properties:
                    businessType:
                      enum:
                        - CUSTOMER_LOCATION_ONLY
                        - CUSTOMER_AND_BUSINESS_LOCATION
                      type: string
                    places:
                      properties:
                        placeInfos:
                          items:
                            properties:
                              placeId:
                                description: Google Place ID for the area
                                type: string
                              placeName:
                                description: >-
                                  Localized area name (e.g. 'Sao Paulo, SP,
                                  Brasil')
                                type: string
                            type: object
                          type: array
                      type: object
                    regionCode:
                      description: >-
                        Immutable. CLDR region code of the country the business
                        is based in (e.g. 'BR')
                      type: string
                  type: object
                serviceItems:
                  description: >-
                    Services offered by the business. Use
                    updateMask='serviceItems' to update.
                  items:
                    properties:
                      freeFormServiceItem:
                        description: A custom service not in Google's catalog
                        properties:
                          category:
                            description: >-
                              Category resource name this service belongs to
                              (e.g. 'categories/gcid:laundromat')
                            type: string
                          label:
                            properties:
                              displayName:
                                description: Service name as displayed to users
                                type: string
                              languageCode:
                                description: Language code (e.g. 'en')
                                type: string
                            type: object
                        type: object
                      price:
                        description: Optional price for the service
                        properties:
                          currencyCode:
                            description: ISO 4217 currency code (e.g. 'USD')
                            type: string
                          nanos:
                            description: Nano units (10^-9) of the amount
                            type: integer
                          units:
                            description: Whole units of the amount
                            type: string
                        type: object
                      structuredServiceItem:
                        description: >-
                          A predefined service from Google's service type
                          catalog
                        properties:
                          description:
                            description: Optional description of the service
                            type: string
                          serviceTypeId:
                            description: >-
                              Service type ID from Google's catalog (e.g.
                              'job_type_id:plumbing_drain_repair')
                            type: string
                        type: object
                    type: object
                  type: array
                specialHours:
                  properties:
                    specialHourPeriods:
                      items:
                        properties:
                          closeTime:
                            type: string
                          closed:
                            type: boolean
                          endDate:
                            properties:
                              day:
                                type: integer
                              month:
                                type: integer
                              year:
                                type: integer
                            type: object
                          openTime:
                            type: string
                          startDate:
                            properties:
                              day:
                                type: integer
                              month:
                                type: integer
                              year:
                                type: integer
                            type: object
                        type: object
                      type: array
                  type: object
                storeCode:
                  description: >-
                    External store identifier, unique within the account. Use
                    updateMask='storeCode'.
                  type: string
                storefrontAddress:
                  description: >-
                    Postal address of the storefront. Use
                    updateMask='storefrontAddress'. Omit for service-area-only
                    businesses.
                  properties:
                    addressLines:
                      items:
                        type: string
                      type: array
                    administrativeArea:
                      description: State or province
                      type: string
                    languageCode:
                      type: string
                    locality:
                      description: City
                      type: string
                    postalCode:
                      type: string
                    regionCode:
                      description: ISO 3166-1 alpha-2 country code (e.g. 'BR')
                      type: string
                  type: object
                title:
                  description: Business name. Use updateMask='title'.
                  type: string
                updateMask:
                  description: >-
                    Required. Comma-separated fields to update (e.g.
                    'regularHours', 'specialHours', 'profile.description',
                    'categories', 'serviceItems'). Any valid Google Business
                    Information API updateMask field is supported.
                  type: string
                websiteUri:
                  type: string
              required:
                - updateMask
              type: object
        required: true
      responses:
        '200':
          content:
            application/json:
              schema:
                properties:
                  accountId:
                    description: One of your social accounts (acc_...).
                    pattern: ^acc_[0-9A-Za-z]{22}$
                    type: string
                  locationId:
                    type: string
                  success:
                    type: boolean
                type: object
          description: Location updated successfully
        default:
          content:
            application/json:
              schema:
                properties:
                  error:
                    properties:
                      code:
                        type:
                          - string
                          - 'null'
                      details:
                        additionalProperties: {}
                        type:
                          - object
                          - 'null'
                      message:
                        type:
                          - string
                          - 'null'
                      param:
                        type:
                          - string
                          - 'null'
                      retryHint:
                        enum:
                          - never
                          - after_delay
                          - after_reconnect
                          - reconcile_first
                          - null
                        type:
                          - string
                          - 'null'
                      retryable:
                        type:
                          - boolean
                          - 'null'
                      type:
                        type:
                          - string
                          - 'null'
                    type:
                      - object
                      - 'null'
                type: object
          description: Error. The code field is stable; see the error catalog.
components:
  securitySchemes:
    bearerAuth:
      scheme: bearer
      type: http

````

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