# SDKs overview

> Open-source TypeScript and Python clients for the REST API, generated from its OpenAPI document. Which to pick, how to install, and what a key can do.

Kind: guide · ~2 min · Verified v0.178.0 · Next: [TypeScript SDK](https://pr-1769-stg.superartifacts.app/docs/sdks/typescript.md)

The SDKs are thin clients for the [REST API](https://pr-1769-stg.superartifacts.app/docs/reference/api.md), for developers writing their
own code. Both are generated from the API's OpenAPI document, so they cover every endpoint, and
both are open source under the MIT licence.

## Which one to use

| You are | Use |
| --- | --- |
| Working through an agent such as Claude or Cursor | [MCP tools](https://pr-1769-stg.superartifacts.app/docs/reference/mcp.md), at `superartifacts.app/mcp` |
| Writing TypeScript or JavaScript on a server | [The TypeScript SDK](https://pr-1769-stg.superartifacts.app/docs/sdks/typescript.md) |
| Writing Python | [The Python SDK](https://pr-1769-stg.superartifacts.app/docs/sdks/python.md) |
| Writing any other language, or generating your own client | The [REST API](https://pr-1769-stg.superartifacts.app/docs/reference/api.md) |

Every MCP tool has an endpoint, and every endpoint has an SDK method. An SDK adds typed calls,
errors you can catch, retries that cannot publish twice, iterators over paged reads, and the
round trip for uploading files.

## Install

```bash
npm install @superartifacts/sdk
```

```bash
pip install superartifacts
```

The TypeScript SDK has no runtime dependencies. Node 20.3+. It uses only the standard `fetch`, so other runtimes that provide it may work; only Node is tested. The Python SDK needs
Python 3.10 or newer.

## The key

Create a key in [Settings → API keys](https://superartifacts.app/settings/api-keys) and put it in
the `SUPERARTIFACTS_API_KEY` environment variable, which both SDKs read. A key can **read**, or
**read and write**; a read key that calls a write gets a `scope_required` error.

## Server side only

The API refuses any request carrying an `Origin` header, which every browser adds, and a key on a
page is a leaked key. Call the SDKs from a server, a script or a scheduled job.

## Source and packages

- [GitHub: Super-Artifacts/sdk](https://github.com/Super-Artifacts/sdk)
- [npm: @superartifacts/sdk](https://www.npmjs.com/package/@superartifacts/sdk)
- [PyPI: superartifacts](https://pypi.org/project/superartifacts/)
