For Agents
Pull meeting recordings, transcripts (JSON, TXT, VTT, SRT), and shareable links from Grain, plus manage tags, sharing, and webhook hooks for downstream automation.
Jentic One is a self-hosted execution layer for AI agents. It lets your agent call the Grain 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 Grain API.
List and retrieve meeting recordings via /v2/recordings
Pull transcripts in JSON, TXT, VTT, or SRT format from /v2/recordings/{id}/transcript variants
Generate signed download URLs for recordings with /v2/recordings/{id}/download
Tag recordings via PUT and DELETE on /v2/recordings/{id}/tags
GET STARTED
Use for: List my recent Grain meeting recordings, Retrieve the transcript of a meeting as plain text, Get the SRT subtitles for a recorded call, Tag a recording as 'customer-feedback'
Not supported: Does not host or join live calls, run conversation analytics, or schedule meetings — use for managing existing Grain recordings, transcripts, hooks, sharing, and workspace metadata only.
Jentic publishes the only available OpenAPI specification for Grain API, keeping it validated and agent-ready. Grain is a meeting recording, transcription, and notes platform that captures conversations and lets teams search, share, and clip them. The API exposes 22 endpoints covering OAuth2 token issuance, recording listing and retrieval, multi-format transcripts (JSON, TXT, VTT, SRT), download URL generation, tagging, sharing recordings to users and teams, webhook (hooks) management, and user and team listings. Authentication supports OAuth2, Personal Access Tokens, and Workspace Access Tokens.
Share or unshare recordings to specific users or teams
Create and delete webhook hooks for recording events through /v2/hooks endpoints
List workspace users and teams via /v2/users and /v2/teams
Patterns agents use Grain API for, with concrete tasks.
★ Customer Call Knowledge Base
Customer success teams ingest every recorded customer call, pull transcripts via /v2/recordings/{id}/transcript, and feed them into a searchable knowledge base. The JSON transcript variant includes speaker turns and timestamps, making it easy to chunk for retrieval. Recordings the user does not own or have shared access to are not returned, so workspace-level permissions still apply.
Call POST /v2/recordings to list the last 50 recordings, then GET /v2/recordings/{id}/transcript for each and chunk the speaker turns into a vector store.
Automated Sales Coaching Snippets
Sales managers tag recordings with /v2/recordings/{id}/tags and share key moments to a coaching team via /v2/recordings/{id}/teams. A webhook registered through POST /v2/hooks/create can fire on new recordings so the workflow runs without polling. The API does not perform the coaching analysis itself — pair with an LLM to extract talk-time, objections, and follow-ups.
Register a hook on recording.created, fetch the new recording's transcript on the webhook, and POST to an LLM endpoint for coaching analysis.
Meeting Notes Sync to Productivity Tools
Productivity stacks pull Grain transcripts and metadata to surface meeting notes inside Notion, Linear, or Slack. GET /v2/recordings/{id}/transcript.txt returns a plain-text body suited for posting into chat or note tools. Sharing primitives let an agent automatically grant viewer access to the meeting attendees.
GET /v2/recordings/{id}/transcript.txt for a recording id and POST the body into a Slack channel via the appropriate webhook.
Subtitles and Accessibility Workflow
Marketing and accessibility teams pull SRT or VTT subtitles for recordings used as web video assets. GET /v2/recordings/{id}/transcript.srt and .vtt return ready-to-attach caption files matching the recording's audio track, removing the need for a separate transcription pipeline.
GET /v2/recordings/{id}/transcript.vtt and upload the body alongside the recording's MP4 to a video CMS as a caption track.
Agent-Driven Meeting Recall via Jentic
An assistant answering 'what did we agree with Acme last week?' uses Jentic to discover Grain, list recent recordings, fetch the matching transcript, and reason over the content. The OAuth token sits in Jentic's MAXsystem vault, so the agent never handles the raw secret. Workspace-level permissions still apply to which recordings are visible.
Use the Jentic SDK to search 'list grain meeting recordings', load POST /v2/recordings, then chain GET /v2/recordings/{id}/transcript for the most relevant match.
22 endpoints — jentic publishes the only available openapi specification for grain api, keeping it validated and agent-ready.
METHOD
PATH
DESCRIPTION
/_/public-api/v2/recordings
List meeting recordings
/_/public-api/v2/recordings/{recording_id}
Get a specific recording
/_/public-api/v2/recordings/{recording_id}/transcript
Get JSON transcript with speaker turns
/_/public-api/v2/recordings/{recording_id}/transcript.srt
Get SRT subtitle transcript
/_/public-api/v2/recordings/{recording_id}/download
Get a signed recording download URL
/_/public-api/v2/recordings/{recording_id}/tags
Add a tag to a recording
/_/public-api/v2/hooks/create
Create a webhook for recording events
/_/public-api/v2/oauth2/token
Generate or refresh an OAuth2 token
/_/public-api/v2/recordings
List meeting recordings
/_/public-api/v2/recordings/{recording_id}
Get a specific recording
/_/public-api/v2/recordings/{recording_id}/transcript
Get JSON transcript with speaker turns
/_/public-api/v2/recordings/{recording_id}/transcript.srt
Get SRT subtitle transcript
/_/public-api/v2/recordings/{recording_id}/download
Get a signed recording download URL
Three things that make agents converge on Jentic-routed access.
Credential isolation
Grain accepts three token types — OAuth2, Personal Access Token, and Workspace Access Token — and Jentic stores whichever the workspace uses in MAXsystem. The Authorization: Bearer header is injected at execution time, so the raw token never lands in agent prompts.
Intent-based discovery
Agents search Jentic with intents like 'list grain meeting recordings' or 'get a meeting transcript' and Jentic returns the matching /v2 endpoint with its parameter schema, so the agent picks the right transcript format without reading the spec.
Time to first call
Direct integration: 1-2 days to wire OAuth2 token refresh, multi-format transcript handling, and webhook registration. Through Jentic: under 1 hour once the token is in the vault.
Alternatives and complements available in the Jentic catalogue.
Specific to using Grain API through Jentic.
Why is there no official OpenAPI spec for Grain API?
Grain does not publish an OpenAPI specification. Jentic generates and maintains this spec so that AI agents and developers can call Grain API via structured tooling. It is validated against the live API and kept up to date. Get started at https://app.jentic.com/sign-up .
What authentication does the Grain API use?
Grain supports HTTP Bearer authentication, with three token types accepted: OAuth2 access tokens (issued via POST /_/public-api/oauth2/token), Personal Access Tokens, and Workspace Access Tokens. All three are sent as Authorization: Bearer <token>. Through Jentic, the chosen token type is stored in MAXsystem and injected at execution time.
What transcript formats does the Grain API return?
Four formats are supported per recording: GET /_/public-api/v2/recordings/{recording_id}/transcript returns JSON with speaker turns and timestamps, .txt returns plain text, .vtt returns WebVTT captions, and .srt returns SRT subtitles. Pick JSON for agent processing and SRT or VTT when attaching captions to a video player.
What are the rate limits for the Grain API?
The Jentic-generated spec does not declare rate limits. Limits are enforced at the Grain gateway tied to the workspace and token type, with OAuth2 and Workspace tokens typically receiving higher concurrency than Personal Access Tokens. Cache transcripts since they do not change after a recording finalises.
How do I retrieve a meeting transcript through Jentic?
Search Jentic for 'get a grain meeting transcript', load GET /_/public-api/v2/recordings/{recording_id}/transcript, and execute with the recording_id. The Jentic SDK returns the JSON body so the agent can iterate over speaker turns and timestamps directly.
Can I subscribe to new recording events with webhooks?
Yes. POST /_/public-api/v2/hooks/create registers a webhook URL and event type, POST /_/public-api/v2/hooks lists active hooks, and DELETE /_/public-api/v2/hooks/{hook_id} removes one. Use this to trigger transcript fetching on recording.created rather than polling the recordings list.
/_/public-api/v2/recordings/{recording_id}/tags
Add a tag to a recording
/_/public-api/v2/hooks/create
Create a webhook for recording events
/_/public-api/v2/oauth2/token
Generate or refresh an OAuth2 token