跳过主要内容

OHMBO DEVELOPER API

从你的软件发起硬件任务

使用原生任务 API 或已支持的 OpenAI SDK 调用,再回到 Ohmbo 查看可视化、产物以及其余硬件工作流程。

Compatible with OpenAI SDKs

基础地址

https://mcp.ohmbo.com/v1

使用 Ohmbo 账户中的正式或测试密钥。不同环境的任务、用量与额度相互隔离。

当前 API 范围

Developer API v1 接收异步 PCB 设计任务,并返回 Ohmbo 网站地址以查看完整结果。各适配层进入同一套账户、额度与任务系统。

/v1/designs
标准的创建、列表、查询、修改、取消、事件与产物操作。
/v1/responses
创建、查询和取消映射到原生 Ohmbo 任务的后台 Responses。
/v1/chat/completions
通过支持此端点的聊天客户端或中转服务提交一项异步硬件任务。
/v1/models
发现提供给已支持 SDK 和中转客户端的稳定 PCB 设计模型。

原生 API 快速开始

原生接口提供完整任务对象、游标分页、用量、幂等控制以及受账户授权的网站链接。

curl https://mcp.ohmbo.com/v1/designs \
  -H 'Authorization: Bearer $OHMBO_API_KEY' \
  -H 'Content-Type: application/json' \
  -H 'Idempotency-Key: enclosure-controller-v1' \
  -d '{"prompt":"Design an ESP32-C3 sensor board with USB-C power"}'

OpenAI SDK 示例

已测试范围包括模型列表、后台 Responses 与短响应的聊天任务提交。不支持的参数会明确报错。

Python

import os

from openai import OpenAI

client = OpenAI(
    api_key=os.environ['OHMBO_API_KEY'],
    base_url='https://mcp.ohmbo.com/v1',
)
response = client.responses.create(
    model='ohmbo-pcb-design-1',
    input='Design an ESP32-C3 sensor board with USB-C power',
    background=True,
)
job_id = response.model_extra['ohmbo_job_id']
print(response.model_extra['website_url'])

JavaScript

import OpenAI from 'openai';

const client = new OpenAI({
  apiKey: process.env.OHMBO_API_KEY,
  baseURL: 'https://mcp.ohmbo.com/v1',
});
const response = await client.responses.create({
  model: 'ohmbo-pcb-design-1',
  input: 'Design an ESP32-C3 sensor board with USB-C power',
  background: true,
});
console.log(response.ohmbo_job_id, response.website_url);

异步生命周期

硬件任务是异步的。提交后会立即返回;你可以轮询资源或订阅带签名的 Webhook。

  1. 01

    使用 Idempotency-Key 创建任务。响应包含任务 ID、预占额度与网站地址。

  2. 02

    当状态为 queued 或 in_progress 时,轮询原生任务或 Responses 资源。

  3. 03

    打开 website_url,在网站查看该阶段可用的完整项目界面与结果。

签名 Webhook

可在开发者设置或通过 /v1/webhooks 创建接收地址。处理事件前,请使用原始请求体和时间戳验证 Ohmbo-Signature。

signed = f"{timestamp}.{raw_body.decode()}".encode()
expected = hmac.new(signing_secret.encode(), signed, hashlib.sha256).hexdigest()
hmac.compare_digest(received_v1, expected)

错误、限流与额度

每个已认证响应都会返回当前凭证的请求窗口。429 响应包含 Retry-After。任务提交还受账户并发、额度和任务配额约束。

HTTP 401
authentication_error
HTTP 402
insufficient_credits
HTTP 409
idempotency_conflict
HTTP 422
invalid_request
HTTP 429
rate_limited / quota
HTTP 5xx
service unavailable
  • X-Request-Id
  • X-RateLimit-Limit
  • X-RateLimit-Remaining
  • X-RateLimit-Reset
  • Retry-After