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

Terms & Conditions•Privacy Policy•
© 2026 Jentic Technology Ltd. All rights reserved.
Switch to light modeSwitch to dark mode
APIs / Productivity / Grain API
Grain API logo

Grain API

Agent-ready OpenAPI document · curated by JenticProductivityCollaborationbearer22 EndpointsREST

Know of an official OpenAPI document? Contribute it →

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.

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.

Jentic One on GithubView OpenAPI Document

Install Jentic One Beta

Connect the Grain API to your agent

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.

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%2Fgrain.com%2Fgrain" | 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%2Fgrain.com%2Fgrain" | 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 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

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

Use Cases

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 Jentic One instance, 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.

Key Endpoints

22 endpoints — jentic publishes the only available openapi specification for grain api, keeping it validated and agent-ready.

METHOD

PATH

DESCRIPTION

POST

/_/public-api/v2/recordings

List meeting recordings

POST

/_/public-api/v2/recordings/{recording_id}

Get a specific recording

GET

/_/public-api/v2/recordings/{recording_id}/transcript

Get JSON transcript with speaker turns

GET

/_/public-api/v2/recordings/{recording_id}/transcript.srt

Get SRT subtitle transcript

GET

/_/public-api/v2/recordings/{recording_id}/download

Get a signed recording download URL

PUT

/_/public-api/v2/recordings/{recording_id}/tags

Add a tag to a recording

POST

/_/public-api/v2/hooks/create

Create a webhook for recording events

POST

/_/public-api/v2/oauth2/token

Generate or refresh an OAuth2 token

POST

/_/public-api/v2/recordings

List meeting recordings

POST

/_/public-api/v2/recordings/{recording_id}

Get a specific recording

GET

/_/public-api/v2/recordings/{recording_id}/transcript

Get JSON transcript with speaker turns

GET

/_/public-api/v2/recordings/{recording_id}/transcript.srt

Get SRT subtitle transcript

GET

/_/public-api/v2/recordings/{recording_id}/download

Get a signed recording download URL

PUT

/_/public-api/v2/recordings/{recording_id}/tags

Add a tag to a recording

POST

/_/public-api/v2/hooks/create

Create a webhook for recording events

POST

/_/public-api/v2/oauth2/token

Generate or refresh an OAuth2 token

Why Jentic?

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

Setup

Setup

Wiring Grain by hand means handling its bearer auth, learning the /_/public-api/v2 path layout, and stitching together recording, transcript, tag, and sharing calls yourself. Through Jentic you install once, import the Grain API from the API Directory, store the bearer token once, and your agent calls it.

Permission scoping

Permission scoping

Grain puts the recording id in the URL path (/recordings/{recording_id}/transcript, /recordings/{recording_id}/tags), so a rule can pin your agent to one recording: it can read the transcript and manage tags for that recording and nothing else. You choose the operations it may call, so ones like deleting a tag or removing a recording share are not included unless you add them.

Credential management

Credential isolation

Your Grain 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.

Intent-based discovery

Intent-based discovery

Agents search Jentic by intent such as 'get a recording transcript' or 'tag a call recording', and Jentic returns the matching Grain operation with its input schema so the agent calls the right endpoint without browsing the reference docs.

Related APIs

Alternatives and complements available in the Jentic catalogue.

Alternative

Fireflies AI API

→

Meeting transcription and conversation intelligence platform

Pick Fireflies when conversation analytics and CRM sync are core; pick Grain when fast clipping, native sharing, and clip-based knowledge bases matter.

Complementary

Zoom Meetings API

→

Meeting platform whose calls Grain often records

Use Zoom Meetings to schedule or list calls, then pull the corresponding Grain recording for transcripts and clips.

Alternative

Deepgram API

→

Speech-to-text platform when raw transcription is the only need

Pick Deepgram when you only need transcription on audio you already control; pick Grain when meeting capture, sharing, and clipping are part of the workflow.

Alternative

AssemblyAI API

→

Speech-to-text and audio intelligence for arbitrary audio sources

Choose AssemblyAI when transcribing arbitrary audio outside a meeting platform; choose Grain when the source is recorded meetings and you want native sharing and tags.

FAQs

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 with Jentic One, the self-hosted execution layer.

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 your Jentic One instance 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.

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

Yes. Jentic One is self-hosted by you, so your own rules decide which Grain operations and which stored token the agent may use. Because Grain puts the recording id in the URL path, such as /recordings/{recording_id}/transcript and /recordings/{recording_id}/tags, you can pin the agent to a single recording so it reads that transcript and manages its tags and nothing else. You choose the operations it may call, so destructive ones like deleting a tag or removing a recording share stay off unless you explicitly add them.

GET STARTED

Start building with Grain API

Explore with Jentic One
View OpenAPI Document