Product
Jentic OSThe workplace. An in-house AI platform for every employeeJentic OneSafe access. Agents reach your systems without holding keysJentic AIRThe foundation. Gets your existing platforms ready for AI
Pricing
Developers

GET STARTED

API DirectoryBrowse 10,000+ APIs Ready For AI Agent IntegrationDocumentationGuides and API reference

TOOLS

API ScoringCheck your AI Readiness using our scorecardArazzo UIVisualize Arazzo Workflows As Interactive DocumentationArazzo EditorBuild And Edit Multi-Step API Workflows Visually

COMMUNITY

GitHubOpen source projects and examplesOpen StandardsBuilt on open specs. Never locked in.
Resources
Company
About UsOur mission and teamCareersJoin our teamContactGet in touch
Try it now
Jentic OSJentic OneJentic AIR
Pricing
API DirectoryDocumentationAPI ScoringArazzo UIArazzo EditorGitHubOpen Standards
Resources
About UsCareersContact
Try it now
JenticJentic
Products
  • Jentic OS
  • Jentic One
  • Jentic AIR
For Developers
  • API Directory
  • Documentation
  • GitHub
Company
  • About Jentic
  • Careers
  • Contact Us
  • Trust Centre
ISO/IEC 27001:2022 certification badge issued by Prescient SecurityISO/IEC 27001:2022 certification badge issued by Prescient Security

Information Security Management System

Certified to ISO/IEC 27001:2022 by Prescient Security

AICPA SOC for Service Organizations logoAICPA SOC for Service Organizations logo

SOC 2® Type 1 report

Audited by Prescient Assurance

Terms & Conditions•Privacy Policy•
© 2026 Jentic Technology Ltd. All rights reserved.
2 Grattan Court East, Dublin, D02 VX86, Ireland
Switch to light modeSwitch to dark mode
APIs / Finance / Double API
Double API logo

Keeper App Double API

51
AI ReadinessFoundational (C-)51/100
See full scorecard
Official vendor OpenAPI document · agent-readyFinanceAccountingoauth2,bearer69 EndpointsREST

For Agents

Manage clients, branches, files, contacts, and end-of-period closes inside the Keeper bookkeeping platform via 69 endpoints, authenticated with an OAuth2 client-credentials bearer token.

Use for: I want to list every client at a Keeper practice, Get the activity log entries for a specific client, Retrieve all files attached to a client record, List end-of-period closes for a client this quarter

Not supported: Does not handle journal entries, ledger postings, payroll, or invoicing - use for Keeper practice-management data such as clients, branches, files, and activity logs only.

The Double API (the public API for Keeper, the bookkeeping platform) gives bookkeepers and accounting firms programmatic access to clients, branches, files, contacts, assignments, end-of-period closes, and the activity log. The 69 endpoints cover reading and updating the client roster, navigating branch hierarchies, and pulling the audit trail used to track who did what across a practice. Authentication is OAuth2 client credentials - clients exchange a client_id and client_secret at the OAuth token endpoint for a 24-hour bearer token, then attach it to every request. Rate limits are 300 requests per OAuth client per 5-minute window.

Jentic One on GithubView OpenAPI Document

Install Jentic One Beta

Connect the Double API to your agent

Jentic One is a self-hosted execution layer for AI agents. It lets your agent call the Double 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.

1

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%2Fkeeper.app%2Fkeeper" | sh
2

Step 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%2Fkeeper.app%2Fkeeper" | sh
jentic register       # connects your agent to your Jentic One instance

Jentic 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.

Capabilities

What an agent can do with Double API.

List and update the full client roster across a Keeper practice

Navigate branch hierarchies to scope client lists to a specific office

Read end-of-period close records and supporting files for a given client

Query the activity log to audit who took what action across the practice

Pull contact records associated with each client for outreach workflows

Read assignment records that map staff to client engagements

Use Cases

Patterns agents use Double API for, with concrete tasks.

★ Accounting Firm Client Roster Sync

Pull the full Keeper client roster into a CRM, billing tool, or internal data warehouse on a schedule so client metadata stays consistent across systems. The /api/clients endpoints support count and detail reads, and /api/clients/summary/count gives a quick portfolio total. Most firms wire up a daily sync in a single afternoon because the OAuth client-credentials flow only needs to refresh once every 24 hours.

GET /api/clients with pagination to fetch the full roster, then POST each new client into the firm's CRM with the Keeper client ID stored on the CRM record

Practice Activity Audit

Surface practice-wide activity for compliance and review by querying /api/activity-log with date filters and per-client scoping. The endpoint feeds into audit reports that show which staff member touched which client record and when, which is required by many accounting partners during peer review. Pair it with /api/activity-log/count to gauge volume before pulling full pages.

GET /api/activity-log/count for the last 30 days, then page through GET /api/activity-log to build a CSV of staff actions by client

Client File and Close Document Retrieval

Fetch the files and end-of-period closes attached to a specific client so an automation can attach them to an email, archive them, or feed them into a downstream review tool. The /api/clients/{clientId}/files and /api/clients/{clientId}/end-closes endpoints return the file metadata needed to download and route documents.

GET /api/clients/{clientId}/end-closes for the last quarter, then GET /api/clients/{clientId}/files filtered to the matching close period to retrieve the supporting documents

AI Agent Bookkeeping Assistant

An AI agent that helps bookkeepers manage their workload uses Jentic to discover and call Keeper operations - listing clients, reading recent activity, and pulling contacts - to answer questions like 'which clients haven't had activity in two weeks'. Jentic injects the bearer token per call so the agent never holds the OAuth client_secret. The agent composes multiple endpoints in one workflow without learning Keeper's REST surface manually.

Through Jentic, call GET /api/clients then GET /api/activity-log per client to surface clients with no activity in the last 14 days

Key Endpoints

69 endpoints — the double api (the public api for keeper, the bookkeeping platform) gives bookkeepers and accounting firms programmatic access to clients, branches, files, contacts, assignments, end-of-period closes, and the activity log.

METHOD

PATH

DESCRIPTION

GET

/api/clients

List clients across the practice

POST

/api/clients

Create a new client record

GET

/api/clients/{clientId}

Read a single client by ID

GET

/api/clients/{clientId}/files

List files attached to a client

GET

/api/clients/{clientId}/end-closes

List end-of-period closes for a client

GET

/api/activity-log

Query the practice-wide activity log

GET

/api/branches

List branches in the practice

GET

/api/clients/{clientId}/assignments

List staff assignments for a client

GET

/api/clients

List clients across the practice

POST

/api/clients

Create a new client record

GET

/api/clients/{clientId}

Read a single client by ID

GET

/api/clients/{clientId}/files

List files attached to a client

GET

/api/clients/{clientId}/end-closes

List end-of-period closes for a client

GET

/api/activity-log

Query the practice-wide activity log

GET

/api/branches

List branches in the practice

GET

/api/clients/{clientId}/assignments

List staff assignments for a client

Jentic AI Readiness Score

This API is usable in Jentic One now. Its AI-readiness score against Jentic's framework shows where it stands today and where improvements would make it even easier for agents to use.

D

Double API

- Foundational (C-)
51/100
46
Foundational Compliance
68
Developer Experience & Jentic Compatibility
27
AI-Readiness & Agent Experience
91
Agent Usability
80
Security
100
AI Discoverability
Powered by JenticScoring Framework 1.0.0 | Scoring Engine 0.4.0
Show dimension breakdown
46

Foundational Compliance

Base layer of spec validity and structural soundness.

Grade: DSignals: 4
83%

Lint Results

Aggregated quality score from linter diagnostics, weighted by severity.

100%

Resolution Completeness

Percentage of `$ref` references that resolve successfully.

0%

Specification Validity

Checks whether the API description parses successfully and conforms to its declared specification (e.g., OpenAPI).

0%

Structural Integrity

Structural correctness score based on schema issues using logarithmic dampening.

68

Developer Experience & Jentic Compatibility

Clarity, completeness, and ingestion readiness for developers and tooling.

Grade: B+Signals: 4
32%

Example Density

How richly the API is illustrated with examples.

97%

Example Validity

Percentage of examples that conform to their schemas.

50%

Response Coverage

Percentage of operations with complete response definitions (success, client error, server error).

93%

Tooling Readiness

Health of API ingestion, bundling, and resolution within Jentic pipelines.

27

AI-Readiness & Agent Experience

Semantic breadth, depth, and agent comprehension for AI systems.

Grade: FSignals: 4
52%

Description Coverage

Coverage of descriptions across API elements.

0%

Error Standardization

Coverage of RFC 9457 Problem Details for error responses.

0%

OperationId Quality

Coverage, uniqueness, and casing consistency of operationIds for AI inference.

57%

Summary Coverage

Coverage of summaries across operations/tags/info.

91

Agent Usability

Functional utility, complexity comfort, and AI orchestration readiness.

Grade: A+Signals: 1
91%

Complexity Comfort

Agent comfort level based on API operational and structural complexity.

80

Security

Trust, risk posture, and security compliance.

Grade: ASignals: 1
80%

Authentication Strength

Average quality of security schemes based on authentication method strength (weakest link for OAuth2).

100

AI Discoverability

Findability, semantic richness, and reasoning readiness.

Grade: A+Signals: 1
100%

Descriptive Richness

Clarity and depth of descriptions across API elements.

View full reportHow the score is calculatedMore about the dimensions

Score it yourself

Every API in the directory is allowlisted, so you can re-score it with no key required.

Score your own APIScoring CLI agent skill
npx @jentic/api-scorecard-cli score <openapi-url>

Why Jentic?

What agents get from Jentic-routed access to this vendor.

Setup

Wiring the Double API by hand means running its OAuth2 flow, minting and refreshing the bearer, and mapping client, file, and activity-log reads to their shapes against api.doublehq.com yourself. Through Jentic you install once, import the Double API from the API Directory, store the OAuth credential once, and your agent calls it.

Permission scoping

The Double API puts the client id in the URL path (/api/clients/{clientId}/...), so a rule can pin your agent to one client: it can read that client's files, assignments, and end-closes and nothing else. You choose the operations it may call, so client creation is not included unless you add it.

Credential isolation

Your Keeper client_id and client_secret are stored once, encrypted, by your own Jentic One instance and injected at execution time. Jentic mints and refreshes the OAuth2 bearer, so the secret never enters the agent's prompt, logs, or context.

Intent-based discovery

Agents search Jentic by intent such as 'list clients in Keeper' or 'get a client's activity log', and Jentic returns the matching Double API operation with its input schema so the agent calls the right endpoint without reading the reference docs.

Related APIs

Alternatives and complements available in the Jentic catalogue.

Complementary

Xero Accounting

→

Xero is the underlying ledger that Keeper and the Double API sit on top of for many practices.

Use Xero alongside Keeper when an agent needs to read or post journal entries directly into the books, not just the practice management layer.

Complementary

HubSpot

→

HubSpot stores the firm-side CRM record that mirrors Keeper's client roster.

Use HubSpot alongside Keeper to keep a single CRM record per client synced with the bookkeeping system.

Complementary

Asana

→

Asana tracks the tasks tied to each client engagement that Keeper itself does not manage.

Use Asana when staff need a task and project view layered on top of Keeper's client and close records.

FAQs

Specific to using Double API through Jentic.

What authentication does the Double API use?

OAuth 2.0 client credentials. POST your client_id and client_secret with grant_type=client_credentials to https://api.doublehq.com/oauth/token to get a bearer token, then attach the token in the Authorization header on every request. Tokens are valid for 24 hours. Through Jentic the client_secret stays in the encrypted vault and Jentic refreshes the bearer for you.

Can I list every client in a Keeper practice with the Double API?

Yes. GET /api/clients returns the client roster with pagination, and GET /api/clients/summary/count gives a portfolio total without paging. Use GET /api/clients/{clientId} to drill into a single client.

What are the rate limits for the Double API?

The API enforces 300 requests per 5-minute window per OAuth client on a rolling-window basis. If you exceed this you receive HTTP 429. For high-volume reads, batch by paginating /api/clients rather than calling /api/clients/{clientId} per record.

How do I pull a client's activity log through Jentic?

Search Jentic for 'get keeper activity log' to find GET /api/activity-log, load its schema, and execute with date and clientId filters. The Jentic flow is pip install jentic, then client.search, client.load, and client.execute - Jentic injects the OAuth bearer at execution time.

Does the Double API expose end-of-period close records?

Yes. GET /api/clients/{clientId}/end-closes returns the close records for one client, and the related GET /api/clients/{clientId}/files endpoint returns the supporting documents that were attached when the close was completed.

Can I create new clients through the Double API?

Yes. POST /api/clients accepts the client payload and creates the record inside Keeper. Most practices use the existing onboarding flow in Keeper itself, so this endpoint is mostly used for bulk migrations from another bookkeeping system.

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

Yes. Because you run Jentic One yourself, your own rules decide which Double API operations and credentials the agent may use. Since the client id sits in the URL path (/api/clients/{clientId}/...), you can pin the agent to a single client so it only reads that client's files, assignments, and end-closes and nothing else. You choose the operations it may call, so write actions like POST /api/clients stay off the table unless you explicitly add them.

GET STARTED

Start building with Double API

Explore with Jentic One
View OpenAPI Document