Install Jentic One Beta
Jentic One is a self-hosted execution layer for AI agents. It lets your agent call the Holded API, or any other public or private API you need. You set the rules, the agent never sees your credentials, and every call is logged.
Two steps, two machines. Install the instance in a safe environment, then register your agent from wherever it runs.
Step 1: Jentic One Host machine
# On the machine that will host your Jentic One instance:
curl -fsSL "https://jentic.com/install.sh?src=apis&api=%2Fapis%2Fholded.com%2Fholded" | shStep 2: Agent machine
# On the machine where your agent runs (keep this separate from the instance):
curl -fsSL "https://jentic.com/install.sh?src=apis&api=%2Fapis%2Fholded.com%2Fholded" | sh
jentic register # connects your agent to your Jentic One instanceJentic One is in public beta. The setup above keeps your agent separate from the instance, which is what you want before using real credentials: an agent running as the same OS user as Jentic One can read its stored keys directly. Just evaluating? A single local install is fine to start. See the secure deployment guide for the tiers.
What an agent can do with Holded API.
Manage Holded contacts (clients, suppliers) with CRUD operations
Maintain a product catalog with pricing, codes, and attributes
Read and create treasuries to represent bank and cash accounts
Connect CRM records to invoicing for end-to-end revenue tracking
Coordinate accounting, invoicing, projects, and team data through one API surface
GET STARTED
Patterns agents use Holded API for, with concrete tasks.
★ CRM and Contact Sync
Sales tools and forms keep contact data fresh by pushing to Holded contacts. The API supports list, get, create, update, and delete on contacts so agents can dedupe and merge against existing records. This avoids the duplicate-client problem that plagues teams that maintain CRM records by hand.
Create a Holded contact for 'Acme Inc' with email billing@acme.com and verify no duplicate already exists by name match.
Product Catalog Automation
E-commerce and operations teams keep their Holded product catalog in sync with their PIM or store backend. The API exposes product list, get, create, and update operations so price and code changes propagate without manual entry. Catalog drift between systems disappears.
Create a Holded product with name 'Widget Pro', code WP-001, and price 49.99 EUR.
Treasury and Cash Visibility
Finance leads need a daily view of cash across multiple bank and cash accounts. GET /api/treasuries lists all configured treasuries, and POST creates new accounts as banking relationships expand. Agents pull this for end-of-day cash dashboards or alerts on low balances.
List all Holded treasuries and return the account names alongside their treasury ids.
Agent-Run ERP Operations
An AI ops agent connected via Jentic handles routine ERP work: it creates contacts from inbound forms, adds products from spreadsheets, and reconciles treasuries against bank feeds. The Holded key header stays in your Jentic One instance so the agent never holds the credential. End-to-end setup is under an hour because operation schemas load on demand.
From a CSV of new clients, create matching Holded contacts for any not already in the system and report which were created.
55 endpoints — holded is an erp platform for small and medium businesses that bundles invoicing, crm, project management, team operations, and accounting in one product.
METHOD
PATH
DESCRIPTION
/api/contacts
List contacts
/api/contacts
Create contact
/api/products
List products
/api/products
Create product
/api/treasuries
List treasuries
/api/contacts
List contacts
/api/contacts
Create contact
/api/products
List products
/api/products
Create product
/api/treasuries
List treasuries
What agents get from Jentic-routed access to this vendor.
Setup
Wiring Holded by hand means setting up its apiKey header auth, keeping the api.holded.com host straight across contacts, products, and treasury endpoints, and handling errors yourself. Through Jentic you install once, import the Holded API from the API Directory, store the key once, and your agent calls it.
Permission scoping
Holded takes the ERP resource in the request body and URL, so scope your agent to the operations it needs, such as reading contacts or creating a product. You decide which calls are in the allowed set, so write operations like creating invoices are excluded unless you add them.
Credential isolation
Your Holded key header is stored once, encrypted, by your own Jentic One instance and injected at execution time. It never enters the agent's prompt, logs, or context.
Intent-based discovery
Agents search Jentic by intent such as 'create a contact in Holded' or 'list products', and Jentic returns the matching Holded operation with its input schema so the agent calls the right endpoint without browsing the reference docs.
Alternatives and complements available in the Jentic catalogue.
Stripe API
Stripe collects payments that flow into Holded invoices and treasuries
Choose Stripe to actually collect customer card payments; reflect the resulting receipts against Holded invoices and treasuries.
Specific to using Holded API through Jentic.
What authentication does the Holded API use?
Holded uses an API key sent in the 'key' header on every request. Through Jentic, the key is stored encrypted in your Jentic One instance and added to the Authorization header at execution time, so the agent never reads the raw value.
Can I create and update products with the Holded API?
Yes. POST /api/products creates a product with name, code, and price; PUT /api/products/{id} updates fields on an existing product; DELETE /api/products/{id} removes one. Use GET /api/products to enumerate the catalog before deciding which operation to call.
What are the rate limits for the Holded API?
Holded does not publish hard rate limits in its OpenAPI spec. Treat the API as moderate-volume - keep request rates below a few per second per account and back off on 429 responses, especially when batch-syncing contact or product data.
How do I create a Holded contact through Jentic?
Search Jentic for 'create holded contact', load POST /api/contacts, and execute with name, email, and any classification fields. Run pip install jentic and use the async SearchRequest, LoadRequest, ExecutionRequest pattern.
Does the Holded API expose treasuries (bank accounts)?
Yes. GET /api/treasuries lists existing treasuries (cash and bank account definitions), GET /api/treasuries/{id} retrieves a single one, and POST /api/treasuries creates new treasuries. Use these to map Holded accounts to external bank feeds.
Can I limit what my agent is allowed to do with the Holded API?
Yes. Because Jentic One is self-hosted, you define the rules that decide which Holded operations and credentials your agent may use. You can allow only the calls it needs, such as GET /api/contacts to read contacts or POST /api/products to create a product, and leave everything else out of the allowed set. Write operations like creating invoices or new treasuries stay excluded until you explicitly add them.
For Agents
Manage contacts, products, treasuries, and invoicing inside a Holded ERP account through the public REST API.
Use for: I want to create a new contact in Holded, List all products in the Holded catalog, Get the details for a specific treasury account, Update the contact details for an existing client
Not supported: Does not handle payment processing, payroll, or banking transaction execution - use for Holded ERP record management (contacts, products, treasuries, invoicing) only.
Holded is an ERP platform for small and medium businesses that bundles invoicing, CRM, project management, team operations, and accounting in one product. The API exposes contacts, products, treasuries (cash and bank accounts), and the related accounting and invoicing resources, so an agent can read and update the same records that the Holded UI does. It is intended for businesses that already operate inside Holded and want to automate finance, CRM, or operational workflows on top of their data.