canonical: https://jentic.com/apis/endearhq.com/endear

# Endearhq Endear API

Jentic publishes the only available OpenAPI specification for Endear API, keeping it validated and agent-ready. Endear is a retail-focused CRM and clienteling platform; the API exposes both a GraphQL endpoint for full schema access and a small REST surface for customer create, read, and bulk import operations. Retail teams use it to sync customer records from POS and e-commerce systems and to keep clientele data current. The API is ideal for agents that need to look up or update customer profiles tied to retail transactions.

## For AI agents

Look up, create, and bulk-import retail customer records in Endear via REST endpoints, or run arbitrary queries against the GraphQL endpoint.

## Scope

Does not handle order processing, inventory, or marketing campaign sending - use for retail customer record management and clienteling lookups only.

## Capabilities

- Query customer records via the GraphQL endpoint for arbitrary field selection
- List customers using the REST customers endpoint for simple integrations
- Create or update a customer profile from a POS or e-commerce sync
- Update an existing customer's attributes by ID
- Bulk-import customer data from a CSV or external system

## Use cases

### POS-to-CRM Customer Sync

Push new customers captured at point-of-sale into Endear so the CRM stays current. POST /customers creates or updates a record idempotently, and POST `/integration/import` handles bulk batches at the end of a shift. Stores running on Shopify or Lightspeed can use this to mirror their customer database into Endear without manual export.

Example prompt: Import a JSON array of 250 new customer records from yesterday's POS export into Endear via the bulk import endpoint

### Clienteling Lookup

When a sales associate asks 'what does this customer like?', an agent can call GET `/customers/{id}` to pull the customer profile and use the GraphQL endpoint to fetch related order history in a single round trip. This powers in-app recommendations during a store visit.

Example prompt: Look up customer with id 'cust_4821' and return their email, name, and the last five orders via a GraphQL query

### Profile Maintenance

Use PUT `/customers/{id}` to update fields such as email, opt-in status, or store affiliation in response to a customer service event. This keeps the CRM accurate without requiring a full re-import.

Example prompt: Set the email_marketing_opt_in flag to false on customer id 'cust_889' and confirm the update

### Agent-Driven Retail Workflow

An AI agent handling retail back-office tasks searches Jentic for 'create a retail customer', loads the Endear POST /customers schema, and executes the call. This lets the agent stitch together POS events, marketing platforms, and Endear without bespoke client code per integration.

Example prompt: On a new POS event, create the customer in Endear via POST /customers and store the returned id back on the order

## Key endpoints

| Method | Path | Description |
| --- | --- | --- |
| POST | `/graphql` | GraphQL endpoint for queries and mutations |
| GET | `/customers` | List customers |
| POST | `/customers` | Create or update a customer |
| GET | `/customers/{id}` | Get customer by ID |
| PUT | `/customers/{id}` | Update a customer |
| POST | `/integration/import` | Bulk import customer data |

## Key resources

- **Customers** — Create, read, update retail customer profiles
- **GraphQL** — Single endpoint for arbitrary queries and mutations
- **Integration Import** — Bulk customer import for CSV or batch syncs

## Why Jentic

- **Setup:** Wiring the Endear API by hand means choosing between its X-API-Key header and bearer auth, mixing REST customer routes with a /graphql endpoint, and building your own error handling against https://api.endearhq.com. Through Jentic you install once, import the Endear API from the API Directory, store the credential once, and your agent calls it.
- **Permission scoping:** The Endear API puts the customer id in the URL path (`/customers/{id}`), so a rule can pin your agent to one customer record: it can read and update that customer and nothing else. You choose the operations it may call, so ones like creating customers or running an integration import are not included unless you add them.
- **Credential handling:** Your Endear credential 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.
- **Discovery method:** Agents search Jentic by intent such as 'look up a retail customer record' or 'update a customer profile', and Jentic returns the matching Endear operation with its input schema so the agent calls the right endpoint without browsing the reference docs.

## Related APIs

- **EngageBay CRM REST API** — EngageBay is a general-purpose CRM with marketing and sales modules; Endear is retail-specific clienteling.
- **Engage.so API** — Engage.so handles user messaging and event tracking; Endear holds the retail customer record those messages are sent to.
- **EndorseFlow API** — EndorseFlow collects testimonials from customers stored in CRMs like Endear.

## FAQ

### Why is there no official OpenAPI spec for Endear API?

Endear does not publish an OpenAPI specification. Jentic generates and maintains this spec so that AI agents and developers can call Endear API via structured tooling. It is validated against the live API and kept up to date. Get started with Jentic One, the self-hosted execution layer.

### What authentication does the Endear API use?

Endear supports both API key and bearer token authentication. Through Jentic, the credential is stored encrypted in the vault and supplied to the request only at execution time, so agents never see the raw token.

### Can I bulk-import customers into Endear via the API?

Yes. POST `/integration/import` accepts batched customer data in a single call, suitable for nightly POS or e-commerce syncs. For one-off creates use POST /customers instead.

### Does Endear expose a GraphQL API?

Yes. POST /graphql is a single endpoint that accepts both queries and mutations, giving the agent flexible field selection beyond what the REST customer endpoints expose.

### What are the rate limits for the Endear API?

The OpenAPI spec does not declare rate limits. Treat as workspace-scoped and back off on HTTP 429 responses; check Endear's developer portal for the exact limit on your plan.

### How do I sync POS customers into Endear through Jentic?

Run `pip install jentic`, then search 'import retail customers into endear'. Jentic returns POST `/integration/import` with its input schema; the agent supplies the customer batch and executes against base URL https://api.endearhq.com.

### Can I limit what my agent is allowed to do with the Endear API?

Yes. Jentic One runs self-hosted, so your own rules decide which Endear operations the agent may call and which credential it uses. Because the Endear API carries the customer id in the URL path (`/customers/{id}`), you can pin the agent to reading and updating a single customer record with GET and PUT while excluding everything else. Operations like creating customers with POST /customers or running a bulk load through POST `/integration/import` are only available if you explicitly grant them.
