Skip to content

SDKs and clients

Every client below speaks the same REST API v2. Pick by language, or by where your code runs.

Client For Install State
TypeScript SDK web apps, Node tools, browser games npm install @onlyworlds/sdk published on npm
Python package scripts, pipelines, world folders pip install onlyworlds published on PyPI
Unity SDK Unity games and tools Package Manager, by git URL public, interface not yet stable
MCP server AI assistants and agents nothing to install: https://www.onlyworlds.com/mcp live
Plain REST any other language or engine none live

A world’s origin, in every client. A client’s world patch call (patchWorld, patch_world, PatchWorldAsync) sends source and producer when you name them, as given; a call that accepts a folder’s world.json leaves that file’s own pair out, since there it names the folder’s maker; and setting a world’s origin from a folder is a push’s first-fill step (only when the world’s origin is empty and the folder was not exported from that same world), never the plain patch call’s.

The TypeScript, Python and Unity clients generate their element types and fields from schema-dist, the published copy of the schema. For other engines, see Games.

The API needs no SDK. Send the key (and, for writes, the PIN) as headers:

import requests
headers = {"API-Key": "your-key", "API-Pin": "your-pin"}
r = requests.get("https://www.onlyworlds.com/api/v2/character/", headers=headers)
characters = r.json()["data"]

List responses come back in a {data, has_more, next_cursor} envelope, so paginate on next_cursor. To generate a client in another language, start from the OpenAPI document at https://www.onlyworlds.com/api/v2/openapi.json; the interactive reference is built from the same document.

The @onlyworlds/mcp-client npm package is retired: the MCP server is hosted now, with nothing to install.