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

# Quickstart

> Get an API key and make your first PocketUtils API call in under five minutes.

This guide takes you from a fresh account to a successful API response.

<Tip>
  Want to try an endpoint before writing any code? Every [tool page](https://pocketutils.com/tools) has a live playground that calls the exact same production endpoint documented here — no signup required.
</Tip>

## Prerequisites

* A PocketUtils account — [sign up free](https://pocketutils.com/auth/get-started)
* A **Starter** plan or above. API keys aren't available on the Free plan — Free is the browser-playground allowance. See [Rate Limits & Credits](/rate-limits-and-credits) for what each plan includes.

## Get started

<Steps>
  <Step title="Create an API key">
    From your [dashboard](https://pocketutils.com/profile/api-keys), click **New key**, give it a name (e.g. "Production"), and copy the generated secret immediately — it starts with `pu_live_` followed by a random string, and is shown only this once.

    Every code example on this site uses `YOUR_API_KEY` as a placeholder — swap it for your real key below to run the requests yourself.

    <Warning>
      The full key is shown exactly once, at creation. PocketUtils stores only its hash — if you lose the key, revoke it from the dashboard and create a new one.
    </Warning>
  </Step>

  <Step title="Make your first request">
    Call any endpoint with your key in the `Authorization` header. `GET /v1/down-check` is the simplest place to start — it just takes a URL to check.

    <CodeGroup>
      ```bash cURL theme={null}
      curl "https://api.pocketutils.com/v1/down-check?url=https://example.com" \
        -H "Authorization: Bearer YOUR_API_KEY"
      ```

      ```javascript JavaScript theme={null}
      const res = await fetch(
        "https://api.pocketutils.com/v1/down-check?url=https://example.com",
        {
          headers: {
            Authorization: "Bearer YOUR_API_KEY",
          },
        },
      );
      const data = await res.json();
      console.log(data);
      ```

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

      res = requests.get(
          "https://api.pocketutils.com/v1/down-check",
          params={"url": "https://example.com"},
          headers={"Authorization": "Bearer YOUR_API_KEY"},
      )
      print(res.json())
      ```
    </CodeGroup>
  </Step>

  <Step title="Read the response">
    A successful call always returns `success: true` with the result under `data`:

    ```json theme={null}
    {
      "success": true,
      "data": {
        "url": "https://example.com",
        "testedFrom": "India (Mumbai)",
        "httpsStatus": 200,
        "responseTimeMs": 214,
        "ipAddress": "93.184.216.34"
      }
    }
    ```

    Every response also carries an `X-Credits-Remaining` header, or you can check your balance explicitly with [`GET /v1/quota`](/api-reference/quota).
  </Step>

  <Step title="Handle errors">
    A failed call always returns `success: false` — and never spends a credit:

    ```json theme={null}
    {
      "success": false,
      "error": {
        "code": "insufficient_credits",
        "message": "Not enough credits for this request. Buy a top-up pack or wait for your cycle to renew.",
        "creditsRequired": 1
      }
    }
    ```

    See the full [error code reference](/errors).
  </Step>
</Steps>

## Next steps

<CardGroup cols={2}>
  <Card title="Authentication" icon="key" href="/authentication">
    All three ways to call the API, and how each is billed.
  </Card>

  <Card title="API Reference" icon="book-open" href="/api-reference/quota">
    Every endpoint, with parameters, responses, and examples.
  </Card>
</CardGroup>

<Tip>
  Need help? Reach out at [support@pocketutils.com](mailto:support@pocketutils.com).
</Tip>


## Related topics

- [Introduction](/index.md)
