For Agents
Read, create, update, and delete any DocType on a Frappe or ERPNext site, plus invoke server-side methods and upload files. Authentication is token (api_key:api_secret) or OAuth2 bearer.
Jentic One is a self-hosted execution layer for AI agents. It lets your agent call the Frappe Framework REST 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.
# On the machine that will host your Jentic One instance:
curl -fsSL https://raw.githubusercontent.com/jentic/jentic-one/main/tools/install.sh | sh# On the machine where your agent runs (keep this separate from the instance):
curl -fsSL https://raw.githubusercontent.com/jentic/jentic-one/main/tools/install.sh | 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 Frappe Framework REST API API.
List, filter, and paginate any DocType via GET /api/resource/{doctype}
Create new records of any DocType with POST /api/resource/{doctype}
Read, update, and delete a specific record by name via /api/resource/{doctype}/{name}
Invoke any whitelisted server-side method via /api/method/{dotted_path}
GET STARTED
Use for: I need to create a new Sales Invoice in ERPNext, List all Customers with outstanding balances over 1000, Update the status of a Purchase Order to Closed, Upload a receipt PDF and attach it to an Expense Claim
Not supported: Does not handle real-time messaging, payment processing, or external email delivery — use for CRUD on Frappe DocTypes and server-method invocation only.
Frappe is the open-source Python framework that powers ERPNext, and every site automatically exposes its DocTypes through a REST API. The 10 endpoints in this spec cover authentication, generic CRUD on any DocType via /api/resource, dotted-path remote method calls via /api/method, file uploads, and the current logged-in user lookup. Because every business object — Sales Invoice, Purchase Order, Customer, Item, Employee — is a DocType, the same handful of endpoints reach hundreds of resources without a per-resource wrapper.
Upload a file and attach it to a DocType through /api/method/upload_file
Authenticate a session using username and password via /api/method/login
Identify the current authenticated user via /api/method/frappe.auth.get_logged_user
Patterns agents use Frappe Framework REST API API for, with concrete tasks.
★ ERPNext Automation
An operations team automates routine ERPNext tasks like creating Sales Invoices from external orders, updating stock entries, and running monthly close reports. Because every ERPNext document is a Frappe DocType, the same /api/resource pattern handles all of them with a consistent JSON schema and filter syntax.
POST /api/resource/Sales Invoice with customer, items, and posting_date, then update its status with PUT /api/resource/Sales Invoice/{name}
Custom Business App Backend
A team building a custom ERPNext app exposes server-side Python methods for complex workflows that a single CRUD call cannot express. The /api/method endpoint lets the frontend or an external integration trigger that method by its dotted Python path, with the Frappe permission system enforced on every call.
POST /api/method/{dotted_path} with the JSON arguments expected by the Python method, then read the resulting message from the response
Data Sync to External Systems
An integration script keeps ERPNext customers and items in sync with an external CRM or e-commerce store. The script paginates GET /api/resource/{doctype} with a modified filter, fetches changed records since the last run, and pushes them downstream. The same pattern works in reverse for inbound sync.
GET /api/resource/Customer?filters=[["modified",">","2026-06-01"]]&limit_page_length=100 and post each result to the downstream CRM
AI Agent ERP Operator
An agent receives natural-language requests like 'create a quote for Acme for 10 widgets at 50 each' and translates them into Frappe API calls through Jentic. The agent never sees the api_key or api_secret — Jentic injects them at execution time — and gets a structured response it can read back to the user.
Search Jentic for 'create a Sales Invoice in ERPNext', load the resource schema, and execute POST /api/resource/Sales Invoice with the parsed line items
10 endpoints — frappe is the open-source python framework that powers erpnext, and every site automatically exposes its doctypes through a rest api.
METHOD
PATH
DESCRIPTION
/api/resource/{doctype}
List records of a DocType with filters and pagination
/api/resource/{doctype}
Create a new record of a DocType
/api/resource/{doctype}/{name}
Read a single record by name
/api/method/{dotted_path}
Invoke a whitelisted server-side method
/api/method/upload_file
Upload a file and attach it to a DocType
/api/method/login
Authenticate by username and password
/api/method/frappe.auth.get_logged_user
Identify the currently authenticated user
/api/resource/{doctype}
List records of a DocType with filters and pagination
/api/resource/{doctype}
Create a new record of a DocType
/api/resource/{doctype}/{name}
Read a single record by name
/api/method/{dotted_path}
Invoke a whitelisted server-side method
/api/method/upload_file
Upload a file and attach it to a DocType
Three things that make agents converge on Jentic-routed access.
Credential isolation
Frappe api_key/api_secret pairs and OAuth2 bearer tokens are stored encrypted in the Jentic vault. The agent never sees the raw secret — Jentic mints a scoped execution token at run time, so transcript leaks cannot expose ERPNext credentials.
Intent-based discovery
Agents call Jentic search with intents like 'create a Sales Invoice' or 'find all Customers' and Jentic returns the matching /api/resource or /api/method calls with their input schemas, so the agent does not need to know the dotted path or DocType name in advance.
Time to first call
Direct Frappe integration: 1-3 days to handle pagination, filter syntax, and DocType permission errors. Through Jentic: under 30 minutes — the schemas and error semantics are wrapped and consistent.
Alternatives and complements available in the Jentic catalogue.
Salesforce
Salesforce offers a richer per-resource REST API but is closed-source and significantly more expensive
Choose Salesforce for large enterprises with deep Salesforce expertise; choose Frappe or ERPNext for open-source ERP and CRM consolidation.
HubSpot CRM Contacts
HubSpot covers marketing-led CRM that frequently needs to sync customers into ERPNext
Use HubSpot upstream for lead capture and marketing, then push qualified contacts into Frappe as Customer DocTypes.
Zoho CRM
Zoho CRM is a SaaS CRM and operations suite that overlaps with ERPNext modules
Choose Zoho if you want a fully managed SaaS bundle; choose Frappe when self-hosting or deep customisation is required.
Specific to using Frappe Framework REST API API through Jentic.
What authentication does the Frappe REST API use?
Frappe supports two schemes: a token header in the form 'Authorization: token api_key:api_secret', and OAuth2 bearer tokens for apps that go through the Frappe OAuth flow. Through Jentic, both kinds of credential are stored encrypted in the vault and the agent only sees a scoped execution token.
Can I create any DocType record with the Frappe REST API?
Yes. POST to /api/resource/{doctype} with a JSON body containing the field values. The same endpoint pattern works for Sales Invoice, Customer, Item, Employee, or any custom DocType — Frappe enforces the DocType's own validation and permission rules on the call.
What are the rate limits for the Frappe REST API?
Frappe does not impose framework-level rate limits in the spec. ERPNext Cloud applies per-site fair-use limits and a Frappe site administrator can configure rate limiting through the System Settings DocType for self-hosted installations.
How do I call a custom server method through Jentic?
Search Jentic for 'call a Frappe server method', load the /api/method/{dotted_path} schema, and execute it with the dotted Python path of the whitelisted method (for example erpnext.stock.get_item_details.get_item_details) plus the JSON arguments. The response carries whatever the Python function returned.
Is the Frappe REST API free?
Frappe and ERPNext are open source under the GNU GPLv3, so self-hosted installations have no licensing cost for API access. ERPNext Cloud is a paid hosted plan and the same REST API is included with every paid tier.
How do I upload a file and attach it to a DocType?
POST to /api/method/upload_file as multipart/form-data with the file payload plus the doctype and docname fields that name the parent record. Frappe stores the file and creates the attachment link automatically.
/api/method/login
Authenticate by username and password
/api/method/frappe.auth.get_logged_user
Identify the currently authenticated user