Skip to main content
parse-sdk is the runtime and the parse CLI. It generates a project-local, fully typed parse_apis package — the client for every API your key can call, with autocompleting resources, methods, enums, and typed responses. Clients are generated from the same spec that powers the REST and MCP surfaces.

Install

The SDK is managed with uv. Inside a uv project (run uv init first if you don’t have a pyproject.toml):
uv add installs the parse console script into the project’s .venv, which isn’t on your PATH. Invoke it as uv run parse <command>, or source .venv/bin/activate once and call parse directly. Examples below use the uv run form.
parse init is the one-time setup: it scaffolds the committed parse_apis package, records it as an editable path dependency ([tool.uv.sources]), appends a deny-by-default .gitignore block, ensures credentials, and runs the first parse sync. Run it from your project root, where the pyproject.toml lives.

Authenticate

parse init prompts for an API key on first run. To authenticate explicitly:
Credentials are saved to ~/.config/parse/credentials (the same path on every OS). The CLI and generated clients also read PARSE_API_KEY from the environment. uv run parse whoami shows the active key and base URL.

Add an API

A fresh project tracks all APIs your key can call. To curate an explicit set, add APIs by slug.

One of your own APIs

A marketplace API

Pull a ready-made API from the marketplace by slug, listing id, or URL:
parse add --marketplace downloads a pinned snapshot of a shared canonical API — it won’t change underneath you. Pass --version N to pin a specific release (the default is the latest at add time). To edit the API, subscribe and swap to your own copy in the dashboard.

Use it

Once you’ve added an API (here, the Walmart marketplace API above):
Run it in the project environment:
Resources and methods are generated from your API’s spec. The client class follows the API’s root type; the import module follows its slug. parse add prints the exact from parse_apis.… import … line, which also heads the generated README.md and example.py in each parse_apis/src/parse_apis/<slug>/ directory.

Project layout & manifest

parse init creates an installed, editable package — not a loose folder:
Commit the scaffold files (those not marked generated); the generated payload is per-key (it reveals your API inventory) and stays gitignored. Because parse_apis is an installed editable package, import parse_apis resolves from any directory. The repo curates which APIs it syncs via a [tool.parse] table in your pyproject.toml. parse add and parse remove manage it for you — you rarely edit it by hand:
Reconcile the generated package with the manifest at any time:
Commit the [tool.parse] table; the generated parse_apis/ payload is your choice. The manifest is the source of truth. Commit the payload too, or .gitignore it and run parse sync on checkout / in CI. After upgrading parse-sdk, re-run parse sync — generated code subclasses the runtime by version, and init/sync restamp the pin in parse_apis/pyproject.toml. (Release history.)

Agents & scripting

Most commands take --json for stable, machine-readable output — agents should prefer it. (init, login, and clean have no --json.) Errors still go to stderr; stdout stays parseable.
parse sync --check exits non-zero on drift, so it drops straight into CI. The generated AGENTS.md and CLAUDE.md files give a coding agent a cross-API index of every client, its resources, and example calls.

Setup prompt for coding agents

Paste this into Claude Code, Codex, or any coding agent to set up and use the SDK end to end:

Command reference

Run every command as uv run parse <command> (or bare parse in an activated venv).
parse doctor checks uv, the parse_apis scaffold, your pyproject deps and editable source, parse-sdk version skew, whether the project interpreter can import parse_sdk + parse_apis (the usual cause of dead autocomplete), and credentials. parse doctor --fix auto-remediates what it safely can.
Prefer no SDK? Every API is also a plain REST endpoint and an MCP server.