ZenodeZenode
Endpoints

AI part discovery

AI-driven part discovery

Describe what you need and let Zenode's AI return the best parts to choose from. Combine hard constraints (filters) with a soft, natural-language need (requirements) — the AI honors the constraints and weighs the tradeoffs in your description.

ai:run

This endpoint runs an AI agent, so it's asynchronous: it returns a job you poll or stream for the result.

POSThttps://api.zenode.ai/v1/parts/discover

202Accepted Job (type: discover)

Request

JSON
1{
2 "requirements": "Low-power 6-axis IMU for a wrist wearable. I2C, smallest package possible, needs a built-in step counter. Cost-sensitive at 10k volume.",
3 "filters": {
4 "categories": [
5 "sensors/motion-sensors/imus"
6 ],
7 "status": [
8 "active"
9 ],
10 "specs": {
11 "Supply Voltage": {
12 "lte": 3.6,
13 "unit": "V"
14 }
15 }
16 },
17 "limit": 5
18}
ParameterTypeRequiredDescription
requirements
stringRequiredNatural-language description of the need; the AI reasons over soft tradeoffs
filters
PartFiltersOptionalHard must-have constraints
limit
intOptionalNumber of picks to return, default 5, max 10

Result

The job's result is a DiscoverResult (when type is discover):

JSON
1{
2"summary": "All three are active, sub-3.6 V 6-axis IMUs with on-chip step counting in 2.5×3 mm packages. The LSM6DSO wins on price at 10k; the BMI270 has the lowest sleep current.",
3"results": [
4 {
5 "rank": 1,
6 "part": { /* PartDetail see Objects */ },
7 "fit_rationale": "Lowest sleep current (3 µA) with a hardware step counter; I2C/SPI; 2.5×3 mm LGA. Best fit for always-on wrist wear."
8 }
9]
10}

summary is an overall narrative comparing the picks; results is a list of DiscoverPick, ranked best-first up to limit. Each pick pairs a full PartDetail with a fit_rationale.

Following the job

cURL Example
1# 1. Start discovery
2curl https://api.zenode.ai/v1/parts/discover \
3-H "Authorization: Bearer zk_live_..." -H "Content-Type: application/json" \
4-d '{ "requirements": "...", "limit": 5 }'
5# → 202 { "job_id": "job_8f3a...", "status": "queued", ... }
6
7# 2. Poll until completed (or stream — see the Jobs page)
8curl https://api.zenode.ai/v1/jobs/job_8f3a... \
9-H "Authorization: Bearer zk_live_..."

See Async AI jobs for polling, streaming, and usage reporting.

Next