akhrot

Use Akhrot APIs to manage OAuth tokens and API keys for external services (Gmail, GitHub, Slack, OpenAI, Stripe, etc.). Check connections, fetch tokens, create OAuth sessions, then call provider APIs directly.

Safety Notice

This listing is imported from skills.sh public index metadata. Review upstream SKILL.md and repository scripts before running.

Copy this and send it to your AI assistant to learn

Install skill "akhrot" with this command: npx skills add upsurgeio/akhrot/upsurgeio-akhrot-akhrot

Akhrot - OAuth & API Key Integration Skill

You have access to Akhrot, an OAuth-as-a-Service platform that manages OAuth tokens and API keys for external services. Your API key identifies the user account — all connections are tied to this key.

Architecture

Akhrot manages credentials only. You:

  1. Fetch credentials from Akhrot (tokens or API keys)
  2. Call provider APIs directly (Gmail API, GitHub API, Slack, etc.)

Base URL: https://akhrot.ai (or user's Akhrot instance). All requests use header: Authorization: Bearer {Akhrot_API_KEY}.

Quick Start

Step 1: Check connection status (lightweight)

curl -s -H "Authorization: Bearer {Akhrot_API_KEY}" "https://akhrot.ai/ai/context/summary"

Returns which providers are connected and available services (~500 bytes).

Step 2: Get provider or service details (when needed)

# One provider
curl -s -H "Authorization: Bearer {Akhrot_API_KEY}" "https://akhrot.ai/ai/context/google"

# One service
curl -s -H "Authorization: Bearer {Akhrot_API_KEY}" "https://akhrot.ai/ai/context/google/gmail"

Step 3: Fetch token for connected provider

curl -s -X POST "https://akhrot.ai/tokens/fetch" \
  -H "Authorization: Bearer {Akhrot_API_KEY}" \
  -H "Content-Type: application/json" \
  -d '{"provider": "google"}'

Returns accessToken (and for Telegram MTProto: apiId, apiHash, type: "mtproto"). Tokens auto-refresh when expired.

Step 4: Create OAuth session (for new connections)

If the user has not connected a provider yet:

curl -s -X POST "https://akhrot.ai/oauth/sessions" \
  -H "Authorization: Bearer {Akhrot_API_KEY}" \
  -H "Content-Type: application/json" \
  -d '{"provider": "google"}'

Response includes url. Send the user to that URL to authorize; after they finish, the provider is connected.

Step 5: Call provider API directly

Use the token with the provider's native API:

# Gmail
curl -s -H "Authorization: Bearer {accessToken}" \
  "https://gmail.googleapis.com/gmail/v1/users/me/messages?maxResults=10"

# GitHub
curl -s -H "Authorization: Bearer {accessToken}" \
  -H "Accept: application/vnd.github+json" \
  "https://api.github.com/user/repos"

Available Providers

Use the provider code in /tokens/fetch and /oauth/sessions.

ProviderCodeToken TypeUse Cases
GooglegoogleOAuth BearerGmail, Drive, Calendar, Sheets
MongoDBmongodbAPI KeyDatabase
SupabasesupabaseAPI KeyDatabase
RailwayrailwayAPI KeyDatabase / services
ElevenLabselevenlabsAPI KeyVoice, TTS
TypefullytypefullyAPI KeyContent, Drafts
OpenAIopenaiAPI KeyGPT, DALL-E, Embeddings
TwiliotwilioAPI KeySMS, Voice, Video
StripestripeAPI KeyPayments, Billing
SendGridsendgridAPI KeyEmail
AnthropicanthropicAPI KeyClaude
ReplicatereplicateAPI KeyML Models
CloudflarecloudflareAPI KeyDNS, CDN
CoherecohereAPI KeyNLP
PostmarkpostmarkAPI KeyEmail
MailgunmailgunAPI KeyEmail
PagerDutypagerdutyAPI KeyIncidents
VercelvercelAPI KeyDeployments

Key points

  • API key = user identity. No userId; the Akhrot API key identifies the user.
  • Token auto-refresh. Expired OAuth tokens are refreshed automatically on /tokens/fetch.
  • Direct API calls. You call provider APIs directly; Akhrot only stores and returns credentials.
  • User must authorize. For OAuth, users must complete the flow at the URL from /oauth/sessions; you cannot authorize for them.
  • Telegram is special. Uses MTProto. Response includes accessToken (session string), apiId, apiHash. Use with gramjs (JS) or telethon (Python).

Error codes

CodeHTTPMeaning
UNAUTHORIZED401Invalid or missing API key
INTEGRATION_NOT_FOUND404User has not connected this provider
TOKEN_EXPIRED400Token expired, no refresh token
SESSION_EXPIRED400OAuth session expired (e.g. 10 min)
RATE_LIMITED429Too many requests

Live skill document

For the latest version from the Akhrot server:

GET https://akhrot.ai/ai/skill

(No auth required; returns markdown.)

Source Transparency

This detail page is rendered from real SKILL.md content. Trust labels are metadata-based hints, not a safety guarantee.

Related Skills

Related by shared tags or category signals.

Coding

github-tools

Interact with GitHub using the `gh` CLI. Use `gh issue`, `gh pr`, `gh run`, and `gh api` for issues, PRs, CI runs, and advanced queries.

Archived SourceRecently Updated
Coding

openclaw-version-monitor

监控 OpenClaw GitHub 版本更新,获取最新版本发布说明,翻译成中文, 并推送到 Telegram 和 Feishu。用于:(1) 定时检查版本更新 (2) 推送版本更新通知 (3) 生成中文版发布说明

Archived SourceRecently Updated
Coding

ask-claude

Delegate a task to Claude Code CLI and immediately report the result back in chat. Supports persistent sessions with full context memory. Safe execution: no data exfiltration, no external calls, file operations confined to workspace. Use when the user asks to run Claude, delegate a coding task, continue a previous Claude session, or any task benefiting from Claude Code's tools (file editing, code analysis, bash, etc.).

Archived SourceRecently Updated
Coding

ai-dating

This skill enables dating and matchmaking workflows. Use it when a user asks to make friends, find a partner, run matchmaking, or provide dating preferences/profile updates. The skill should execute `dating-cli` commands to complete profile setup, task creation/update, match checking, contact reveal, and review.

Archived SourceRecently Updated