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

# Get Service List

> Fetch the list of available services

List all supported captcha types with per-solve retail pricing.

<Info>
  This endpoint shares the URL `/v2/getServicePrice` with [Get Service Price](/en/api/get-service-price). Pass `"type": "service"` for individual captchas; pass `"type": "package"` for combo packages.
</Info>

## Request

```http theme={null}
POST https://api.omocaptcha.com/v2/getServicePrice
Content-Type: application/json
```

### Body Parameters

| Parameter | Type     | Required | Description                                                        |
| --------- | -------- | :------: | ------------------------------------------------------------------ |
| `type`    | `String` |     ❌    | Defaults to `"service"`. Pass `"package"` to fetch combo packages. |

```json theme={null}
{
  "type": "service"
}
```

<Tip>
  An empty body `{}` also works — defaults to returning `services`.
</Tip>

## Response

<CodeGroup>
  ```json Success theme={null}
  {
    "errorId": 0,
    "errorCode": "",
    "errorDescription": "",
    "services": [
      {
        "type": "RecaptchaV2ImageTask",
        "name": "reCAPTCHA v2 image",
        "price": "0.00027",
        "avgSuccess": "99%",
        "avgTime": "1s",
        "image": "recaptcha.svg",
        "description": "Google Inc",
        "requireFields": ["imageBase64"]
      },
      {
        "type": "FuncaptchaImageTask",
        "name": "FunCaptcha Image",
        "price": "0.00027",
        "avgSuccess": "99%",
        "avgTime": "1s",
        "image": "funcaptcha.svg",
        "description": "Arkose Labs",
        "requireFields": ["imageBase64", "other"]
      }
    ]
  }
  ```
</CodeGroup>

### Response Fields

| Field           | Type     | Description                                                                         |
| --------------- | -------- | ----------------------------------------------------------------------------------- |
| `type`          | `String` | Technical name — used in `createTask.task.type`                                     |
| `name`          | `String` | Display name for UI                                                                 |
| `price`         | `String` | Per-solve price (USD, string to preserve decimal precision)                         |
| `avgSuccess`    | `String` | Average success rate                                                                |
| `avgTime`       | `String` | Average solving time                                                                |
| `image`         | `String` | Icon filename (full URL: `https://omocaptcha.com/storage/captcha-types/{filename}`) |
| `description`   | `String` | Short description                                                                   |
| `requireFields` | `Array`  | Fields that must be included in `task` when calling `createTask`                    |

## Public endpoint

<Note>
  This endpoint **does not require authentication**.
</Note>

## Cache

<Warning>
  The response is **cached for 60 seconds** on the server — if you need the latest data, wait for the cache cycle to expire.
</Warning>

## Examples

<CodeGroup>
  ```bash cURL theme={null}
  curl -X POST https://api.omocaptcha.com/v2/getServicePrice \
    -H "Content-Type: application/json" \
    -d '{"type": "service"}'
  ```

  ```javascript Node.js theme={null}
  const res = await fetch("https://api.omocaptcha.com/v2/getServicePrice", {
    method: "POST",
    headers: { "Content-Type": "application/json" },
    body: JSON.stringify({ type: "service" })
  });
  console.log(await res.json());
  ```

  ```python Python theme={null}
  import requests

  res = requests.post(
      "https://api.omocaptcha.com/v2/getServicePrice",
      json={"type": "service"}
  )
  print(res.json())
  ```
</CodeGroup>
