Developer docs

Oimo developer docs

Oimo records the published prices and terms of service of AI and cloud providers. Connect your systems in two ways:

The base URL is https://oimo.com. All requests and deliveries use HTTPS and JSON.

Quickstart

From sign-up to a verified webhook and a first API call in five steps.

1. Sign in

Open https://oimo.com and choose Sign in. If you have no account yet, create one on the sign-in page.

2. Create a workspace

Webhooks, API keys and teammates belong to a workspace. Choose Manage workspaces, then Create workspace. You become its admin; invite teammates under Members & invitations.

3. Create a webhook

  1. Open Connect → Webhooks and choose New webhook.
  2. Enter a name and your endpoint URL (it must be https://).
  3. Tick the events you want (start with Price changes) and the providers, or All providers.
  4. Choose Create webhook. The signing secret (whsec_…) is shown when the webhook is created: store it with your receiver. You can reveal it again from the webhook's Settings with Reveal signing secret.
  5. Open the webhook's Settings and choose Send test event. A signed webhook.test event goes out with the next delivery run (within 5 minutes). Its attempts appear under Deliveries.

Your receiver must verify the signature and answer with a 2xx status within 5 seconds. A minimal Node.js receiver:

shell
npm install express standardwebhooks
receiver.mjs
import express from "express";
import { Webhook } from "standardwebhooks";

const webhook = new Webhook(process.env.OIMO_WEBHOOK_SECRET);
const app = express();

app.post("/hooks/oimo", express.raw({ type: "application/json", limit: "5mb" }), (req, res) => {
  let event;
  try {
    event = webhook.verify(req.body, req.headers);
  } catch {
    return res.status(400).send("invalid signature");
  }
  console.log(event.type, event.id);
  res.sendStatus(204);
});

app.listen(3000);

4. Create an API key

Open Connect → API keys, name the key after the system that will use it and choose Create key. The key is shown once. Keys can read; they cannot change anything.

5. Read price history

shell
export OIMO_API_KEY='<your key>'
curl -s "https://oimo.com/v1/prices/history?providers=openai&limit=5" \
  -H "Authorization: Bearer $OIMO_API_KEY"

The answer names the asOf instant it was read at. Store it with anything you compute from the prices: the same asOf always returns the same rows. See Price history API.

Concepts

Workspace
Your organization. Webhooks, API keys and members belong to one workspace. One account can belong to several and switch between them.
Roles
Admins and members create and change webhooks and API keys and can reveal or rotate signing secrets. Only admins invite people, change roles and remove members. Every workspace keeps at least one admin.
Provider
A company that sells AI or cloud services, named by a slug such as openai or aws. GET /v1/providers lists them.
Resource
What a provider sells and prices: a model, a GPU type, a service. Named the way the provider names it (gpt-5), and where known also by a canonical id (openai/gpt-5).
Price line
One price of a resource: a dimension (input tokens, output tokens, GPU hours, …), a unit, a currency and a pricingTier.
Alias group
One resource under each provider's own name for it, for example the same model sold by its maker, by AWS and by Azure. Webhooks and the price history API can follow a group instead of naming each provider's resource.
Reviewed price
Only published prices are served: new prices pass automatic checks, and some are held for a person to approve. Prices that are pending or rejected never appear in the API or in webhooks.