SDKs & developer tools

Clients for the stacks your team already runs.

Two tiers: hand-written partner clients that wrap the calls most integrations need, and OpenAPI-generated clients that cover everything else. Both are issued during technical evaluation.

Clients

Four server languages.

These are server-side clients. Calls to ONE carry tenant-scoped credentials and belong in your backend, not in a mobile or browser app.

OneClient

Evaluation

JavaScript / Node

For Node backends calling ONE server to server. Also carries helpers for tenant administration.

one_client

Evaluation

Python

The same partner surface for backend and data teams working in Python.

ONE PHP SDK

Early access

PHP

For PHP application backends integrating planning and logging.

ONE .NET SDK

Early access

.NET

For teams standardising on Microsoft stacks for server-side integration.

Coverage

Which client should you use?

01

Covered by the hand-written clients

Health checks, tenant context, plan generation and manipulation, shopping lists, barcode lookup, food logs, substitutions and allergen analysis — the calls a partner backend makes every day.

02

Covered by the generated clients

The complete API surface, generated from the OpenAPI document into TypeScript, Python, PHP and C#. Use these when you need an endpoint the partner client does not wrap.

03

Always available underneath

Both are conveniences over plain HTTP. Nothing in ONE requires an SDK, and no capability is locked behind one.

Playground

Try the calls before you write the integration.

An interactive playground is available during technical evaluation, so your team can validate authentication and the core endpoints against a sandbox tenant first.

import { OneClient } from "@osca/one-client";

const one = new OneClient({
  baseUrl: "https://api.one.osca.solutions",
  token: process.env.ONE_TOKEN,
});

const plan = await one.createPlan({
  oneUserId: user.oneUserId,
  horizonDays: 7,
  mealTypes: ["breakfast", "lunch", "dinner"],
  idempotencyKey: `plan-${user.id}-${weekStart}`,
});

const list = await one.getShoppingList(plan.planId, { format: "json" });

Build personalised nutrition into your product.

Talk to the ONE by OSCA team about how personalised nutrition can fit your product roadmap — and how optional wearable data context can extend it when needed.

Product teams book a demo · Engineering teams explore the API and SDKs