ZenZap Agentic API

Endpoints for AI agents to programmatically set up Zenzap organizations. Use `POST /v2/agentic/organization/create` to create an organization, install a bot, and invite a human user in a single request — no authentication required.

Operations 1

POST /v2/agentic/organization/create Create organization #

Work with this as data

Every API here is available over the APIs.io API and to AI agents over MCP.

MCP server

One button, every client — Claude, Cursor, VS Code and the rest.

https://apis.io/mcp

Tools for apis

7 MCP tools reach this
  • find_apisBrowse and filter every API in the catalog.
  • get_api_artifactsOne API's artifacts, grouped by type.
  • get_openapiThe primary OpenAPI for this API.
  • find_similar_apisAPIs that look like this one.
  • apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.
  • resolveTurn a domain, URL or GitHub org into the provider it belongs to.
  • find_cohortsEvery scored population of providers in the catalog.
All 92 tools →

Call it yourself

curl for this page
This API
curl "https://apis.io/api/v1/apis/zenzap-agentic-api"
All apis
curl "https://apis.io/api/v1/apis?limit=25"

Discovery needs no key. Ratings and market analysis are Pro.

Get an API key

Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.

A second provider on the same verified email joins the account you already have.

OpenAPI Specification

zenzap-agentic-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: Zenzap External Integration Agentic API
  description: API for external applications to integrate with Zenzap.
  version: 2.0.0
  contact:
    name: Zenzap Support
    url: https://zenzap.co/support
servers:
- url: https://api.zenzap.co
  description: Production server
security:
- bearerAuth: []
  hmacSignature: []
- oauth2ClientCredentials: []
tags:
- name: Agentic
  description: 'Endpoints for AI agents to programmatically set up Zenzap organizations.


    Use `POST /v2/agentic/organization/create` to create an organization, install a bot, and invite a human user in a single request — no authentication required.'
paths:
  /v2/agentic/organization/create:
    post:
      summary: Create organization
      description: 'Allows an external AI agent to programmatically create a Zenzap organization,

        install a bot (the agent itself), and invite a human user — all in a single request.


        **Authentication:** None required. This endpoint is publicly accessible.


        **Rate limit:** 1 request per minute per IP.


        Supports two content types:

        - `application/json` — for requests without a logo

        - `multipart/form-data` — for requests that include a company logo (`filePart`)


        Once you receive the `201` response, use the returned `credentials` to authenticate

        all subsequent API calls. See Authentication for details.'
      operationId: createAgenticOrganization
      tags:
      - Agentic
      security: []
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/AgenticOrganizationCreateRequest'
            example:
              companyName: Acme Corp
              humanEmail: founder@acme.com
              companySize: 50
              industry: Software
              botName: Acme Assistant
          multipart/form-data:
            schema:
              type: object
              properties:
                filePart:
                  type: string
                  format: binary
                  description: Company logo image. Max 5 MB. Optional.
                metadata:
                  $ref: '#/components/schemas/AgenticOrganizationCreateRequest'
            encoding:
              metadata:
                contentType: application/json
      responses:
        '201':
          description: Organization created successfully
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/AgenticOrganizationCreateResponse'
              example:
                organizationId: 067d0b2f-1ee8-49f2-bb09-e2d964c8cf6b
                botProfileId: b@f951b968-bf80-4ee6-bbbe-6ca338f57fc6
                channelId: 1b383aef-15c2-44e2-b599-d1d40a8b286c
                humanProfileId: a3c2e1d0-9f8b-4e7a-b6c5-d4e3f2a1b0c9
                credentials:
                - label: API Key
                  value: utxDAedgfFXglaLX
                - label: API Secret
                  value: 66AybzV7s0afLeKKqpxC7wLKCTk5d7bT
                - label: Control Topic ID
                  value: 1b383aef-15c2-44e2-b599-d1d40a8b286c
        '400':
          description: Validation error
          content:
            application/json:
              schema:
                type: object
                properties:
                  message:
                    type: string
              examples:
                companyNameRequired:
                  summary: Missing company name
                  value:
                    message: companyName is required
                companyNameTooLong:
                  summary: Company name too long
                  value:
                    message: companyName exceeds max length
                invalidEmail:
                  summary: Invalid email
                  value:
                    message: invalid humanEmail
                invalidCompanySize:
                  summary: Invalid company size
                  value:
                    message: companySize must be a positive integer
                industryRequired:
                  summary: Missing industry
                  value:
                    message: industry is required
                botNameRequired:
                  summary: Missing bot name
                  value:
                    message: botName is required
                unableToCreate:
                  summary: Conflict (email or domain already in use)
                  value:
                    message: Unable to create organization
        '429':
          description: Rate limit exceeded (1 request per minute per IP)
components:
  schemas:
    AgenticOrganizationCreateResponse:
      type: object
      properties:
        organizationId:
          type: string
          format: uuid
          description: UUID of the newly created organization.
          example: 067d0b2f-1ee8-49f2-bb09-e2d964c8cf6b
        botProfileId:
          type: string
          description: The bot's identity (format `b@<uuid>`). Use as `senderId` filter when polling.
          example: b@f951b968-bf80-4ee6-bbbe-6ca338f57fc6
        channelId:
          type: string
          format: uuid
          description: The bot's control channel ID (same as the `Control Topic ID` credential).
          example: 1b383aef-15c2-44e2-b599-d1d40a8b286c
        humanProfileId:
          type: string
          format: uuid
          description: The pending profile ID of the invited human. Use this to identify the human once they join.
          example: a3c2e1d0-9f8b-4e7a-b6c5-d4e3f2a1b0c9
        credentials:
          type: array
          description: API credentials for the bot. Store the API Secret securely.
          items:
            type: object
            properties:
              label:
                type: string
                example: API Key
              value:
                type: string
                example: utxDAedgfFXglaLX
    AgenticOrganizationCreateRequest:
      type: object
      required:
      - companyName
      - humanEmail
      - companySize
      - industry
      - botName
      properties:
        companyName:
          type: string
          maxLength: 100
          description: Display name of the organization.
          example: Acme Corp
        humanEmail:
          type: string
          format: email
          description: The human user who will receive an invite and become the org's first member.
          example: founder@acme.com
        companySize:
          type: integer
          minimum: 1
          description: Number of employees. Mapped to a size range.
          example: 50
        industry:
          type: string
          description: Free-text industry description (e.g. "Software", "Healthcare").
          example: Software
        botName:
          type: string
          description: Display name for the agent bot installed in the organization.
          example: Acme Assistant
  securitySchemes:
    bearerAuth:
      type: http
      scheme: bearer
      description: 'Bearer token for the request. Two flavors:


        - **Static API key** — pass your API key (the value returned as `apiKey` when the bot was created). Must be paired with `X-Signature` + `X-Timestamp` (the `hmacSignature` scheme).

        - **OAuth access token** — pass the JWT returned by `POST /oauth/token`. No signature headers are required.

        '
    hmacSignature:
      type: apiKey
      in: header
      name: X-Signature
      description: 'HMAC-SHA256 signature for request verification. Required **only** when authenticating with a static API key. Omit when using an OAuth access token.

        '
    oauth2ClientCredentials:
      type: oauth2
      description: 'OAuth 2.0 `client_credentials` grant for API-key bots. Use the `clientId` and `clientSecret` returned when the bot was created (or rotated) to mint short-lived access tokens. See [Authentication](/api-reference/authentication) for details.


        Access tokens are bearer JWTs and expire after 1 hour. There is no refresh token — re-mint with the client credentials when the token expires.

        '
      flows:
        clientCredentials:
          tokenUrl: https://api.zenzap.co/oauth/token
          scopes:
            channel:list: List topics the bot belongs to
            channel:read: Read topic metadata
            channel:write: Create/update topics and manage members
            message:read: Read messages
            message:send: Send messages
            message:write: Edit / delete / mark-delivered / mark-read messages
            reaction:write: Add and remove reactions on messages
            task:read: Read tasks
            task:write: Create / update / delete tasks
            poll:write: Create polls and cast / retract votes
            member:read: List organization members
            updates:read: Long-poll for outbound events