API
Every action as an HTTP endpoint: authentication, places, dry runs, errors and OpenAPI.
Every action is an HTTP endpoint: POST https://app.netzo.ai/api/rpc/<table>/<action>, with a JSON body. The tables and actions are in Domains.
curl -X POST "https://app.netzo.ai/api/rpc/salesorders/find" \
-H "x-api-key: $NETZO_API_KEY" \
-H "content-type: application/json" \
-d '{ "pagination": { "page": 1, "pageSize": 25 } }'| Need | Use |
|---|---|
| Authenticate | x-api-key: <key>, or an OAuth bearer token. See Authentication |
| Act in one place | ?moduleUid=<module>&entityId=<row> |
| Try a write without saving | x-netzo-dry-run: 1 |
| Errors in Spanish | Accept-Language: es |
| Every endpoint your key may call | https://app.netzo.ai/openapi.json, interactive at /scalar |
The OpenAPI document lists only the endpoints your credential may call, so a generated client never offers an action that would be refused. A refused call returns a code, a message in the caller's language and how to fix it. See Errors and limits.
Places
Every call can name its place. Without one, a read covers every place your permissions allow.
| Surface | Place sales/acme-mx |
|---|---|
| API | ?moduleUid=sales&entityId=acme-mx |
| MCP | "moduleUid": "sales", "entityId": "acme-mx" |
| CLI | --place sales/acme-mx |
Load many records
For each row, find the record on its business key, such as a product SKU, then update the record you find or create a new one. A second run then updates instead of duplicating. Send x-netzo-dry-run: 1 first to check every row without saving.