# SDKs

> Source: https://pixelsystems.com/docs/sdk


TypeScript libraries for calling the Pixel Systems API from a browser or a server.

Both libraries call the endpoints documented in the [API reference](https://pixelsystems.com/docs/api) and return the same [result structure](https://pixelsystems.com/docs/api/resources#fileresult), so an integration written against one reads the same results as an integration written against the API directly. Which one you need depends on where the file is submitted from. Both are available on request: [contact us](https://pixelsystems.com/contact) for access.

## Choose an SDK

- [Client SDK](https://pixelsystems.com/docs/sdk/client): Runs in the browser, for files your end users submit from a web or mobile app. Your API key stays on your server.
- [Server SDK](https://pixelsystems.com/docs/sdk/server): Runs on your server, for files your own systems submit, with typed calls for every operation in the API reference.

## What the SDKs handle for you

Everything below is work you would otherwise write yourself against the REST API:

- Authenticating each call, and keeping the API key off the browser.
- Encoding the file upload as [`multipart/form-data`](https://developer.mozilla.org/en-US/docs/Web/HTTP/Reference/Methods/POST) with the right boundary.
- Waiting for a verdict: polling a job until its status leaves `processing`, instead of a hand-written loop.
- Typed results and typed errors, so a verdict field or an error code is checked at compile time rather than at runtime.

## Versioning

Both SDKs target version 1 of the API, the same `/v1` paths listed in the [API reference](https://pixelsystems.com/docs/api). A change that breaks an existing call arrives as a new API version, not as a change to `/v1`.
