canonical: https://jentic.com/apis/domo.com/domo

# Domo API

The Domo API exposes the cloud business intelligence platform's resource model through a REST interface. The curated specification covers three core operations: token exchange via POST `/auth/token`, listing available resources, and fetching a single resource by ID. Authentication uses an Authorization header API key. The API supports analytics workflows that read dataset, dashboard, or other resource metadata for downstream automation or governance reporting, and is intended as an entry point to the broader Domo developer surface.

## For AI agents

Exchange credentials for an access token, list Domo resources, and fetch a specific resource by ID using an Authorization header API key.

## Scope

Does not handle dataset row-level CRUD, dashboard rendering, or user provisioning - use for token exchange and resource metadata listing only.

## Capabilities

- Obtain an access token via POST `/auth/token`
- List available Domo resources with GET /resources
- Fetch a single resource by ID via GET `/resources/{id}`
- Authenticate every call with an Authorization header API key
- Inspect resource metadata to drive downstream analytics jobs

## Use cases

### Resource Inventory and Governance

Build a governance report by calling GET /resources and walking each entry with GET `/resources/{id}` to capture metadata. This supports audits, dataset cleanup, and access-review jobs that need a current picture of what exists in the Domo instance without querying the underlying datasets.

Example prompt: POST `/auth/token` to get an access token, GET /resources, then GET `/resources/{id}` for each entry and write the names and IDs to a CSV.

### Token Lifecycle Management

Automate token refresh by calling POST `/auth/token` whenever the current access token nears expiry. Storing the refreshed token in a secrets manager keeps long-running BI automations alive without manual intervention from the Domo administrator.

Example prompt: Schedule a job that calls POST `/auth/token` every 50 minutes and updates the stored token in the secret manager.

### AI Agent Analytics Lookup via Jentic

An AI agent uses Jentic to look up Domo resources on demand: it searches for an analytics intent, loads GET /resources, executes it, and pipes the IDs back to a user or another tool. The Domo API key stays in your Jentic One instance, so the agent never holds the credential while iterating over the resource list.

Example prompt: Search Jentic for 'list domo resources', execute GET /resources, and return the first 10 results to the user with their IDs.

## Key endpoints

| Method | Path | Description |
| --- | --- | --- |
| POST | `/auth/token` | Exchange credentials for an access token |
| GET | `/resources` | List available resources |
| GET | `/resources/{id}` | Get a single resource by ID |

## Key resources

- **Authentication** — Token exchange for the Domo API
- **Resources** — List and fetch Domo resource metadata by ID

## Why Jentic

- **Setup:** Wiring the Domo API by hand means minting a token through `/auth/token`, carrying it on the Authorization header, and refreshing it before resource-metadata calls succeed. Through Jentic you install once, import the Domo API from the API Directory, store the key once, and your agent calls it.
- **Permission scoping:** Domo puts the resource id in the URL path (`/resources/{id}`), so a rule can pin your agent to one resource for metadata reads. You choose the operations it may call, so it can exchange a token and list or read the resources you allow and nothing more.
- **Credential handling:** Your Domo API key and minted tokens are stored once, encrypted, by your own Jentic One instance and injected at execution time on the Authorization header. They never enter the agent's prompt, logs, or context.
- **Discovery method:** Agents search Jentic by intent such as 'list domo resources' or 'get a domo access token', and Jentic returns the matching operation with its parameter schema so the agent calls the right endpoint without consulting the spec.

## Related APIs

- **Tableau** — Visual analytics and dashboarding platform
- **Metabase** — Open-source analytics and dashboarding
- **Snowflake** — Cloud data warehouse

## FAQ

### What authentication does the Domo API use?

The spec defines an Authorization header API key (ApiKeyAuth). Tokens are minted by POST `/auth/token` and passed in subsequent requests. Through Jentic, both the static key and minted tokens are stored encrypted in the vault and injected at execution time.

### Can I list resources with the Domo API?

Yes. GET /resources returns the available resources for the authenticated client, and GET `/resources/{id}` fetches details for a specific resource by ID.

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

The OpenAPI spec does not declare explicit rate limits. Domo's broader developer documentation specifies per-endpoint limits, so apply exponential backoff on 429 responses and avoid burst patterns when iterating GET /resources.

### How do I get an access token through the Domo API via Jentic?

Run pip install jentic and search for 'get a domo access token'. Jentic returns POST `/auth/token`; execute it with the stored client credentials and Jentic stores the resulting token for downstream calls so the agent never handles the secret.

### Can I fetch a specific Domo resource?

Yes. GET `/resources/{id}` returns the metadata for the resource with the given ID. Use GET /resources first to discover IDs if you do not already have them.

### Is the Domo API free to use?

Access requires a Domo subscription. The API is included with Domo plans rather than priced per call, but quota and capability depend on the plan. Check your Domo admin console for the limits that apply to your tenant.

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

Yes. Because you run Jentic One yourself, your own rules decide which Domo operations the agent may call, so you can allow it to exchange a token via POST `/auth/token` and list resources with GET /resources while blocking everything else. Since Domo puts the resource id in the URL path (GET `/resources/{id}`), a rule can pin the agent to a single resource for metadata reads. Your Domo API key stays in your instance and is injected only for the calls you permit.
