> For clean Markdown of any page, append .md to the page URL.
> For a complete documentation index, see https://docs.morphiaone.ai/llms.txt.
> For AI client integration (Claude Code, Cursor, etc.), connect to the MCP server at https://docs.morphiaone.ai/_mcp/server.

# Build with MorphiaOne

MorphiaOne lets your server analyze a face image, apply makeup, or recolor hair under
a mask you provide. The same API supports three integration paths. Start with an SDK
unless your language or deployment needs direct HTTP calls.

> **Info**
>
> **Release status.** API `1.0.0-rc.1` is a release candidate: request and response shapes may still change before the stable release. SDK `0.2.2` is published as a Developer Preview (`@morphiaone/sdk` on npm and `morphiaone` on PyPI).

## Start here

1. **[Get access](/getting-started/access).** Accounts are provisioned by MorphiaOne;
   once invited, sign in at [platform.morphiaone.ai](https://platform.morphiaone.ai) and
   create an API key.
2. **Pick a path** below and send your first request to `https://api.morphiaone.ai`,
   with a `pk_test_` key while you build.
3. **Read the [production guide](/guides/production)** before you go live.

## Accounts, environments and keys

| Term            | What it is                                                                                                                                                 |
| --------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------- |
| **Account**     | Your organization: its members, billing and credits.                                                                                                       |
| **Environment** | `live` or `test`. Every account has one of each. Keys, Assets, Jobs, usage and webhook endpoints belong to one environment and never cross into the other. |
| **API key**     | A server-side secret for one environment: `pk_live_...` or `pk_test_...`. It carries the scopes of the products it may call.                               |

## Choose an integration path

#### [TypeScript](/getting-started/quickstart)

Developer Preview

`npm install --save-exact @morphiaone/sdk@0.2.2`

Node.js 20 or newer. Typed, ESM, no runtime dependencies.

#### [Python](/sdks/python)

Developer Preview

`python -m pip install morphiaone==0.2.2`

Python 3.11 or newer, with a sync and an async client.

#### [REST](/rest-api/onboarding)

Release candidate

`https://api.morphiaone.ai`

Plain HTTP with an `X-API-Key` header, from any language.

The SDKs handle authentication headers, Asset uploads, idempotency keys, retries,
job polling, and typed results. Use REST when you need a direct HTTP integration or
want to implement those steps yourself. Both SDKs are server-side packages; an API key
must never ship in a browser or mobile app.

## One request pattern across products

1. Upload each input image once as an **Asset**.
2. Submit a product request that references its Asset id. The API returns a **Job** and
   runs the work asynchronously.
3. Wait for the Job to finish, then read its typed output and any result Assets.

A successful submission means the Job was accepted. It does not mean the analysis or
render succeeded. A failed Job is terminal and carries a code; handle it before
reading output. See [Jobs](/concepts/jobs), [Errors](/concepts/errors), and
[Idempotency](/concepts/idempotency).

## Products and availability

Skin Analysis returns cosmetic scores and optional visualizations. Makeup Try-On
renders requested products in order. Hair Color Try-On finds the hair in a photo and
recolors it; it does not change style or length.

The [product availability table](/products/availability) is the shared status source
for this site and the Developer Platform. Your account is provisioned for the products
in your agreement, and a key calls a product only if it carries that product's scope.

## From first request to production

Start with the [TypeScript quickstart](/getting-started/quickstart). For Python, begin
with the [Python SDK guide](/sdks/python). If a browser or mobile application needs
results, put a backend-for-frontend between the client and MorphiaOne; see
[serving a browser or mobile client](/guides/bff-pattern).

Before launch, read [Going to production](/guides/production) and
[error handling guide](/concepts/errors). The endpoint reference is generated from
the API contract, while these guides explain integration choices and failure handling.