For Agents
Read and write CiviCRM contacts, activities, contributions, events, and memberships through a uniform entity-action REST interface. Useful for non-profit and member-organisation workflows that need to sync constituent data with external systems.
Jentic One is a self-hosted execution layer for AI agents. It lets your agent call the CiviCRM REST API v4, 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 CiviCRM REST API v4 API.
Search and filter CiviCRM contacts by any field through Contact/get
Create, update, or delete a constituent record with the corresponding Contact action
Log an activity (call, meeting, email) against one or more contacts via Activity/create
Pull contribution and donation history with Contribution/get for reporting and reconciliation
GET STARTED
Use for: I need to create a new CiviCRM contact for a donor we just met, Update the email address on an existing constituent record, Find all contacts in the membership tier 'Sustainer' that expire next month, Log a phone call activity against a board member
Not supported: Does not handle payment processing, email delivery, or website rendering — use for reading and writing CiviCRM constituent, activity, contribution, event, and membership records only.
Jentic publishes the only available OpenAPI document for CiviCRM REST API v4, keeping it validated and agent-ready.
Jentic publishes the only available OpenAPI specification for CiviCRM REST API v4, keeping it validated and agent-ready. CiviCRM is the open-source constituent relationship management system used by non-profits, advocacy groups, and member-based organisations to track contacts, activities, contributions, events, and memberships. The APIv4 layer exposes every CiviCRM entity through a uniform entity-action pattern, so the same call shape (POST /ajax/api4/{entity}/{action}) supports any installed entity. Authentication is via the X-Civi-Auth API key header or a bearer token depending on the site's configuration.
Read event registrations and membership records to drive renewal or follow-up workflows
Discover the fields and actions available on any installed CiviCRM entity at runtime via getFields and getActions
Patterns agents use CiviCRM REST API v4 API for, with concrete tasks.
★ Donor and contribution sync to an external dashboard
Pull contributions on a schedule with POST /ajax/api4/Contribution/get and join them to contact records via POST /ajax/api4/Contact/get. This populates an external BI dashboard or accounting system with the same donor view CiviCRM uses internally, and the entity-action pattern means the same client code handles any other CiviCRM entity the team adds later.
Get all contributions in the last 7 days, look up each contact, and write a row to a Google Sheet
Membership renewal automation
Identify members whose memberships are about to expire by calling POST /ajax/api4/Membership/get with a date filter, look up their contact details, and trigger downstream actions — an email send, a payment link generation, or an Activity/create entry that records the outreach. CiviCRM's APIv4 supports the chaining of these calls without leaving the same entity-action vocabulary.
Find memberships expiring in the next 14 days, then create an Activity of type 'Renewal Reminder' against each member
Field-aware contact import
Before importing contacts from a spreadsheet, an agent can call POST /ajax/api4/{entity}/getFields with entity=Contact to discover the exact custom fields the site has configured. It then maps spreadsheet columns to those fields and submits Contact/create calls. This adapts to each CiviCRM installation's customisations without hard-coding field names.
Call Contact/getFields, map a CSV row to the returned schema, and POST a Contact/create for each row
Agent integration via Jentic
Through Jentic, an agent helping a non-profit can resolve intents like 'log a phone call with Maria' to the correct CiviCRM action without knowing the entity-action URL pattern. The X-Civi-Auth API key is held in the Jentic credential vault and only injected at execution time.
Search Jentic for 'create a CiviCRM activity', load the schema for Activity/create, and execute it with the parsed contact and call notes
12 endpoints — jentic publishes the only available openapi specification for civicrm rest api v4, keeping it validated and agent-ready.
METHOD
PATH
DESCRIPTION
/ajax/api4/Contact/get
Search for contacts
/ajax/api4/Contact/create
Create a contact
/ajax/api4/Activity/create
Log an activity against contacts
/ajax/api4/Contribution/get
Read contributions
/ajax/api4/Membership/get
Read memberships
/ajax/api4/Event/get
Read events
/ajax/api4/{entity}/getFields
Discover fields on any entity
/ajax/api4/{entity}/{action}
Generic entity-action endpoint
/ajax/api4/Contact/get
Search for contacts
/ajax/api4/Contact/create
Create a contact
/ajax/api4/Activity/create
Log an activity against contacts
/ajax/api4/Contribution/get
Read contributions
/ajax/api4/Membership/get
Read memberships
Three things that make agents converge on Jentic-routed access.
Credential isolation
CiviCRM X-Civi-Auth keys and bearer tokens are stored encrypted in the Jentic vault. The agent receives a scoped reference, so transcripts and tool logs never contain the raw secret.
Intent-based discovery
Agents search Jentic with intents like 'find a CiviCRM contact by email' or 'log a donation', and Jentic returns the matching entity-action operation with its input schema so the agent does not need to learn the URL convention.
Time to first call
Direct integration with CiviCRM APIv4: 2-3 days to read the docs, model entity-action chaining, and handle authentication variants. Through Jentic: under 1 hour — search, load schema, execute.
Alternatives and complements available in the Jentic catalogue.
Clarkup API
Clarkup is a small-business contact and pipeline tool that overlaps with CiviCRM's contact-management surface for commercial use.
Choose Clarkup when the user is a for-profit small business rather than a non-profit running a CiviCRM install.
Cituro API
Cituro handles appointment booking that can attach to a CiviCRM contact's record as the source of truth.
Use Cituro alongside CiviCRM when an organisation needs class or session booking on top of constituent records.
Clarra API
Clarra adds matter and case management that some non-profit legal aid programmes pair with CiviCRM constituents.
Pick Clarra when the workflow is case-driven legal services and CiviCRM holds the underlying client record.
Specific to using CiviCRM REST API v4 API through Jentic.
Why is there no official OpenAPI spec for CiviCRM REST API v4?
CiviCRM does not publish an OpenAPI specification — the upstream reference is the APIv4 Explorer in the CiviCRM admin UI. Jentic generates and maintains this spec from the documented entity-action contract so AI agents and developers can call CiviCRM through structured tooling. It is validated against the live API and kept up to date. Get started at https://app.jentic.com/sign-up.
What authentication does the CiviCRM REST API use?
CiviCRM accepts an API key in the X-Civi-Auth header, or a bearer token, depending on how the site is configured. Through Jentic, the credential is stored encrypted and injected only at execution time so the agent never sees the raw key.
Can I create and update contacts with the CiviCRM API?
Yes. POST /ajax/api4/Contact/create creates a contact, /Contact/update modifies one, /Contact/get searches, and /Contact/delete removes one. The same entity-action pattern works for Activities, Contributions, Events, and Memberships.
How do I log an activity against a contact through Jentic?
Search Jentic for 'create a CiviCRM activity'. Jentic returns POST /ajax/api4/Activity/create with its input schema (contact id, activity type, subject, status). Load the schema, fill in the values, and execute — no need to remember the entity-action URL convention.
What are the rate limits for the CiviCRM REST API?
Rate limits are not declared in the API itself — CiviCRM is typically self-hosted, so throughput is governed by the host's web server and database. For shared or hosted CiviCRM installs, check with the operator before running large bulk imports.
How does the entity-action URL pattern work?
Every APIv4 call has the shape POST /ajax/api4/{entity}/{action}. For example, /ajax/api4/Membership/get reads memberships and /ajax/api4/Event/create creates an event. You can discover the actions and fields available on a given entity by calling /ajax/api4/{entity}/getActions and /ajax/api4/{entity}/getFields.
/ajax/api4/Event/get
Read events
/ajax/api4/{entity}/getFields
Discover fields on any entity
/ajax/api4/{entity}/{action}
Generic entity-action endpoint