# Choose an API, SDK, or CLI

First choose whether you need to call models or operate product resources. Then choose an API, SDK, or CLI based on where the code runs and how much control you need.

## Quick selection

| Task | Recommended option | Why |
| --- | --- | --- |
| Call model chat, Responses, embeddings, or reranking from an application | Genesis Model API | Use the model interface and response shape directly. |
| Call compatible interfaces with an existing OpenAI or Anthropic client | Genesis-compatible SDK | Keep a familiar SDK calling pattern while using Genesis credentials and base URL. |
| Control Product HTTP methods, headers, fields, and responses precisely | Product API | Suitable for service-to-service integrations, webhooks, and interfaces without an SDK wrapper. |
| Operate workspace resources from a Go or Python application | Product SDK | Provides typed clients, workspace-scoped objects, and task wrappers. Install from scratch only after an official distribution channel is available. |
| Operate workspace resources in a terminal, operations script, or CI | `moi-cli` | Suitable for command discovery, JSON output, and short automation flows. Install from scratch only after an official distribution channel is available. |

## Do not mix integration configuration

| Option | Base URL | Credentials and scope |
| --- | --- | --- |
| Genesis Model API / OpenAI SDK | The complete Genesis base URL copied from the console **Use** page | Bearer credentials; model IDs come from the model list available to the current credential. |
| Anthropic SDK | Configure the Genesis origin/root as described on the Anthropic SDK page; the SDK appends the Messages path | Pass the Genesis credential with `auth_token` and set the required Anthropic version. |
| Product API | The complete Product API base URL that includes `/newmoi` | Pass the PAT in `X-API-Key`; workspace resources also require a workspace ID. |
| Product SDK | The same complete Product endpoint as Product API | PAT; list workspaces first, then create a workspace-scoped object. |
| `moi-cli` | The same complete Product endpoint as Product API | PAT; run `workspace list` first, then save a workspace ID. |

`moi-cli` does not call Genesis models. Product SDK is not an OpenAI- or Anthropic-compatible SDK; it operates workspace-scoped product resources.

## If you are still unsure

- Start with the Product API or Genesis API reference when you need to verify the exact HTTP contract.
- Evaluate whether Product SDK already wraps the task when an application must coordinate multiple Product objects.
- Use `moi-cli` for interactive inspection or for placing a small number of commands in a script.
- Return to Product API when the SDK or CLI does not provide the required capability. Do not infer an interface from a command or method name.

## Next steps

- [Call a Genesis model](../quickstart/genesis.md)
- [Call Product API](../quickstart/product-api.md)
- [Use Product SDK](../quickstart/product-sdk.md)
- [Use MOI-CLI](../quickstart/moi-cli.md)
