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

# Questmate API

The Questmate API runs checklist and form workflows called Quests, built from reusable templates and assigned to people in a workspace. It starts Quest runs, tracks each run's item instances and submissions, schedules recurring starts, and adds reviewers who sign off on submitted work. Completed runs export as CSV or PDF, and webhooks notify an external endpoint when a chosen event type occurs.

## For AI agents

Start Questmate checklist and form Quests from templates, assign them to people, track and submit runs, and export completed runs as CSV or PDF.

## Scope

Does not handle project timelines, time tracking, or payroll. Use for running, assigning, reviewing, and exporting Questmate checklist and form Quests only.

## Capabilities

- Create a Quest from an existing template with a name, due date, and run schedule
- Assign a Quest to users and list the assignments open for a person
- Start a Quest run, update its item instances, and submit it for review
- Add reviewers to a Quest and record reviews on submitted Quest instances
- Export a Quest's runs as CSV or a single run as PDF for a date range
- Register webhooks that fire on a chosen eventType to an external target URL

## Use cases

### Agent-run checklist dispatch through Jentic

An AI agent handling operations requests can create and dispatch Questmate checklists on demand. Through Jentic the agent searches for 'start a checklist run', receives the matching Questmate operation with its input schema, and calls POST `/quests/{questIdOrFormPrototypeId}/start` with the bearer token injected at execution time. The agent then reads the run back to confirm it started, without the developer wiring Questmate auth by hand.

Example prompt: Start a run of an existing Quest with POST `/quests/{questIdOrFormPrototypeId}/start`, then fetch the resulting run with GET `/questInstances/{questInstanceId}` to confirm its status

### Assigning recurring inspections

Facilities and field teams use Questmate Quests as repeatable inspection checklists. A Quest is created from a template with POST /quests, which requires a templateId and accepts a dueAt, a runSchedule, and a runScheduleTimezone. Assignments are added per Quest with userIds, so each inspector sees the checklist in their assignment list and the Quest's scheduled starts can be listed or removed later.

Example prompt: Create a Quest from templateId 'tmpl_123' with a weekly runSchedule in the Europe/Dublin runScheduleTimezone, then assign it to two userIds with POST `/quests/{id}/assignments`

### Review and sign-off of submitted work

Compliance processes often need a second person to approve a completed checklist. Questmate lets a Quest carry reviewers, added with POST `/quests/{id}/reviewers`, and a reviewer records a decision on a submitted run with POST `/questInstances/{questInstanceId}/reviews.` Runs are submitted with POST `/questInstances/{id}/submit`, so the full submit-and-review loop is available over the API.

Example prompt: Submit a completed Quest instance with POST `/questInstances/{id}/submit`, then add a review on it with POST `/questInstances/{questInstanceId}/reviews`

### Exporting audit records

Auditors usually want completed checklists as files rather than live records. Questmate exports a Quest's runs as CSV through GET `/quests/{questId}/runs/export`, filtered by startDate, endDate, and archived, and as a multi-page PDF through the matching /pdf route. A single run exports as PDF through GET `/questInstances/{questInstanceId}/export/pdf` with a pageSize option.

Example prompt: Export all runs of a Quest between 2026-10-01 and 2026-10-31 as CSV with GET `/quests/{questId}/runs/export` using startDate and endDate

## Key endpoints

| Method | Path | Description |
| --- | --- | --- |
| POST | `/quests` | Create a Quest from a template |
| POST | `/quests/{questIdOrFormPrototypeId}/start` | Start a Quest run |
| GET | `/quests/{questId}/runs` | List runs of a Quest |
| POST | `/quests/{id}/assignments` | Assign a Quest to users |
| POST | `/questInstances/{id}/submit` | Submit a Quest instance |
| GET | `/quests/{questId}/runs/export` | Export Quest runs as CSV |
| POST | `/webhooks` | Create a webhook |
| GET | `/assignments` | List assignments |

## Key resources

- **Quests** — Checklist and form workflows created from templates, with items, rewards, reviewers, assignments, and scheduled starts
- **Quest instances** — Individual runs of a Quest: item updates, submission, restart, reviews, and PDF export
- **Templates** — Reusable Quest definitions that can be copied, updated, archived, and promoted from draft
- **Assignments** — Quests assigned to users, with the linked Quest instance for each assignment
- **Workspaces** — Workspaces and their memberships, which group templates and users
- **Webhooks** — Event subscriptions that post to a target URL for a chosen eventType

## AI readiness

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.

- **Score:** 44 / 100
- **Maturity:** Foundational
- **Dimensions:**
  - Foundational Compliance: 50 / 100
  - Developer Experience & Jentic Compatibility: 62 / 100
  - AI-Readiness & Agent Experience: 22 / 100
  - Agent Usability: 90 / 100
  - Security: 75 / 100
  - AI Discoverability: 51 / 100
- **View full report:** https://jentic.com/apis/questmate.com/questmate/scorecard
- **How the score is calculated:** https://docs.jentic.com/reference/api-readiness-framework/overview/
- **More about the dimensions:** https://docs.jentic.com/reference/api-readiness-framework/specification/#dimensional-model-overview

### Score it yourself

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

- **Score your own API:** https://jentic.com/scorecard.md
- **Scoring CLI agent skill:** https://github.com/jentic/jentic-api-scorecard/blob/main/skills/jentic-api-scorecard/SKILL.md

```sh
npx @jentic/api-scorecard-cli score <openapi-url>
```

## Why Jentic

- **Setup:** Wiring Questmate by hand means obtaining a JWT bearer token, attaching it to the authenticated calls, and tracking which routes such as /login and the /library endpoints are open. Through Jentic you install once, import Questmate from the API Directory, store the token once, and your agent calls it.
- **Permission scoping:** Questmate puts the Quest id in the URL path (`/quests/{questId}/runs`, `/quests/{id}/assignments`), so a rule can pin your agent to one Quest and the operations you pick. You choose the operations it may call, so destructive ones like webhook deletion or POST `/users/me/deletion` are not included unless you add them.
- **Credential handling:** Your Questmate bearer token 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 'start a checklist run' or 'export quest runs as csv', and Jentic returns the matching Questmate operation with its input schema so the agent calls the right endpoint without browsing the reference docs.

## Related APIs

- **Process Street** — Checklist and workflow runs built from templates, similar in shape to Questmate Quests
- **Typeform** — Form builder focused on collecting survey and form responses
- **Asana** — Project and task tracking that can hold the wider project a checklist belongs to

## FAQ

### What authentication does the Questmate API use?

Per its OpenAPI spec, the Questmate API authenticates with an HTTP bearer token in JWT format, sent in the Authorization header. Most operations expect the token, while a few are declared open, including GET /health, POST /login, GET `/publicQuests/{publicId}`, GET `/quests/{id}`, and the /library template and script routes. Through Jentic the token is stored by your own instance and attached at call time, so it never enters the agent's context.

### Can I export completed Questmate runs with the API?

Yes. GET `/quests/{questId}/runs/export` returns a Quest's runs as CSV and accepts startDate, endDate, archived, and limit query parameters, while GET `/quests/{questId}/runs/export/pdf` returns one PDF page per run. A single run exports with GET `/questInstances/{questInstanceId}/export/pdf.`

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

The OpenAPI spec does not specify rate limits. Check the Questmate documentation at https://www.questmate.com for current limits before scheduling bulk exports.

### Is there a Questmate MCP server?

You don't need an MCP server to give your agent Questmate. Jentic connects it directly from the API Directory: import it, store your bearer token once, and your agent calls the Quest operations it needs, discovered on demand rather than loaded into its context up front.

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

Yes. For example, write a rule that allows only GET `/quests/{questId}/runs` and the run export operations under one Quest id, so the agent can read and export that Quest's results and cannot start runs, change assignments, or delete webhooks. Every call it makes is logged.

### How do I start a Questmate checklist run through Jentic?

Search Jentic for 'start a checklist run', load the POST `/quests/{questIdOrFormPrototypeId}/start` operation, and execute it with the Quest id. The agent can then read the run with GET `/questInstances/{questInstanceId}.` To run it on your own infrastructure, install Jentic One from its GitHub repo.
