Client comparison
CAPTCHA SDK or raw HTTP: choose a maintenance boundary
Compare typed client methods and transport adapters with direct HTTP requests, including error models, dependency ownership, and contract updates.
By the easycaptcha team · Published

An SDK packages request construction, response interpretation, typing, and reusable operations. Raw HTTP puts those decisions in your application. Neither removes the need to understand task states or the uncertainty of a creation timeout.
Contract handling
easycaptcha supplies Python and JavaScript SDKs with transport subclasses. Other languages can use the OpenAPI contract and direct HTTP. Choose the boundary your team can maintain and test.
Compare the practical responsibilities
| Area | SDK integration | Raw HTTP integration |
|---|---|---|
| Request fields | Typed public methods | Application-owned models |
| Transport | Choose or supply a backend | Configure your HTTP client |
| Errors | SDK interpretation plus job states | Parse status, content type, and body |
| Updates | Review SDK and API compatibility | Review your models against the contract |
A small dependency count is not automatically lower maintenance if your application reimplements response validation inconsistently. Conversely, an SDK is not a reason to ignore its version, supported runtimes, or optional dependency behavior.
Keep the lifecycle visible
After creating work, preserve its ID and inspect pending versus terminal states. A convenience call may return before completion. Treat result generation separately from application acceptance, and report feedback only after an actual outcome is observed.
Review retry behavior at both the application and transport layers. A raw client’s middleware or a supplied SDK backend can accidentally retry an ambiguous paid POST. Test the deployed configuration instead of only the default client.
Establish a compact fixture set
Keep examples for successful completion, pending work, an embedded job failure, an HTTP problem, malformed data, and a transport interruption. Verify credential redaction and exact monetary units too.
Use curl to inspect the server independently, TypeScript requests for union-based typing, or Go HTTP integration for a direct client that keeps status handling explicit.
Frequently asked questions
Do easycaptcha SDKs use a different API from raw HTTP?
No. They wrap the same public contract with typed methods and transport backends. You can implement the contract directly if needed.
Must I install every optional SDK transport dependency?
No. Import the backend you use and install its dependency. The core package avoids importing every optional client automatically.
How do I start using the easycaptcha API?
Create an account and get an API key, then follow the getting-started guide. Submit recognition or token tasks through raw HTTP or the typed Python and JavaScript SDKs.