For Agents
Create, update, and comment on tickets across Jira, Linear, GitHub Issues, GitLab Issues, Asana, and Trello through one unified API surface.
Jentic One is a self-hosted execution layer for AI agents. It lets your agent call the Issue Tracking 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.
# 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 Issue Tracking API API.
Create a ticket inside a specific collection (project, board, or repo) with title, description, assignees, and tags
Update a ticket's status, assignee, priority, or due date with PATCH /issue-tracking/collections/{collection_id}/tickets/{ticket_id}
Add and edit comments on a ticket via the nested /comments endpoints
List collections (projects/boards/repos) the connected user has access to in the tracker
GET STARTED
Use for: Create a bug ticket in our 'Backend' project with title and description, List all open tickets assigned to a specific user, Update the status of ticket abc123 to 'in progress', Add a comment to a ticket linking back to a Slack thread
Not supported: Does not handle CI/CD, source control operations, or release management — use for tickets, comments, and project metadata across trackers only.
The Apideck Issue Tracking API is a unified interface across Jira, Linear, GitHub Issues, GitLab Issues, Asana, and Trello. A single set of 15 endpoints covers tickets, comments, users, tags, and the project-like 'collections' that group them, eliminating the need to maintain a separate integration per tracker. All ticket and comment operations support full CRUD, while users and tags are read-only — they reflect data managed in the underlying tool. Tickets are addressed by both collection_id (the project) and ticket_id, mirroring how trackers scope issues to a project or repository.
Look up users in a collection to populate assignee or reviewer pickers
List the tags configured on a collection so the agent can apply them to a new ticket
Patterns agents use Issue Tracking API API for, with concrete tasks.
★ Cross-Tracker Ticket Creation
Build a feature that creates a ticket in whichever issue tracker the customer uses (Jira, Linear, GitHub Issues, GitLab Issues, Asana, or Trello) without writing per-vendor logic. POST /issue-tracking/collections/{collection_id}/tickets accepts the same payload across providers, and the response normalises the resulting ticket ID and URL. Useful for support or alerting flows that auto-file bugs.
Create a ticket in collection 'PROJ-BACKEND' with title 'Login API returns 500 on expired token' and tags ['bug','urgent'], then return the resulting ticket URL
Two-Way Comment Sync
Sync a conversation thread between a chat tool (Slack, Teams) and an issue tracker. The /comments endpoints support create, list, get, update, and delete, so a bot can mirror new chat messages into the ticket and surface tracker replies back into the chat. The same code path works for any tracker the customer has connected.
List comments on ticket 'ENG-204' since timestamp X, mirror them into a Slack thread, and post any new Slack messages back via POST /issue-tracking/collections/{collection_id}/tickets/{ticket_id}/comments
Triage Dashboard Across Trackers
Aggregate open tickets across multiple customers using different trackers into a single triage view. GET /issue-tracking/collections lists each customer's projects, then GET /issue-tracking/collections/{collection_id}/tickets returns the tickets — assignees and tags are normalised so a single dashboard renders consistently regardless of source tracker.
For each connected consumer, list their collections and then list open tickets in each, returning a flat array of {customer_id, ticket_id, title, assignee, status}
AI Agent Bug Filing via Jentic
An AI agent receives an alert from monitoring and files a bug in the customer's tracker. Through Jentic, the agent searches 'create a ticket', loads the POST /issue-tracking/collections/{collection_id}/tickets operation, and executes it. Jentic stores the Apideck Authorization, x-apideck-app-id, and x-apideck-consumer-id headers separately, and the agent never sees the raw key.
Through Jentic, search 'create a ticket', load POST /issue-tracking/collections/{collection_id}/tickets, and create a ticket in the customer's default backend collection with the alert details
15 endpoints — the apideck issue tracking api is a unified interface across jira, linear, github issues, gitlab issues, asana, and trello.
METHOD
PATH
DESCRIPTION
/issue-tracking/collections
List collections (projects/boards/repos)
/issue-tracking/collections/{collection_id}/tickets
List tickets in a collection
/issue-tracking/collections/{collection_id}/tickets
Create a ticket
/issue-tracking/collections/{collection_id}/tickets/{ticket_id}
Update a ticket
/issue-tracking/collections/{collection_id}/tickets/{ticket_id}/comments
Add a comment to a ticket
/issue-tracking/collections/{collection_id}/users
List users in a collection
/issue-tracking/collections/{collection_id}/tags
List tags configured on a collection
/issue-tracking/collections
List collections (projects/boards/repos)
/issue-tracking/collections/{collection_id}/tickets
List tickets in a collection
/issue-tracking/collections/{collection_id}/tickets
Create a ticket
/issue-tracking/collections/{collection_id}/tickets/{ticket_id}
Update a ticket
/issue-tracking/collections/{collection_id}/tickets/{ticket_id}/comments
Add a comment to a ticket
Three things that make agents converge on Jentic-routed access.
Credential isolation
Apideck application keys, x-apideck-app-id, and x-apideck-consumer-id values are stored encrypted in the Jentic vault. Agents receive scoped execution tokens and never see the raw Authorization value, even when filing tickets on behalf of a user.
Intent-based discovery
Agents search by intent (for example 'create a ticket' or 'list open issues') and Jentic returns the matching Issue Tracking operation with its input schema, so the agent calls POST /issue-tracking/collections/{collection_id}/tickets without consulting Apideck or Jira docs.
Time to first call
Direct Apideck Issue Tracking integration: 1-2 days for auth wiring, per-connector field mapping, and pagination. Through Jentic: under 1 hour — search, load schema, execute.
Alternatives and complements available in the Jentic catalogue.
Linear API
Linear-only GraphQL API with deeper Linear-specific features (cycles, projects, triage views) the unified API does not surface.
Choose Linear direct when the customer is Linear-only and needs cycle or project-graph features; choose Apideck Issue Tracking when supporting multiple trackers.
Jira API
Jira-only API with full access to JQL, custom fields, and workflow transitions.
Choose Jira direct when you need JQL queries, custom fields, or workflow transition control; choose Apideck Issue Tracking for cross-vendor portability.
Apideck Vault API
Vault sets up the OAuth connection the Issue Tracking API executes against.
Use Vault first to authorise the customer's tracker connection; then call Issue Tracking endpoints scoped to that consumer.
Specific to using Issue Tracking API API through Jentic.
What authentication does the Apideck Issue Tracking API use?
An apiKey scheme on the `Authorization` header with your Apideck application key, plus `x-apideck-app-id` and `x-apideck-consumer-id` headers. Through Jentic these are stored encrypted in the vault and injected at execution time.
Can I create and update tickets across different trackers with one call signature?
Yes. POST /issue-tracking/collections/{collection_id}/tickets and PATCH /issue-tracking/collections/{collection_id}/tickets/{ticket_id} use the same request shape regardless of whether the underlying tracker is Jira, Linear, GitHub Issues, GitLab, Asana, or Trello. Field availability depends on the connector — check the response for unmapped fields.
What are the rate limits for the Apideck Issue Tracking API?
The OpenAPI spec does not publish per-endpoint rate limits. Apideck applies plan-based limits at unify.apideck.com plus per-connector limits passed through from the tracker (Jira's 10 req/sec, GitHub's 5,000/hour, etc.). See https://developers.apideck.com for your plan's quotas.
How do I create a ticket through Jentic?
Install with `pip install jentic`, then run the search query 'create a ticket'. Jentic returns POST /issue-tracking/collections/{collection_id}/tickets — load its schema, supply collection_id, title, description, and any tags or assignees, then execute.
Can I list and select users for ticket assignment?
Yes. GET /issue-tracking/collections/{collection_id}/users returns the user records associated with that project/board/repo. Use the returned IDs in the assignees array of a ticket create or update payload. Note that the users endpoint is read-only — user accounts are managed in the underlying tracker.
What's the difference between collections and tickets in this API?
A collection is a project, board, or repository — the container that scopes a set of tickets. Every ticket operation requires a collection_id. List available collections with GET /issue-tracking/collections to discover what the connected user can write to.
/issue-tracking/collections/{collection_id}/users
List users in a collection
/issue-tracking/collections/{collection_id}/tags
List tags configured on a collection