Search documentation

Search across all documentation pages

Get API Key
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. Billed by AI tokens on the job — see Usage billing.

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/discoverAI tokens

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.

AI tokens are metered when you create the job. Polling, streaming, listing, and cancelling jobs is free. Token counts appear on the job's usage when it completes — see Usage billing.

Try it

Try itPOST · async job
Requirements *

The AI weighs the soft tradeoffs here against the hard filters below, then selects a diverse ranked set.

Categories
Exclude categories
Manufacturers
Status

Defaults to active when none are selected.

Price
Spec filters

Keyed by spec display name. Give values for an enum match, or a min/max for a numeric range.

Request body
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 "limit": 5
4}
Request
cURL
curl -X POST "https://api.zenode.ai/v1/parts/discover" \
-H "Authorization: Bearer <YOUR_API_KEY>" \
-H "Content-Type: application/json" \
-d '{
"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.",
"limit": 5
}'
Describe what you need to enable the run.

Following the job

BASH
1# 1. Start discovery
2curl https://api.zenode.ai/v1/parts/discover \\
3 -H "Authorization: Bearer <YOUR API KEY HERE>" -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 <YOUR API KEY HERE>"

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

Next