Skip to content
easycaptcha.to
Documentation

Download and verify an extension through the SDK

Retrieve a published Chromium package, verify its size and SHA-256 through the SDK helper, and configure manifest defaults before installation.

Separate obtaining a package from configuring it

The SDKs provide extension-release lookup and download helpers. Downloading a package does not activate it, choose its permissions, or populate an API key. Use the configuration helpers below to add manifest defaults before installation, or configure the extension through its popup.

The SDK selects the Chromium extension internally; no extension ID is needed. Use browser to select a supported browser (currently "chromium"). The public download page remains the ordinary starting point for visitors.

Use an explicit destination

import os
from easycaptcha.backends.urllib import UrllibClient

with UrllibClient(os.environ["EASYCAPTCHA_API_KEY"]) as client:
    package = client.download_extension()
    package.save("easycaptcha-extension.zip")

The helper obtains release metadata and checks downloaded bytes against its declared size and SHA-256. Choose your own local path rather than treating the remote filename as a trusted path. Unpack the verified package according to the installation instructions.

If you need a specific version, use the documented version option instead of assuming latest remains unchanged between evaluation runs. Record both the requested version and the release metadata returned.

Add manifest defaults with the SDK

Python’s configure_settings returns a new package; it works with downloads from both synchronous and asynchronous clients:

import os
from easycaptcha.backends.urllib import UrllibClient

with UrllibClient() as client:
    package = client.download_extension()
    configured = package.configure_settings({
        "apikey": os.environ["EASYCAPTCHA_API_KEY"],
        "enabled": True,
        "burst": False,
        "fast": False,
    })
    configured.save("easycaptcha-configured.zip")

JavaScript’s configureExtension is available on every transport client:

import { writeFile } from "node:fs/promises";
import { FetchClient } from "@easycaptcha-to/sdk/fetch";

const client = new FetchClient();
const extension = await client.downloadExtension();
const configured = await client.configureExtension(extension, {
  apikey: process.env.EASYCAPTCHA_API_KEY,
  enabled: true,
  burst: false,
  fast: false,
});
await writeFile("easycaptcha-configured.zip", configured.data);

All four fields are optional. Helpers merge the supplied fields into existing easycaptcha_settings, reject unsupported names or invalid types, and preserve other manifest fields and asset contents. They leave the downloaded bytes intact and return a new ZIP. Extract that ZIP and load its directory into Chromium.

Release metadata, including size and SHA-256, still describes the original verified download; the configured ZIP has different bytes. Keep packages with embedded API keys private and use a dedicated key for each installation. Saved popup settings override these defaults in an existing browser profile. To add a manifest-only developer_tag, extract the configured ZIP and edit easycaptcha_settings in its root manifest.json before loading the extension. The SDK configuration helpers currently accept only the four fields above. See manifest configuration for field defaults and reload behavior.

Handle artifact and API failures independently

The release lookup and package download are separate network operations. A signed download URL can expire; do not permanently store it as though it were the stable package identifier. Retain the release ID and obtain fresh metadata when the contract requires it.

A size or digest mismatch is an integrity failure, not a reason to ignore verification and install anyway. Keep the failed metadata for diagnosis without exposing credentials or temporary signed links in public logs.

Configure a dedicated browser workflow

Install into an appropriate Chromium profile, open the popup, and choose the free or paid setup for that installation. Use a separately revocable paid key when account credit is needed. The extension supplies recognition assistance and does not submit your whole form.

Persistent profile setup explains how settings survive runs. Release integrity provides an evaluation record, and extension versus API helps choose whether package installation belongs in your integration at all.

Get started with easycaptcha

Build your next integration with easycaptcha.

Create an account, get your API key, and start submitting hCaptcha jobs. Use typed Python and JavaScript SDKs or integrate directly over HTTP.

Create an accountExplore the API

Prepaid credit. Check pricing before submitting paid tasks.