Loopio Asynchronous API

An asynchronous endpoint

Operations 4

POST /libraryEntries/bulk Bulk create Library Entries #
GET /asyncTasks/mergeVariableDelete/{taskId} Get the status of Merge Variable deletion request #
GET /asyncTasks/{taskId} Get the status of a queued async request #
GET /asyncTasks/{taskId}/projectTemplateCopy Get the status of a create project from template async task #

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/loopio-asynchronous-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 email required.

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

OpenAPI Specification

loopio-asynchronous-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: Loopio Asynchronous API
  description: Loopio's Public API
  termsOfService: http://loopio.com/termsOfService
  contact:
    email: support@loopio.com
  license:
    name: Apache 2.0
    url: http://www.apache.org/licenses/LICENSE-2.0.html
  version: 1.0.0
servers:
- url: https://api.loopio.com/data/v2
  description: Production server for the American datacenter
- url: https://api.eu.loopio.com/data/v2
  description: Production server for the European datacenter
tags:
- name: Asynchronous
  description: An asynchronous endpoint
paths:
  /libraryEntries/bulk:
    post:
      tags:
      - Asynchronous
      summary: Bulk create Library Entries
      description: 'Answer text for an Entry can be null if its Questions have Compliance Answers.

        Note: we are making terminology updates in Loopio - Compliance Sets shall be referred to as Answer Sets. The API will be updated to reflect this change at a later time.'
      operationId: bulkCreateLibraryEntries
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                createMissingLocations:
                  type: boolean
                  default: false
                entries:
                  type: array
                  minItems: 1
                  maxItems: 500
                  items:
                    $ref: '#/components/schemas/LibraryEntryBulk'
              required:
              - entries
      responses:
        '202':
          $ref: '#/components/responses/AsyncTaskAccepted'
        '400':
          $ref: '#/components/responses/400'
        '403':
          $ref: '#/components/responses/403'
      security:
      - loopio_auth:
        - library:write
  /asyncTasks/mergeVariableDelete/{taskId}:
    parameters:
    - name: taskId
      in: path
      required: true
      schema:
        type: integer
    get:
      tags:
      - Asynchronous
      summary: Get the status of Merge Variable deletion request
      operationId: getMegeVariableDeleteStatus
      responses:
        '200':
          $ref: '#/components/responses/AsyncTaskStatusResponse'
        '404':
          $ref: '#/components/responses/404'
  /asyncTasks/{taskId}:
    parameters:
    - name: taskId
      in: path
      required: true
      schema:
        type: integer
    get:
      tags:
      - Asynchronous
      summary: Get the status of a queued async request
      operationId: getAsyncStatus
      responses:
        '200':
          description: Status of an async request
          content:
            application/json:
              schema:
                type: object
                properties:
                  status:
                    type: string
                    enum:
                    - PENDING
                    - FAILED
                    - COMPLETE
                  result:
                    oneOf:
                    - type: string
                    - type: object
                      properties:
                        entitiesId:
                          type: array
                          items:
                            type: integer
                        created:
                          type: array
                          items:
                            type: object
                            properties:
                              bulkIndex:
                                type: integer
                              entityId:
                                type: integer
                        failed:
                          type: array
                          items:
                            type: object
                            properties:
                              bulkIndex:
                                type: integer
                              error:
                                type: string
                required:
                - status
              examples:
                Pending:
                  value:
                    status: PENDING
                Error:
                  value:
                    status: FAILED
                    result: A bear ate our server
                Bulk create Library Entries:
                  value:
                    status: COMPLETE
                    result:
                      entitiesId:
                      - 1
                      - 2
                      - 3
                      created:
                      - bulkIndex: 0
                        entityId: 1
                      - bulkIndex: 1
                        entityId: 2
                      - bulkIndex: 3
                        entityId: 2
                      failed:
                      - bulkIndex: 2
                        error: Invalid library Location
        '404':
          $ref: '#/components/responses/404'
  /asyncTasks/{taskId}/projectTemplateCopy:
    parameters:
    - name: taskId
      in: path
      required: true
      schema:
        type: integer
    get:
      tags:
      - Asynchronous
      summary: Get the status of a create project from template async task
      operationId: getProjectTemplateCopyAsyncStatus
      responses:
        '200':
          description: Status of a create project from template async task
          content:
            application/json:
              schema:
                oneOf:
                - title: Pending
                  type: object
                  properties:
                    status:
                      type: string
                      enum:
                      - PENDING
                  required:
                  - status
                - title: Error
                  type: object
                  properties:
                    status:
                      type: string
                      enum:
                      - ERROR
                    result:
                      type: string
                  required:
                  - status
                  - result
                - title: Success
                  type: object
                  properties:
                    status:
                      type: string
                      enum:
                      - COMPLETE
                    result:
                      $ref: '#/components/schemas/Project'
                  required:
                  - status
                  - result
        '404':
          $ref: '#/components/responses/404'
components:
  responses:
    AsyncTaskAccepted:
      description: RECEIVED
      content:
        application/json:
          schema:
            type: object
            properties:
              taskId:
                type: integer
    '403':
      description: No Permission
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error'
          example:
            name: NO_PERMISSION
            message: No permission to access the resource
            debugId: 0fas3
    '404':
      description: Resource Not Found
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error'
          example:
            name: RESOURCE_NOT_FOUND
            message: Resource not found
            debugId: 0fas3
    '400':
      description: Invalid Request
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error'
          example:
            name: INVALID_REQUEST
            message: Bad request
            debugId: 0fas3
    AsyncTaskStatusResponse:
      description: Typical status response of an asynchronous task
      content:
        application/json:
          schema:
            type: object
            properties:
              status:
                type: string
                enum:
                - PENDING
                - FAILED
                - COMPLETE
              result:
                type: string
            required:
            - status
          examples:
            Pending:
              value:
                status: PENDING
            Error:
              value:
                status: FAILED
                result: An unexpected error occurred
            Complete:
              value:
                status: COMPLETE
                result: Task completed successfully
  schemas:
    Project:
      type: object
      properties:
        id:
          type: integer
        name:
          type: string
        projectType:
          type:
          - string
          - 'null'
          enum:
          - RFP
          - RFI
          - DDQ
          - SQ
          - PP
          - OTHER
          - null
        status:
          type: string
          enum:
          - ACTIVE
          - COMPLETE
          - DELETED
          - STOPPED
          - DONE
          - WON
          - LOST
        companyName:
          type: string
        createdDate:
          type: string
          format: date-time
        dueDate:
          type: string
          format: date-time
        owner:
          $ref: '#/components/schemas/ReferenceLabel'
        creator:
          $ref: '#/components/schemas/ReferenceLabel'
        description:
          type: string
    LibraryEntryBulk:
      type: object
      properties:
        questions:
          type: array
          items:
            type: object
            properties:
              text:
                type: string
                description: Question text
                example: What is Loopio?
                maxLength: 65535
              complianceOption:
                description: 'Note: we are making terminology updates in Loopio - Compliance Sets shall be referred to as Answer Sets. The API will be updated to reflect this change at a later time.'
                type:
                - object
                - 'null'
                properties:
                  text:
                    type:
                    - string
                    - 'null'
                    example: 'Yes'
                    maxLength: 45
            required:
            - text
          minItems: 1
          description: A question and possible variations which utilize the same answer
        answer:
          type: object
          properties:
            text:
              type:
              - string
              - 'null'
              maxLength: 65535
              example: Loopio is RFP response software
          required:
          - text
        languageCode:
          $ref: '#/components/schemas/LanguageCode'
        location:
          type: object
          properties:
            stack:
              type: object
              properties:
                name:
                  type: string
                  maxLength: 64
              required:
              - name
            category:
              type: object
              properties:
                name:
                  type: string
                  maxLength: 100
              required:
              - name
            subCategory:
              type: object
              properties:
                name:
                  type: string
                  maxLength: 100
              required:
              - name
          required:
          - stack
        tags:
          type: array
          items:
            type: string
            maxLength: 100
            example: company overview
      required:
      - questions
      - answer
      - location
    ReferenceLabel:
      type: object
      properties:
        id:
          type: integer
          example: 1
        name:
          type: string
          example: name
    LanguageCode:
      type: string
      default: en
      enum:
      - de
      - en
      - es
      - fr
      - pt
      - other
    Error:
      type: object
      properties:
        name:
          type: string
          enum:
          - FATAL_ERROR
          - FORBIDDEN
          - INVALID_REQUEST
          - NO_PERMISSION
          - RESOURCE_NOT_FOUND
          - UNPROCESSABLE_REQUEST
          - VALIDATION_ERROR
        message:
          type: string
        debugId:
          type: string
  securitySchemes:
    loopio_auth:
      type: oauth2
      flows:
        authorizationCode:
          authorizationUrl: /oauth2/authorize
          tokenUrl: /oauth2/access_token
          scopes:
            mergeVariable:read: View Merge Variables
            mergeVariable:write: Create/Edit Merge Variables
            mergeVariable:delete: Delete Merge Variables
            crm:read: List CRM opportunities linked to projects
            crm:write: Link CRM opportunities to projects
            customer.info:read: View customer information
            file:read: Download files and view file information
            file:delete: Delete files
            library:read: List Library Entries and stacks, view Library Entries and Entry data
            library:write: Create and update Library Entries and Entry data
            library:delete: Delete Library Entries
            project:read: List Projects, view Project data and source documents
            project:write: Create and update Projects, Project data, and source documents
            project:delete: Delete a Project
            project.participant:read: List participants of a project
            project.participant:write: Update participant information
            role:read: List user assignable roles
            user:read: List users, view user information
            user:write: Update user information
            webhook:read: View webhook subscriptions
            webhook:write: Create & edit webhook subscriptions
            webhook:delete: Delete webhook subscriptions
        clientCredentials:
          tokenUrl: /oauth2/access_token
          scopes:
            mergeVariable:read: View Merge Variables
            mergeVariable:write: Create/Edit Merge Variables
            mergeVariable:delete: Delete Merge Variables
            crm:read: List CRM opportunities linked to projects
            crm:write: Link CRM opportunities to projects
            customer.info:read: View customer information
            file:read: Download files and view file information
            file:delete: Delete files
            library:read: List Library Entries and stacks, view Library Entries and Entry data
            library:write: Create and update Library Entries and Entry data
            library:delete: Delete Library Entries
            project:read: List Projects, view Project data and source documents
            project:write: Create and update Projects, Project data, and source documents
            project:delete: Delete a Project
            project.participant:read: List participants of a project
            project.participant:write: Update participant information
            role:read: List user assignable roles
            user:read: List users, view user information
            user:write: Update user information
            webhook:read: View webhook subscriptions
            webhook:write: Create & edit webhook subscriptions
            webhook:delete: Delete webhook subscriptions