Binarly Integration API

The Integration API from Binarly — 10 operation(s) for integration.

Operations 12

GET /api/v4/providers Get a list of providers and their active integrations #
POST /api/v4/providers/{provider}/integrations Create integration entity #
PATCH /api/v4/providers/-/integrations/{integrationId} Update integration data #
GET /api/v4/providers/-/integrations/{integrationId}/session Get session for an integration #
GET /api/v4/providers/-/integrations/{integrationId}/jira/projects List Jira projects with related issue types #
POST /api/v4/providers/-/integrations/{integrationId}/jira/issues Create Jira issue for specified finding #
GET /api/v4/providers/-/integrations/{integrationId}/jira/issues Get Jira issue for specified finding #
POST /api/v4/providers/-/integrations/{integrationId}/jira/issues:attach Attach file to a Jira issue for specified finding #
GET /api/v4/providers/-/integrations/{integrationId}/jira/issues:check Check Jira issues #
POST /api/v4/providers/-/integrations/{integrationId}/jira/webhook Create Jira webhook #
DELETE /api/v4/providers/-/integrations/{integrationId}/jira/webhook Delete Jira webhook #
GET /api/v4/providers/-/integrations/{integrationId}/jira/webhook/failed Get failed Jira webhooks #

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/binarly-integration-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

binarly-integration-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: Binarly Assistant Integration API
  version: 4.275.2
security:
- auth: []
tags:
- name: Integration
paths:
  /api/v4/providers:
    get:
      summary: Get a list of providers and their active integrations
      operationId: ListProviders
      x-permission: integrations.list
      tags:
      - Integration
      responses:
        '200':
          description: success
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Providers'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '500':
          $ref: '#/components/responses/InternalServerError'
  /api/v4/providers/{provider}/integrations:
    post:
      summary: Create integration entity
      operationId: CreateIntegration
      x-permission: integrations.create
      tags:
      - Integration
      parameters:
      - name: provider
        in: path
        description: Provider
        required: true
        schema:
          type: string
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CreateIntegrationPayload'
      responses:
        '200':
          description: success
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Integration'
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '404':
          $ref: '#/components/responses/NotFound'
        '500':
          $ref: '#/components/responses/InternalServerError'
  /api/v4/providers/-/integrations/{integrationId}:
    patch:
      summary: Update integration data
      operationId: UpdateIntegration
      x-permission: integrations.update
      tags:
      - Integration
      parameters:
      - name: integrationId
        in: path
        description: Integration Id
        required: true
        schema:
          $ref: '#/components/schemas/UUID'
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/UpdateIntegrationPayload'
      responses:
        '204':
          description: success
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '404':
          $ref: '#/components/responses/NotFound'
        '500':
          $ref: '#/components/responses/InternalServerError'
  /api/v4/providers/-/integrations/{integrationId}/session:
    get:
      summary: Get session for an integration
      operationId: GetIntegrationSession
      x-permission: ''
      tags:
      - Integration
      parameters:
      - name: integrationId
        in: path
        description: Integration Id
        required: true
        schema:
          $ref: '#/components/schemas/UUID'
      responses:
        '200':
          description: success
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/IntegrationSession'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '404':
          $ref: '#/components/responses/NotFound'
        '500':
          $ref: '#/components/responses/InternalServerError'
  /api/v4/providers/-/integrations/{integrationId}/jira/projects:
    get:
      summary: List Jira projects with related issue types
      operationId: ListJiraProjects
      x-permission: ''
      tags:
      - Integration
      parameters:
      - name: integrationId
        in: path
        description: Integration Id
        required: true
        schema:
          $ref: '#/components/schemas/UUID'
      responses:
        '200':
          description: success
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/JiraProjects'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '404':
          $ref: '#/components/responses/NotFound'
        '500':
          $ref: '#/components/responses/InternalServerError'
        '502':
          $ref: '#/components/responses/BadGateway'
  /api/v4/providers/-/integrations/{integrationId}/jira/issues:
    post:
      summary: Create Jira issue for specified finding
      operationId: CreateJiraIssue
      x-permission: ''
      x-pass-resource-ids:
        resourceType: Product
        permission: products.view
      tags:
      - Integration
      parameters:
      - name: integrationId
        in: path
        description: Integration Id
        required: true
        schema:
          $ref: '#/components/schemas/UUID'
      - name: findingId
        in: query
        description: Finding Id
        required: true
        schema:
          $ref: '#/components/schemas/ULID'
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CreateJiraIssuePayload'
      responses:
        '200':
          description: success
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/JiraBasicIssue'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '404':
          $ref: '#/components/responses/NotFound'
        '409':
          $ref: '#/components/responses/Conflict'
        '500':
          $ref: '#/components/responses/InternalServerError'
        '502':
          $ref: '#/components/responses/BadGateway'
    get:
      summary: Get Jira issue for specified finding
      operationId: GetJiraIssue
      x-permission: ''
      x-pass-resource-ids:
        resourceType: Product
        permission: products.view
      tags:
      - Integration
      parameters:
      - name: integrationId
        in: path
        description: Integration Id
        required: true
        schema:
          $ref: '#/components/schemas/UUID'
      - name: findingId
        in: query
        description: Finding Id
        required: true
        schema:
          $ref: '#/components/schemas/ULID'
      responses:
        '200':
          description: success
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/JiraIssue'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '404':
          $ref: '#/components/responses/NotFound'
        '500':
          $ref: '#/components/responses/InternalServerError'
        '502':
          $ref: '#/components/responses/BadGateway'
  /api/v4/providers/-/integrations/{integrationId}/jira/issues:attach:
    post:
      summary: Attach file to a Jira issue for specified finding
      operationId: AttachToJiraIssue
      x-permission: ''
      x-pass-resource-ids:
        resourceType: Product
        permission: products.view
      tags:
      - Integration
      parameters:
      - name: integrationId
        in: path
        description: Integration Id
        required: true
        schema:
          $ref: '#/components/schemas/UUID'
      - name: findingId
        in: query
        description: Finding Id
        required: true
        schema:
          $ref: '#/components/schemas/ULID'
      requestBody:
        required: true
        content:
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/JiraAttachment'
      responses:
        '204':
          description: success
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '404':
          $ref: '#/components/responses/NotFound'
        '409':
          $ref: '#/components/responses/Conflict'
        '500':
          $ref: '#/components/responses/InternalServerError'
        '502':
          $ref: '#/components/responses/BadGateway'
  /api/v4/providers/-/integrations/{integrationId}/jira/issues:check:
    get:
      summary: Check Jira issues
      operationId: CheckJiraIssues
      x-permission: ''
      x-pass-resource-ids:
        resourceType: Product
        permission: products.view
      tags:
      - Integration
      parameters:
      - name: integrationId
        in: path
        description: Integration Id
        required: true
        schema:
          $ref: '#/components/schemas/UUID'
      responses:
        '200':
          description: success
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/JiraBasicIssues'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '404':
          $ref: '#/components/responses/NotFound'
        '500':
          $ref: '#/components/responses/InternalServerError'
        '502':
          $ref: '#/components/responses/BadGateway'
  /api/v4/providers/-/integrations/{integrationId}/jira/webhook:
    post:
      summary: Create Jira webhook
      operationId: CreateJiraWebhook
      x-permission: integrations.update
      tags:
      - Integration
      parameters:
      - name: integrationId
        in: path
        description: Integration Id
        required: true
        schema:
          $ref: '#/components/schemas/UUID'
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/EmptyBody'
      responses:
        '200':
          description: success
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/IntegrationWebhook'
        '201':
          description: success
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/IntegrationWebhook'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '404':
          $ref: '#/components/responses/NotFound'
        '500':
          $ref: '#/components/responses/InternalServerError'
        '502':
          $ref: '#/components/responses/BadGateway'
    delete:
      summary: Delete Jira webhook
      operationId: DeleteJiraWebhook
      x-permission: integrations.update
      tags:
      - Integration
      parameters:
      - name: integrationId
        in: path
        description: Integration Id
        required: true
        schema:
          $ref: '#/components/schemas/UUID'
      responses:
        '200':
          description: success
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/IntegrationWebhook'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '404':
          $ref: '#/components/responses/NotFound'
        '500':
          $ref: '#/components/responses/InternalServerError'
        '502':
          $ref: '#/components/responses/BadGateway'
  /api/v4/providers/-/integrations/{integrationId}/jira/webhook/failed:
    get:
      summary: Get failed Jira webhooks
      operationId: GetFailedJiraWebhooks
      x-permission: integrations.list
      tags:
      - Integration
      parameters:
      - name: integrationId
        in: path
        description: Integration Id
        required: true
        schema:
          $ref: '#/components/schemas/UUID'
      responses:
        '204':
          description: success
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '404':
          $ref: '#/components/responses/NotFound'
        '500':
          $ref: '#/components/responses/InternalServerError'
        '502':
          $ref: '#/components/responses/BadGateway'
components:
  schemas:
    CreateIntegrationPayload:
      type: object
      required:
      - serverUrl
      properties:
        serverUrl:
          type: string
          format: url
    JiraIssueType:
      type: object
      required:
      - name
      - id
      - description
      - subtask
      properties:
        name:
          type: string
        id:
          type: string
        description:
          type: string
        subtask:
          type: boolean
    UpdateIntegrationPayload:
      type: object
      properties:
        active:
          type: boolean
        clientId:
          type: string
        clientSecret:
          type: string
    EmptyBody:
      type:
      - object
      - 'null'
    ForbiddenErrorResponse:
      type: object
      required:
      - message
      - permission
      - resourceName
      properties:
        message:
          type: string
        permission:
          type: string
        resourceName:
          type: string
        details:
          type: array
          items:
            $ref: '#/components/schemas/ErrorDetail'
    JiraAttachment:
      type: object
      required:
      - file
      properties:
        file:
          type: string
          format: binary
    UUID:
      type: string
      format: uuid
    IntegrationWebhook:
      type: object
      required:
      - id
      properties:
        id:
          type: string
    JiraProjects:
      type: object
      required:
      - projects
      properties:
        projects:
          type: array
          items:
            $ref: '#/components/schemas/JiraProject'
    ErrorResponse:
      required:
      - message
      type: object
      properties:
        message:
          type: string
          readOnly: true
          x-go-type-skip-optional-pointer: true
        details:
          type: array
          items:
            $ref: '#/components/schemas/ErrorDetail'
    ErrorDetail:
      type: object
      required:
      - error
      properties:
        reason:
          type: string
          x-go-type-skip-optional-pointer: true
        field:
          type: string
          x-go-type-skip-optional-pointer: true
        service:
          type: string
          x-go-type-skip-optional-pointer: true
    JiraIssue:
      type: object
      required:
      - id
      - key
      - url
      - summary
      - project
      - issueType
      - priority
      - status
      - statusCategoryKey
      - statusCategoryName
      - statusCategoryColor
      - created
      - updated
      properties:
        id:
          type: string
        key:
          type: string
        url:
          type: string
        summary:
          type: string
        project:
          type: string
        issueType:
          type: string
        priority:
          type: string
        status:
          type: string
        statusCategoryKey:
          type: string
        statusCategoryName:
          type: string
        statusCategoryColor:
          type: string
        created:
          type: string
        updated:
          type: string
    Provider:
      type: object
      required:
      - providerId
      - slug
      - type
      - name
      - description
      - integrations
      properties:
        providerId:
          $ref: '#/components/schemas/UUID'
        slug:
          type: string
        type:
          type: string
        name:
          type: string
        description:
          type: string
        integrations:
          type: array
          items:
            $ref: '#/components/schemas/Integration'
    Providers:
      type: object
      required:
      - providers
      properties:
        providers:
          type: array
          items:
            $ref: '#/components/schemas/Provider'
    CreateJiraIssuePayload:
      type: object
      required:
      - description
      - title
      - projectId
      - issueTypeId
      - isAdf
      properties:
        description:
          type: string
        title:
          type: string
        projectId:
          type: string
        issueTypeId:
          type: string
        isAdf:
          type: boolean
    JiraProject:
      type: object
      required:
      - name
      - id
      - description
      - issueTypes
      properties:
        name:
          type: string
        id:
          type: string
        description:
          type: string
        issueTypes:
          type: array
          items:
            $ref: '#/components/schemas/JiraIssueType'
    JiraBasicIssues:
      type: object
      required:
      - issues
      properties:
        issues:
          type: array
          items:
            $ref: '#/components/schemas/JiraBasicIssue'
    JiraBasicIssue:
      type: object
      required:
      - id
      - key
      - url
      - status
      properties:
        id:
          type: string
        key:
          type: string
        url:
          type: string
        status:
          type: string
    ULID:
      type: string
      format: ulid
      minLength: 26
      maxLength: 26
      example: 01ARZ3NDEKTSV4RRFFQ69G5FAV
      x-go-type: ulid.ULID
      x-go-type-import:
        path: github.com/oklog/ulid/v2
    Integration:
      type: object
      required:
      - integrationId
      - type
      - ready
      - callbackUrl
      - serverUrl
      properties:
        integrationId:
          $ref: '#/components/schemas/UUID'
        type:
          type: string
        ready:
          type: boolean
        callbackUrl:
          type: string
          format: url
        webhookUrl:
          type: string
          format: url
        serverUrl:
          type: string
          format: url
        redirectUrl:
          type: string
          format: url
        consumerKey:
          $ref: '#/components/schemas/UUID'
        publicKey:
          type: string
    IntegrationSession:
      type: object
      required:
      - authenticated
      properties:
        authenticated:
          type: boolean
        redirectUrl:
          type: string
          format: url
  responses:
    Forbidden:
      description: Forbidden
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ForbiddenErrorResponse'
    Unauthorized:
      description: Unauthorized
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ErrorResponse'
    BadGateway:
      description: Bad Gateway
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ErrorResponse'
    BadRequest:
      description: Bad request
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ErrorResponse'
    Conflict:
      description: Conflict
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ErrorResponse'
    InternalServerError:
      description: Internal server error
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ErrorResponse'
    NotFound:
      description: Not Found
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ErrorResponse'
  securitySchemes:
    auth:
      type: http
      scheme: bearer
      bearerFormat: JWT