Skip to main content
Glama
api-keys.ts6.23 kB
import { BaseService, ServiceInfo } from './base-service.js'; export class ApiKeysService extends BaseService { getServiceInfo(): ServiceInfo { return { name: 'api-keys', description: 'Manage API keys and permissions - create, get, delete API keys and manage permissions', category: 'authentication', methods: [ { name: 'create', description: 'Create a new API key', parameters: { label: { type: 'string', description: 'API key label', required: false }, permissions: { type: 'array', description: 'Array of permission strings', required: true }, storeId: { type: 'string', description: 'Store ID for store-specific permissions', required: false } }, examples: [ { name: 'Store manager key', description: 'Create API key with store management permissions', parameters: { label: 'Store Manager Key', permissions: ['btcpay.store.canmodifystoresettings', 'btcpay.store.canviewinvoices'], storeId: 'store123' } }, { name: 'Invoice-only key', description: 'Create API key for invoice operations only', parameters: { label: 'Invoice API Key', permissions: ['btcpay.store.cancreateinvoice', 'btcpay.store.canviewinvoices'], storeId: 'store123' } } ] }, { name: 'get', description: 'Get API key details', parameters: { apiKey: { type: 'string', description: 'API key to retrieve', required: true } }, examples: [ { name: 'Get API key info', description: 'Retrieve API key information', parameters: { apiKey: 'your-api-key-here' } } ] }, { name: 'delete', description: 'Delete an API key', parameters: { apiKey: { type: 'string', description: 'API key to delete', required: true } }, examples: [ { name: 'Revoke API key', description: 'Delete/revoke an API key', parameters: { apiKey: 'api-key-to-revoke' } } ] }, { name: 'getPermissions', description: 'Get available API permissions', parameters: {}, examples: [ { name: 'List permissions', description: 'Get all available API permissions', parameters: {} } ] }, { name: 'revokeCurrent', description: 'Revoke the current API key', parameters: {}, examples: [ { name: 'Revoke current key', description: 'Revoke the currently used API key', parameters: {} } ] }, { name: 'createForUser', description: 'Create a new API key for a specific user', parameters: { idOrEmail: { type: 'string', description: 'The user\'s ID or email address', required: true }, label: { type: 'string', description: 'API key label', required: false }, permissions: { type: 'array', description: 'Array of permission strings', required: true } }, examples: [ { name: 'Create user API key', description: 'Create API key for a specific user', parameters: { idOrEmail: 'user@example.com', label: 'User Store Key', permissions: ['btcpay.store.cancreateinvoice'] } } ] }, { name: 'deleteForUser', description: 'Delete an API key for a specific user', parameters: { idOrEmail: { type: 'string', description: 'The user\'s ID or email address', required: true }, apiKey: { type: 'string', description: 'API key to delete', required: true } }, examples: [ { name: 'Delete user API key', description: 'Delete/revoke an API key for a specific user', parameters: { idOrEmail: 'user@example.com', apiKey: 'api-key-to-revoke' } } ] } ] }; } protected async handleMethod(methodName: string, parameters: Record<string, any>): Promise<any> { switch (methodName) { case 'create': return await this.client.createApiKey( parameters.permissions, parameters.label, parameters.storeId ); case 'get': return await this.client.getApiKey(); case 'delete': return await this.client.deleteApiKey(parameters.apiKey); case 'getPermissions': return await this.client.getPermissions(); case 'revokeCurrent': return await this.client.revokeCurrentApiKey(); case 'createForUser': return await this.client.createApiKeyForUser( parameters.idOrEmail, parameters.permissions, parameters.label ); case 'deleteForUser': return await this.client.deleteApiKeyForUser( parameters.idOrEmail, parameters.apiKey ); default: throw new Error(`Method ${methodName} not implemented`); } } }

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/Abhijay007/btcpayserver-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server