{"templateId":"GuidePage","sharedDataIds":{"sidebar":"sidebar-miniapps/sidebars.yaml"},"props":{"metadata":{"markdoc":{"tagList":["callout"]},"type":"markdown"},"seo":{"title":"Quickstart","description":"Developer API, partner integration, MCP, SDK, and customer help center.","llmstxt":{"hide":false,"sections":[{"title":"Table of contents","includeFiles":["**/*"],"excludeFiles":[]}],"excludeFiles":[]}},"dynamicMarkdocComponents":[],"compilationErrors":[],"ast":{"$$mdtype":"Tag","name":"article","attributes":{},"children":[{"$$mdtype":"Tag","name":"Heading","attributes":{"level":1,"id":"quickstart","__idx":0},"children":["Quickstart"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Build a minimal MiniApp definition with bearer-token auth and one action. When it works against your provider's sandbox, ",{"$$mdtype":"Tag","name":"a","attributes":{"href":"/miniapps/guides/submission"},"children":["submit it for review"]},"."]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":2,"id":"minimal-definition","__idx":1},"children":["Minimal definition"]},{"$$mdtype":"Tag","name":"CodeBlock","attributes":{"data-language":"javascript","header":{"controls":{"copy":{}}},"source":"const myMiniApp = {\n  ns: 'my-service',\n  name: 'my-service',\n  type: 'my-service',\n  title: 'My Service',\n  label: 'My Service',\n  description: 'Connect My Service to automate workflows.',\n  shortDescription: 'My Service integration',\n  status: 'private',          // Karzoun sets 'public' after approval\n  version: '1.0.0',\n  category: 'productivity',\n  icon: 'https://cdn.example.com/icon.svg',\n  logo: 'https://cdn.example.com/logo.svg',\n  docsUrl: 'https://docs.example.com/your-karzoun-guide',\n\n  auth: {\n    type: 'bearer_token',\n    sensitiveKeys: ['accessToken'],\n    config: { accessToken: '' },\n    userDetails: {\n      url: 'https://api.example.com/me',\n      method: 'GET',\n      headers: { Authorization: 'Bearer [[accessToken]]' },\n      bodyType: 'json',\n      body: {},\n      mapping: { uid: '$.id', name: '$.name' },\n    },\n  },\n\n  actions: [\n    {\n      name: 'sendMessage',\n      title: 'Send Message',\n      description: 'Send a message to a channel',\n      renderStrategy: 'auto',\n      parameters: {\n        type: 'object',\n        required: ['channel', 'text'],\n        properties: {\n          channel: { type: 'string', title: 'Channel' },\n          text: { type: 'string', title: 'Message Text' },\n        },\n      },\n      requests: [\n        {\n          url: 'https://api.example.com/messages',\n          method: 'POST',\n          headers: {\n            Authorization: 'Bearer [[accessToken]]',\n            'Content-Type': 'application/json',\n          },\n          bodyType: 'json',\n          body: { channel: '{{channel}}', text: '{{text}}' },\n          mapping: { messageId: '$.id' },\n        },\n      ],\n    },\n  ],\n\n  triggers: [],\n  webhook: null,\n  source: {},\n};\n","lang":"javascript"},"children":[]},{"$$mdtype":"Tag","name":"Callout","attributes":{"type":"tip","title":"Test locally first"},"children":[{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Validate JSON shape, call your provider APIs with the same URLs/headers, and verify webhook payloads before submission. Karzoun sandbox access is provided during review."]}]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":2,"id":"next-steps","__idx":2},"children":["Next steps"]},{"$$mdtype":"Tag","name":"ol","attributes":{},"children":[{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"a","attributes":{"href":"/miniapps/reference/document-schema"},"children":["Document schema"]}," — Required fields"]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"a","attributes":{"href":"/miniapps/guides/authentication"},"children":["Authentication"]}," — OAuth and registration flows"]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"a","attributes":{"href":"/miniapps/guides/submission"},"children":["Submit for review"]}," — Send your package to Karzoun"]}]}]},"headings":[{"value":"Quickstart","id":"quickstart","depth":1},{"value":"Minimal definition","id":"minimal-definition","depth":2},{"value":"Next steps","id":"next-steps","depth":2}],"frontmatter":{"title":"Quickstart","titleTranslationKey":"sidebar.miniapps.quickstart","audience":"developer","status":"published","locales":["en","ar"],"template":"GuidePage","seo":{"title":"Quickstart"}},"lastModified":"2026-06-23T12:06:12.000Z","pagePropGetterError":{"message":"","name":""}},"slug":"/miniapps/getting-started/quickstart","userData":{"isAuthenticated":false,"teams":["anonymous"]},"isPublic":true}