# クイックスタート

> 5 分で最初の YesCaptcha リクエストを送信します。アカウント登録、clientKey のコピー、チャージを行い、curl、Python、Node.js で画像キャプチャを認識します（ImageToTextTaskOcrBase、同期で結果を返し、1 回 2 ポイント）。

Source: https://docs.yescaptcha.com/ja/getting-started/quickstart/ · Last verified: 2026-10-15

> This page was machine-translated from the Chinese version. If anything differs, the Chinese version prevails: https://docs.yescaptcha.com/zh/getting-started/quickstart/

このページでは、最もシンプルなタスクタイプ `ImageToTextTaskOcrBase`（画像内の英数字を認識します）で最初のリクエストを送信します。同期タイプなので、`createTask` リクエスト 1 回で結果が返ります。料金は 1 回 2 ポイント（約 $0.30 / 1k） で、サードパーティのサイトに依存しないため、アカウントとコードに問題がないかの確認に適しています。

1.  **アカウントを登録する**
    
    [yescaptcha.com](https://yescaptcha.com/) を開き、登録してログインします。
    
2.  **clientKey をコピーする**
    
    ログイン後、ダッシュボード（[yescaptcha.com/dashboard.html](https://yescaptcha.com/dashboard.html)）で「クライアントキー」を探してコピーします。全体をコピーしてください。
    
    > **注意:** API リクエストはすべて clientKey で認証されます。第三者に知られると、あなたの残高を使われてしまいます。他人に送ったり、公開するコードに書き込んだりしないでください。漏えいした場合は、同じ場所でリセットできます。
    
3.  **チャージする**
    
    タスクを作成するには、残高が 10 ポイントを超えている必要があります。チャージ方法と VIP ボーナスについては [チャージと VIP](https://docs.yescaptcha.com/ja/account/recharge.md) を参照してください。
    
4.  **clientKey が使えることを確認する**
    
    `getBalance` で残高を確認します。ポイントは消費されません。
    
    ```bash
    curl -s https://api.yescaptcha.com/getBalance \
      -H 'Content-Type: application/json' \
      -d '{"clientKey": "YOUR_CLIENT_KEY"}'
    ```
    
    `{"errorId": 0, "balance": 12345, ...}` が返れば利用可能です。`balance` は残りのポイント数です。`ERROR_KEY_DOES_NOT_EXIST` が返った場合は、キーのコピーが間違っています。
    
5.  **画像を認識する**
    
    サンプル画像 [captcha.jpg](https://docs.yescaptcha.com/samples/captcha.jpg) をダウンロードし（自分のキャプチャ画像でも構いません）、clientKey を環境変数に設定してから実行します。
    
    ```bash
    export YESCAPTCHA_CLIENT_KEY=你的clientKey
    ```
    
    **curl**
    
    quickstart.sh
    
    ```bash
    #!/usr/bin/env bash
    # First request: read an alphanumeric image captcha with ImageToTextTaskOcrBase (synchronous, 2 points per image)
    # Usage: YESCAPTCHA_CLIENT_KEY=your_client_key bash quickstart.sh captcha.png
    set -euo pipefail
    IMAGE="${1:-captcha.png}"
    BODY=$(base64 < "$IMAGE" | tr -d '\n')   # no "data:" prefix, no line breaks
    curl -s https://api.yescaptcha.com/createTask \
      -H 'Content-Type: application/json' \
      -d "{\"clientKey\": \"${YESCAPTCHA_CLIENT_KEY}\", \"task\": {\"type\": \"ImageToTextTaskOcrBase\", \"body\": \"${BODY}\"}}"
    echo
    ```
    
    
    
    **Python**
    
    quickstart.py
    
    ```python
    """First request: read an alphanumeric image captcha with ImageToTextTaskOcrBase
    (synchronous, 2 points per image).
    
    Usage:
        export YESCAPTCHA_CLIENT_KEY=your_client_key
        python quickstart.py captcha.png
    """
    import base64
    import os
    import sys
    
    import requests
    
    CLIENT_KEY = os.environ["YESCAPTCHA_CLIENT_KEY"]
    image_path = sys.argv[1] if len(sys.argv) > 1 else "captcha.png"
    
    with open(image_path, "rb") as f:
        body = base64.b64encode(f.read()).decode()  # no "data:" prefix
    
    r = requests.post(
        "https://api.yescaptcha.com/createTask",
        json={
            "clientKey": CLIENT_KEY,
            "task": {"type": "ImageToTextTaskOcrBase", "body": body},
        },
        timeout=30,
    )
    data = r.json()
    if data.get("errorId"):
        raise SystemExit(f"{data.get('errorCode')}: {data.get('errorDescription')}")
    print("text:", data["solution"]["text"])
    ```
    
    
    
    **Node.js**
    
    quickstart.mjs
    
    ```js
    // First request: read an alphanumeric image captcha with ImageToTextTaskOcrBase (synchronous, 2 points per image).
    // Usage: YESCAPTCHA_CLIENT_KEY=your_client_key node quickstart.mjs captcha.png
    import { readFileSync } from 'node:fs';
    
    const CLIENT_KEY = process.env.YESCAPTCHA_CLIENT_KEY;
    const body = readFileSync(process.argv[2] ?? 'captcha.png').toString('base64'); // no "data:" prefix
    
    const res = await fetch('https://api.yescaptcha.com/createTask', {
      method: 'POST',
      headers: { 'Content-Type': 'application/json' },
      body: JSON.stringify({ clientKey: CLIENT_KEY, task: { type: 'ImageToTextTaskOcrBase', body } }),
    });
    const data = await res.json();
    if (data.errorId) throw new Error(`${data.errorCode}: ${data.errorDescription}`);
    console.log('text:', data.solution.text);
    ```
    
    実行コマンドは `bash quickstart.sh captcha.jpg`、`python quickstart.py captcha.jpg`、`node quickstart.mjs captcha.jpg` のいずれかです。Python は事前に `pip install requests` が必要で、Node.js は 18 以上のバージョンが必要です。
    
6.  **結果を確認する**
    
    成功すると次のように返ります。
    
    ```json
    {
      "errorId": 0,
      "status": "ready",
      "solution": {
        "text": "LMResm"
      },
      "taskId": "2376919c-1863-11ec-a012-94e6f7355a0b"
    }
    ```
    
    `errorId` が 0 なら成功で、認識された文字は `solution.text` に入っています。`errorId` が 1 の場合は `errorCode` を確認してください。意味は [エラーコード](https://docs.yescaptcha.com/ja/api/errors.md) を参照してください。
    

## 次のステップ

-   reCAPTCHA や hCaptcha のように token を返すタスクは**非同期**です。`createTask` がまず `taskId` を返し、その後 5 秒ごとに `getTaskResult` を呼び出します。全体の流れは [リクエストとレスポンス](https://docs.yescaptcha.com/ja/api/overview.md)、例は [reCAPTCHA v2](https://docs.yescaptcha.com/ja/tasks/recaptcha-v2.md) を参照してください。
-   タスクタイプを選ぶ：[タスクタイプと料金](https://docs.yescaptcha.com/ja/tasks.md)。
-   プロジェクトにそのままコピーして使えるクライアント：[Python](https://docs.yescaptcha.com/ja/samples/python.md)、[Node.js](https://docs.yescaptcha.com/ja/samples/nodejs.md)。
-   コードを書かない場合：[ブラウザ拡張機能](https://docs.yescaptcha.com/ja/extension.md)。
