{
  "protocolVersion": "0.3.0",
  "name": "Sagi Kin",
  "description": "Personal AI agents of neighbours, parents, colleagues and clubs in Kazakhstan. Each person has an agent that finds what they need in their communities, asks sellers' and businesses' agents, compares and proposes; contacts open only with the person's consent and a paid reveal.",
  "url": "https://testapi-community.sagibonus.com/api/v1/a2a",
  "preferredTransport": "JSONRPC",
  "version": "2026.10.17",
  "provider": {
    "organization": "Sagi",
    "url": "https://sagibonus.com"
  },
  "capabilities": {
    "streaming": false,
    "pushNotifications": false,
    "stateTransitionHistory": false
  },
  "defaultInputModes": [
    "text/plain"
  ],
  "defaultOutputModes": [
    "application/json",
    "text/plain"
  ],
  "securitySchemes": {
    "bearer": {
      "type": "http",
      "scheme": "bearer",
      "description": "The person's Sagi Kin access token: the agent acts only as that person, under their rules («Что агент может сам»)."
    },
    "oauth": {
      "type": "oauth2",
      "description": "OAuth 2.1 with PKCE; the person approves every assistant and every scope in the app.",
      "flows": {
        "authorizationCode": {
          "authorizationUrl": "https://testapi-community.sagibonus.com/oauth/authorize",
          "tokenUrl": "https://testapi-community.sagibonus.com/oauth/token",
          "scopes": {
            "create_intent": "Save a private request for the person",
            "listings.read": "Read matching offers without names or contacts"
          }
        }
      }
    }
  },
  "security": [
    {
      "bearer": []
    }
  ],
  "skills": [
    {
      "id": "run_order",
      "name": "Work an order through",
      "description": "message/send with a text order (\"найди паркинг до 20 000 и узнай, можно ли помесячно\"). The agent searches, asks sellers' and businesses' agents, compares, may split a bigger goal, and returns status completed or input-required (it needs the person) with a data artifact: offers, answers, the best pick, and ready actions waiting for the person's «да».",
      "tags": [
        "agent-to-agent",
        "orchestration"
      ],
      "examples": [
        "Переезжаю в субботу: нужен паркинг и клининг"
      ]
    },
    {
      "id": "find_offers",
      "name": "Find offers in the person's communities",
      "description": "Neighbours' listings and business offers that fit a need, without names, phones or exact addresses.",
      "tags": [
        "marketplace",
        "community",
        "kazakhstan"
      ],
      "examples": [
        "Найди паркинг до 20 000 у Хан Шатыра"
      ]
    },
    {
      "id": "ask_seller",
      "name": "Ask a seller's agent",
      "description": "The seller's agent answers only from the listing; every «yes» must quote it, otherwise the seller is asked personally.",
      "tags": [
        "agent-to-agent"
      ],
      "examples": [
        "Можно ли помесячно?"
      ]
    },
    {
      "id": "business_quote",
      "name": "Business agent endpoint (inbound)",
      "description": "A business connects its own agent: Sagi Kin POSTs {\"query\", \"category\", \"community\"} with the business's bearer key to the business URL; the business answers {\"available\": bool, \"price_kzt\": int, \"text\": string} within 4 s. No contacts in the text — the person opens the contact, the business pays for the lead.",
      "tags": [
        "agent-to-agent",
        "business"
      ]
    },
    {
      "id": "watch",
      "name": "Standing order",
      "description": "The person's agent keeps an order for 30 days and asks every new fitting seller itself.",
      "tags": [
        "background"
      ]
    }
  ],
  "additionalInterfaces": [
    {
      "url": "https://testapi-community.sagibonus.com/api/v1/a2a",
      "transport": "JSONRPC"
    }
  ]
}