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

# AI検索データAPI クイックスタート

> タスクを送信し、Webhookまたはポーリングで結果を受け取ります。

[スタートガイド](https://querying.ai/ja/guides/quickstart) · [APIプランとクレジット](https://querying.ai/ja/pricing)

## 1. 認証情報を設定する

```bash theme={null}
export BASE="https://api.querying.ai"
export API_KEY="<your-key>"
```

## 2. タスクを送信する

Gemini に質問してみます。`taskType` でエンジンを選び、`payload.prompt` に質問内容を入れます。

```bash theme={null}
curl -X POST "$BASE/v1/async/task" \
  -H "Authorization: Bearer $API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "taskType": "GEMINI",
    "payload": { "prompt": "best wireless earbuds 2026", "country": "US" }
  }'
```

タスクが受け付けられ、キューに入ります。

```json theme={null}
{
  "success": true,
  "task": {
    "id": "8f2c1e40-...",
    "taskType": "GEMINI",
    "status": "QUEUED",
    "priority": 1,
    "createdAt": "2026-07-09T04:12:00.000Z"
  },
  "credits": { "creditsToCharge": 0, "creditsCharged": 0 }
}
```

<Note>
  `credits` はレスポンスエンベロープの一部です。送信時とポーリング時は常にゼロで、Webhookが
  エンジンごとのクレジットコストを報告します(公開回答エンジンは1–2クレジット、Prompt Research は12クレジット、Source Influence は
  別途計測)。残高はダッシュボードで確認できます。
</Note>

## 3. 結果を受け取る

<Tabs>
  <Tab title="Webhook(推奨)">
    送信時に `webhook.url` を追加します。タスクが終了状態に達すると結果全体をそこへPOSTするため、
    ポーリングは不要です。

    ```bash theme={null}
    curl -X POST "$BASE/v1/async/task" \
      -H "Authorization: Bearer $API_KEY" \
      -H "Content-Type: application/json" \
      -d '{
        "taskType": "GEMINI",
        "payload": { "prompt": "best wireless earbuds 2026" },
        "webhook": { "url": "https://your-server.example.com/hook" }
      }'
    ```

    エンドポイントは `{ task, credits, response }` を受け取ります。配信と再試行の契約は
    [Webhook](/ja/concepts/webhooks)を参照してください。
  </Tab>

  <Tab title="ポーリング">
    `webhook` を省略し、idでタスクをポーリングします。タスクが終了状態になるまで `response` はありません。

    ```bash theme={null}
    curl "$BASE/v1/async/task/8f2c1e40-..." \
      -H "Authorization: Bearer $API_KEY"
    ```

    ```json theme={null}
    {
      "success": true,
      "task": { "id": "8f2c1e40-...", "status": "COMPLETED", "...": "..." },
      "credits": { "creditsToCharge": 0, "creditsCharged": 0 },
      "response": {
        "text": "The best wireless earbuds in 2026 are ...",
        "sources": [{ "position": 1, "url": "https://...", "label": "..." }]
      }
    }
    ```

    <Warning>
      公開ポーリングは完了後24時間利用できます。その間にポーリングしないと、完了したタスクも
      期限切れとして404になります。
    </Warning>
  </Tab>
</Tabs>

## 4. 一括で送信する

`POST /v1/async/task/batch` は同じタスクオブジェクトのJSON**配列**を1リクエストあたり最大500件受け付けます。
1つのバッチ内でエンジンを自由に混在できます。

```bash theme={null}
curl -X POST "$BASE/v1/async/task/batch" \
  -H "Authorization: Bearer $API_KEY" \
  -H "Content-Type: application/json" \
  -d '[
    { "taskType": "GEMINI",     "payload": { "prompt": "best wireless earbuds 2026" } },
    { "taskType": "PERPLEXITY", "payload": { "prompt": "best wireless earbuds 2026" } },
    { "taskType": "GOOGLE",     "payload": { "query":  "best wireless earbuds 2026" } }
  ]'
```

正しい形式のバッチは常に `200` を返します。個別の失敗は `results[].success = false` として現れるため、
1件の不正なタスクが残りを巻き込むことはありません。[一括送信](/ja/api-reference/create-task-batch)を参照してください。

<Note>
  Google 系エンジン(`GOOGLE`、`AIMODE`、`NAVER_*`)は `payload.query` を読み、LLMエンジンは
  `payload.prompt` を読みます。どちらか一方があれば検証は通りますが、エンジンは自分が期待する
  フィールドを優先して読みます。
</Note>

## 次のステップ

<CardGroup cols={2}>
  <Card title="エンジンを選ぶ" icon="cpu" href="/ja/engines/overview">
    すべての `taskType` と、それぞれが返す内容。
  </Card>

  <Card title="失敗に対処する" icon="triangle-alert" href="/ja/concepts/errors">
    エラーコード、ステータスコード、再試行できるケース。
  </Card>
</CardGroup>
