If the source you need is not available, you can extend Coral by writing a custom source spec.
Bundled data sources
| Source | Backend | Description |
|---|---|---|
| claude | file | Query local Claude Code transcript events and prompt history from ~/.claude. |
| clickup | http | Query tasks, spaces, folders, lists, goals, time entries, comments, views, tags, custom fields, teams, and users from ClickUp. |
| cloudwatch_logs | http | Query Amazon CloudWatch Logs groups, streams, and events. |
| cloudwatch_metrics | http | Query Amazon CloudWatch metrics and monitoring metadata. |
| codex | file | Query local Codex session event logs from ~/.codex/sessions. |
| confluence | http | Query spaces, pages, blog posts, comments, attachments, labels, and related metadata from Confluence Cloud. |
| datadog | http | Query monitors, events, incidents, dashboards, hosts, services, APM dependencies, downtimes, SLOs, synthetic tests, users, logs, spans, and metrics from Datadog. |
| github | http | Query repositories, issues, pull requests, workflows, organizations, users, teams, and API metadata from GitHub (Cloud or Enterprise). |
| gitlab | http | Query projects, groups, issues, merge requests, pipelines, deployments, packages, users, and instance metadata from GitLab (Cloud or self-hosted). |
| gmail | http | Query Gmail profile metadata, labels, messages, threads, drafts, history, filters, and send-as aliases from the authenticated mailbox. |
| google_calendar | http | Query Google Calendar calendars, events, user settings, and color palettes. |
| grafana | http | Query dashboards, folders, datasources, alert rules, annotations, contact points, teams, users, and dashboard panels from Grafana (Cloud or self-hosted). |
| incident_io | http | Query incidents, alerts, escalations, schedules, status pages, workflows, teams, users, and catalog resources from incident.io. |
| intercom | http | Query contacts, companies, conversations, admins, tags, teams, segments, data attributes, collections, articles, and ticket types from Intercom. |
| jira | http | Query projects, issues, comments, worklogs, versions, components, issue types, priorities, and related metadata from Jira Cloud. |
| launchdarkly | http | Query projects, feature flags, environments, segments, members, roles, and audit logs from LaunchDarkly. |
| linear | http | Query Linear teams, users, issues, issue relations, projects, project milestones, cycles, initiatives, initiative-project links, labels, and attachments. |
| notion | http | Query pages, data sources, databases, blocks, users, templates, and properties from Notion. |
| openobserve | http | Query streams, logs, metrics, and traces from OpenObserve (Cloud or self-hosted). |
| pagerduty | http | Query incidents, services, teams, users, schedules, oncalls, escalation policies, log entries, change events, status pages, and workflows from PagerDuty. |
| posthog | http | Query events, persons, sessions, feature flags, experiments, insights, dashboards, cohorts, projects, organizations, and related PostHog resources. |
| sentry | http | Query issues, events, projects, releases, deployments, teams, and members from Sentry. |
| slack | http | Query channels, messages, thread replies, and users from your Slack workspace. |
| statusgator | http | Query status boards, monitors, incidents, history, service components, subscribers, users, and monitoring regions from StatusGator. |
| stripe | http | Query customers, charges, subscriptions, invoices, payments, products, prices, refunds, disputes, payouts, balance transactions, and events from Stripe. |
| wandb | http | Query the authenticated viewer, projects, runs, and sampled run metrics from Weights & Biases (W&B Cloud or self-hosted). |
Supported data source types
Supported sources fall into two categories.- HTTP API — Coral translates SQL queries into paginated HTTP requests against a provider’s REST API.
- File-backed — Coral reads Parquet, JSONL, JSON, or CSV files directly.
Upgrading bundled sources
To update bundled sources, upgrade the Coral binary. Coral resolves each bundled manifest from the current binary at validate or query time, so spec fixes and newly required inputs are picked up automatically, you don’t need to remove and re-add the source. Your configured variables and secrets stay in local state across upgrades.Configure a source
Each source has its own set of interactive inputs — API tokens, base URLs, or other per-install configuration.claude
No configuration required.
clickup
CLICKUP_API_TOKEN (required)
Use a personal ClickUp API token that begins with pk_.
The token inherits your account’s permissions and provides access
to the workspaces you belong to.
If you’re logged in to ClickUp, you can go to
App Settings to find your token.
For more details, see the
ClickUp authentication guide.
cloudwatch_logs
AWS_REGION (optional)default
us-east-1
AWS region for CloudWatch Logs API requests, for example us-east-1.
AWS_ENDPOINT_SUFFIX (optional)default
amazonaws.com
AWS endpoint DNS suffix. Keep amazonaws.com for standard AWS
regions. Use the appropriate suffix for other partitions.
AWS_ACCESS_KEY_ID (required)
AWS access key ID with CloudWatch Logs read permissions.
AWS_SECRET_ACCESS_KEY (required)
AWS secret access key.
Coral does not read your AWS CLI profile, AWS SSO cache, or
AWS_PROFILE at query time for this bundled source.
cloudwatch_metrics
AWS_REGION (optional)default
us-east-1
AWS region for CloudWatch API requests, for example us-east-1.
AWS_ENDPOINT_SUFFIX (optional)default
amazonaws.com
AWS endpoint DNS suffix. Keep amazonaws.com for standard AWS
regions. Use the appropriate suffix for other partitions.
AWS_ACCESS_KEY_ID (required)
AWS access key ID with the CloudWatch read permissions.
AWS_SECRET_ACCESS_KEY (required)
AWS secret access key.
Coral does not read your AWS CLI profile, AWS SSO cache, or
AWS_PROFILE at query time for this bundled source.
codex
No configuration required.
confluence
CONFLUENCE_BASE_URL (required)
Base URL of your Atlassian Cloud site, without the /wiki suffix
(for example https://acme.atlassian.net).
CONFLUENCE_EMAIL (required)
Email address for your Atlassian account.
CONFLUENCE_API_TOKEN (required)
Create an API token at
Atlassian API token settings.
datadog
DD_SITE (optional)default
datadoghq.com
Datadog site host for your org (for example datadoghq.com,
datadoghq.eu, us3.datadoghq.com, us5.datadoghq.com,
ap1.datadoghq.com, or ddog-gov.com).
For site and region details, see the
Datadog site guide.
DD_API_KEY (required)
Use a Datadog API key. This key is required for all Datadog API
requests.
See Datadog API keys.
DD_APPLICATION_KEY (required)
Use a Datadog application key with read access to the resources
you plan to query (for example monitors, incidents, logs, APM,
and metrics).
See Datadog application keys.
github
GITHUB_API_BASE (optional)default
https://api.github.com
Base URL for the GitHub REST API. Keep the default for GitHub
Cloud; for GitHub Enterprise Server, use
https://<host>/api/v3.
GITHUB_TOKEN (required)
Connect with GitHub OAuth or paste a personal access token. The
OAuth methods request the repo, read:org, read:user, and
user:email scopes.
Credential methods:
- Connect with GitHub device code — Signs you in through GitHub, with no app setup or client secret needed. Requests the
repo,read:org,read:user, anduser:emailscopes. To use your own GitHub app instead, set GITHUB_OAUTH_CLIENT_ID to its Client ID and enable device flow on the app. - Connect with GitHub OAuth app — Uses your own GitHub OAuth app. Register one with its Authorization callback URL set to
http://127.0.0.1:53682/oauth/callback, then enter the app’s Client ID and Client secret below. Requests therepo,read:org,read:user, anduser:emailscopes. See GitHub’s guide. - Paste token — If you use GitHub CLI, run
gh auth token. Otherwise create a personal access token with read access to the repositories and organizations you query; some admin tables need elevated scopes. Works with GitHub Enterprise Server. See GitHub PAT docs.
gitlab
GITLAB_API_BASE (optional)default
https://gitlab.com
Base URL of your GitLab instance. Keep the default for
gitlab.com; for self-hosted GitLab, use your instance URL
(for example https://gitlab.example.com).
GITLAB_TOKEN (required)
Connect with GitLab OAuth or paste a personal access token. Both
need the read_api scope; some admin tables require elevated scopes.
Credential methods:
- Connect with GitLab.com OAuth — Sign in to GitLab.com in your browser. Requests the
read_apiscope. To use your own GitLab OAuth application, set GITLAB_OAUTH_CLIENT_ID to its Application ID. - Paste token — Create a personal access token with the
read_apiscope; some admin tables need elevated scopes. See GitLab PAT docs.
gmail
GMAIL_USER_ID (optional)default
me
Gmail user ID to query. Use me for the authenticated Google
account, or an email address when the token has delegated access.
GMAIL_TOKEN (required)
Connect with Google OAuth or paste an access token. Either way the
token needs the https://www.googleapis.com/auth/gmail.readonly scope.
Credential methods:
- Connect with Google — Enable the Gmail API in a Google Cloud project and create an OAuth 2.0 client of type “Desktop app”, then enter its Client ID and Client secret below. Requests read-only access with the
https://www.googleapis.com/auth/gmail.readonlyscope. See Google OAuth client setup. - Paste access token — Paste a read-only OAuth 2.0 access token issued with the
https://www.googleapis.com/auth/gmail.readonlyscope.
google_calendar
GOOGLE_CALENDAR_API_BASE (optional)default
https://www.googleapis.com/calendar/v3
Base URL for the Google Calendar API. Keep the default unless you are
testing against a mock Calendar-compatible API.
GOOGLE_CALENDAR_ACCESS_TOKEN (required)
Connect with Google OAuth or paste an access token. Either way the
token needs the read-only
https://www.googleapis.com/auth/calendar.readonly scope.
Credential methods:
- Connect Google Calendar — Enable the Google Calendar API in a Google Cloud project and create an OAuth 2.0 client of type “Desktop app”, then enter its Client ID and Client secret below. Requests read-only access with the
https://www.googleapis.com/auth/calendar.readonlyscope. See Google OAuth client setup. - Paste access token — Paste a read-only OAuth 2.0 access token issued with the
https://www.googleapis.com/auth/calendar.readonlyscope.
grafana
GRAFANA_URL (required)
Base URL of your Grafana instance (e.g. https://my-org.grafana.net).
For self-hosted Grafana, use your instance URL
(e.g. https://grafana.example.com).
GRAFANA_TOKEN (required)
Create an Org Admin service account and generate a token for it.
This provides read access for all the bundled tables.
See Grafana service account docs.
incident_io
INCIDENT_IO_API_KEY (required)
Create an API key with read permissions for the resources you
plan to query.
See incident.io API key docs.
intercom
INTERCOM_ACCESS_TOKEN (required)
Create a private app and copy its access token. The token
provides read access to your workspace data.
See Intercom authentication docs.
jira
JIRA_BASE_URL (required)
Base URL of your Jira Cloud site (for example
https://acme.atlassian.net).
JIRA_EMAIL (required)
Email address for your Atlassian account.
JIRA_API_TOKEN (required)
Create an API token at
Atlassian API token settings.
launchdarkly
LAUNCHDARKLY_API_BASE (optional)default
https://app.launchdarkly.com
For self-hosted LaunchDarkly, set to your relay or app host
LAUNCHDARKLY_TOKEN (required)
Create an API access token with the Reader role, which gives
read-only access to all tables.
See LaunchDarkly API token docs.
linear
LINEAR_API_KEY (required)
Create a personal API key with the Read permission, which gives
read-only access to all tables. You can optionally scope the key
to specific teams.
See Linear API key docs.
notion
NOTION_API_KEY (required)
Notion doesn’t ship a workspace-wide read token. You must create a
connection on a workspace you own, then grant it access to the pages
and databases you want to query.
Create the connection at notion.so/developers
and copy its internal integration token. Then open the integration’s
content access settings and give it edit access to each page or
database you want Coral to read.
The token needs read content capabilities for most tables. See the
Notion authorization docs.
openobserve
OPENOBSERVE_URL (required)
Base URL of your OpenObserve instance (for example
https://api.openobserve.ai or http://localhost:5080).
OPENOBSERVE_ORG (optional)default
default
Organization slug in OpenObserve. Keep the default default for
single-tenant setups.
OPENOBSERVE_USERNAME (required)
OpenObserve username or email for HTTP Basic auth.
OPENOBSERVE_PASSWORD (required)
OpenObserve password for HTTP Basic auth.
pagerduty
PAGERDUTY_API_TOKEN (required)
Use a read-only General Access REST API key or a personal User
Token REST API key. General Access keys require admin privileges
to create; User Token keys can be created by any user but are
scoped to that user’s permissions.
See PagerDuty API access docs.
posthog
POSTHOG_API_BASE (optional)default
https://us.posthog.com
Base URL of your PostHog instance. Use https://us.posthog.com
for US Cloud, https://eu.posthog.com for EU Cloud, or your
self-hosted URL.
POSTHOG_API_KEY (required)
Create a personal API key and select only the read scopes for
the resources you plan to query.
See PostHog API docs.
sentry
SENTRY_ORG (required)
Your Sentry organization slug (found in the Sentry URL after /organizations/)
SENTRY_TOKEN (required)
Connect with Sentry OAuth or paste an internal-integration token.
Both need the org:read, event:read, member:read, project:read,
project:releases, and team:read scopes.
Credential methods:
- Connect with Sentry device flow — Sign in to Sentry with a device code. Enter your Sentry OAuth app’s Client ID when prompted. Requests the
org:read,event:read,member:read,project:read,project:releases, andteam:readscopes. See Sentry auth docs. - Paste auth token — Create an internal integration and paste its token, granting the
org:read,event:read,member:read,project:read,project:releases, andteam:readread scopes. See Sentry auth docs.
slack
SLACK_TOKEN (required)
Slack has no general-purpose API for reading messages, so you need
a Slack app with an OAuth token. Both methods use these scopes:
channels:read, channels:history, groups:read,
groups:history, users:read, users:read.email. See the
Slack app setup guide.
Credential methods:
- Connect with Slack — Create a user-token app, which pre-fills the scopes and redirect URL, then enter its Client ID below and authorize in your browser. Reads the channels the authorizing user belongs to.
- Paste Slack OAuth Token — Paste the OAuth token from your app’s OAuth & Permissions page. If you don’t have an app, create a bot-token app, install it, then paste its bot token. Reads the channels the bot has been added to.
statusgator
STATUSGATOR_API_TOKEN (required)
Create a read-only API token from the API menu in your
StatusGator dashboard. Only organization admins can generate
tokens.
See StatusGator API docs.
stripe
STRIPE_API_KEY (required)
Create a restricted API key (rk_test_ or rk_live_) with Read
permissions for the resources you plan to query.
You can also use secret keys (sk_test_ or sk_live_), but
restricted keys limit access to only the required endpoints.
See Stripe API key docs.
wandb
WANDB_BASE_URL (optional)default
https://api.wandb.ai
Base URL of your W&B instance. Use https://api.wandb.ai for W&B
Cloud (the default) or your self-hosted host (for example
https://wandb.example.com). The GraphQL endpoint is at /graphql.
WANDB_API_KEY (required)
Personal API key for W&B. Generate one at
https://wandb.ai/authorize (or
https://<your-host>/authorize for self-hosted). Coral uses the
key for HTTP Basic auth with username api.