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

# SDKs and integrations

> The browser SDK, server SDKs for Node.js, Python, PHP and Laravel, and the WordPress and Shopify plugins.

## In the browser

<Card title="Browser SDK" icon="window-maximize" href="/integration/web/browser-sdk">
  A script tag that opens the verification over your page and tells you when the person finishes. No build step.
</Card>

## On your server

The server SDKs sign every request, verify webhooks, parse all error shapes into one exception type, and retry only what is safe to retry: a `POST` that may already have been acted on is not retried after a timeout or a 5xx, so a retry never creates a second verification.

| Language | Version | Install |
| - | - | - |
| [Node.js](/integration/server-sdks/node) | <img src="https://img.shields.io/npm/v/@proofage/node?label=&color=3b82f6&style=flat-square" alt="npm" noZoom style={{ display: "inline", margin: 0, verticalAlign: "middle" }} /> | `npm install @proofage/node` |
| [Python](/integration/server-sdks/python) | <img src="https://img.shields.io/pypi/v/proofage?label=&color=3b82f6&style=flat-square" alt="PyPI" noZoom style={{ display: "inline", margin: 0, verticalAlign: "middle" }} /> | `pip install proofage` |
| [PHP](/integration/server-sdks/php) | <img src="https://img.shields.io/packagist/v/proofage/php-sdk?label=&color=3b82f6&style=flat-square" alt="Packagist" noZoom style={{ display: "inline", margin: 0, verticalAlign: "middle" }} /> | `composer require proofage/php-sdk` |
| [Laravel](/integration/server-sdks/laravel) | <img src="https://img.shields.io/packagist/v/proofage/laravel-client?label=&color=3b82f6&style=flat-square" alt="Packagist" noZoom style={{ display: "inline", margin: 0, verticalAlign: "middle" }} /> | `composer require proofage/laravel-client` |

The version column shows what each registry serves now. Each SDK page lists the runtime versions it supports.

The Node.js, Python and Laravel SDKs read `PROOFAGE_API_KEY` and `PROOFAGE_SECRET_KEY` from the environment; the PHP SDK takes them in its constructor.

## Plugins

<CardGroup cols={2}>
  <Card title="WordPress and WooCommerce" icon="wordpress" href="/integration/plugins/wordpress">
    Age verification for a WordPress site or WooCommerce store.
  </Card>

  <Card title="Shopify" icon="shopify" href="/integration/plugins/shopify">
    Age verification for a Shopify store.
  </Card>

  <Card title="PrestaShop" icon="store" href="/integration/plugins/prestashop">
    Age verification for a PrestaShop store.
  </Card>
</CardGroup>

## Without an SDK

Any language that can compute an HMAC can call the API: see [API authentication](/getting-started/api-authentication) and the [API reference](/api-reference/overview). An AI coding agent can also write the integration for you with the [integration prompt](/integration/integration-prompt).


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.