> ## Documentation Index
> Fetch the complete documentation index at: https://docs.worksong.ai/llms.txt
> Use this file to discover all available pages before exploring further.

# Register integration



## OpenAPI

````yaml /api/work.openapi.json post /v1/integrations
openapi: 3.1.1
info:
  title: Work API
  description: >-
    The governed Work OS API (AD-9) — the same /v1 surface the app and agents
    use. Errors are RFC 9457 application/problem+json. The audit +
    member-activity lists are cursor-paginated.
  version: 1.2.6
  x-source: worksong-ai/Boardy@ebb4f0964633f024012c12b6bcc5b77e855dbf23
servers:
  - url: https://boardy.worksong.ai
    description: Work API
security: []
tags:
  - name: Agents
  - name: Artifacts
  - name: Attachments
  - name: Audit
  - name: Authority
  - name: Automation catalog
  - name: Automations
  - name: Boards
  - name: Columns
  - name: Dashboards
  - name: Docs
  - name: Email
  - name: Folders
  - name: Forms
  - name: Gates
  - name: Hub ticket
  - name: Imports
  - name: Integrations
  - name: Invitations
  - name: Items
  - name: Knowledge graph
  - name: Limit status
  - name: Me
  - name: Members
  - name: Notifications
  - name: Oauth
  - name: Positions
  - name: Proposals
  - name: Public
  - name: Rag
  - name: Remote agents
  - name: Responsibilities
  - name: Search
  - name: Session
  - name: Settings
  - name: Signup
  - name: Templates
  - name: Tokens
  - name: Tools
  - name: Views
  - name: Widgets
  - name: Workspaces
paths:
  /v1/integrations:
    post:
      tags:
        - Integrations
      summary: Register integration
      operationId: RegisterIntegration
      parameters:
        - name: Idempotency-Key
          in: header
          description: >-
            AD-5 idempotency: a repeated mutation with the same key replays the
            prior result (no double-apply).
          schema:
            type: string
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/IntegrationRequest'
        required: true
      responses:
        '201':
          description: Created
        '400':
          description: Bad Request
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '403':
          description: Forbidden
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
      security:
        - clerkSession: []
        - apiToken: []
components:
  schemas:
    IntegrationRequest:
      required:
        - name
        - type
        - target
        - secret
      type: object
      properties:
        name:
          type:
            - 'null'
            - string
        type:
          type: string
        target:
          type:
            - 'null'
            - string
        secret:
          type:
            - 'null'
            - string
    ProblemDetails:
      type: object
      properties:
        type:
          type:
            - 'null'
            - string
        title:
          type:
            - 'null'
            - string
        status:
          pattern: ^-?(?:0|[1-9]\d*)$
          type:
            - 'null'
            - integer
            - string
          format: int32
        detail:
          type:
            - 'null'
            - string
        instance:
          type:
            - 'null'
            - string
  securitySchemes:
    clerkSession:
      type: http
      description: >-
        Clerk session JWT (deployments with Clerk auth) — validated per request
        (issuer + signature + lifetime + authorized-party). The internal Boardy
        tenant/member are resolved from the token's ACTIVE Clerk organization
        (`org_id`) → the Boardy tenant it maps to → this user's member in that
        tenant (#356). A token with no active organization is rejected;
        production never trusts spoofable `X-Tenant-Id`/`X-Member-Id` headers.
        The same normalized context backs the SPA, this OpenAPI surface, and
        MCP.
      scheme: bearer
      bearerFormat: JWT
    apiToken:
      type: http
      description: >-
        Boardy API token (`bdy_…`) for external integrations — acts as its bound
        Member capped by the token's scope, authorized through the Action
        Boundary. The token already carries its internal tenant/member.
      scheme: bearer

````

This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.