Rapid7 Attachments API

An API used to upload, list, download and delete attachments. For example, the create API can be used to upload an attachment.

Operations 5

GET /idr/v1/attachments List attachments #
POST /idr/v1/attachments Upload attachment #
GET /idr/v1/attachments/{rrn} Download attachment #
DELETE /idr/v1/attachments/{rrn} Delete an attachment #
GET /idr/v1/attachments/{rrn}/metadata Get attachment information #

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/rapid7-attachments-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

rapid7-attachments-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: InsightIDR Attachments API
  version: v1
  description: 'Introduction


    Welcome to the reference documentation for the InsightIDR public APIs.


    Here are a few resources to help you learn how to start using our APIs:


    Learn about basic concepts and capabilities


    Get an Insight platform API key to set up authentication


    See available Insight product APIs


    Learn more about InsightIDR


    After you''ve got the basics down, you can use this API guide to find examples of requests and responses.'
servers:
- url: https://{region}.api.insight.rapid7.com/
  variables:
    region:
      default: us
      description: Insight API region
security: []
tags:
- name: Attachments
  description: An API used to upload, list, download and delete attachments. For example, the create API can be used to upload an attachment.
paths:
  /idr/v1/attachments:
    get:
      tags:
      - Attachments
      summary: List attachments
      description: Retrieves attachments matching the given request parameters. For example, this API allows you to list all attachments by investigation.
      operationId: listAttachments
      parameters:
      - name: target
        in: query
        description: Return attachments with this target.
        required: true
        schema:
          type: string
        example: rrn:investigation:us:01234567-89ab-cdef-0000-123123123123:investigation:ABCDEF543210
      - name: index
        in: query
        description: The optional, 0 based index of the page to retrieve.  Must be an integer greater than or equal to 0.
        required: false
        schema:
          type: integer
          default: 0
          minimum: 0
        example: 0
      - name: size
        in: query
        description: The optional size of the page to retrieve. Must be an integer greater than 0 or less than or equal to 100.
        required: false
        schema:
          type: integer
          default: 20
          maximum: 100
          minimum: 1
        example: 20
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PageAttachment'
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse1'
        '401':
          description: Unauthorized
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse1'
        '403':
          description: Insufficient Permissions
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse1'
        '404':
          description: Entity Not Found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse1'
        '405':
          description: Method Not Allowed
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse1'
        '500':
          description: Internal Server Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse1'
        '502':
          description: Bad Gateway
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse1'
        '503':
          description: Service Unavailable
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse1'
        '504':
          description: Gateway Timeout
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse1'
    post:
      tags:
      - Attachments
      summary: Upload attachment
      description: An API used to upload one or more attachments. By default, attachments are not associated with a comment. Use this API to create comment.
      operationId: uploadAttachment
      requestBody:
        content:
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/UploadAttachmentRequest'
          application/json:
            schema:
              type: object
              properties:
                filedata:
                  type: array
                  items:
                    type: string
                    format: binary
              required:
              - filedata
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/Attachment'
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse1'
        '401':
          description: Unauthorized
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse1'
        '403':
          description: Insufficient Permissions
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse1'
        '404':
          description: Entity Not Found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse1'
        '405':
          description: Method Not Allowed
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse1'
        '500':
          description: Internal Server Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse1'
        '502':
          description: Bad Gateway
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse1'
        '503':
          description: Service Unavailable
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse1'
        '504':
          description: Gateway Timeout
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse1'
  /idr/v1/attachments/{rrn}:
    get:
      tags:
      - Attachments
      summary: Download attachment
      description: An API you can use to download an attachment by RRN. The RRN determines which attachment is downloaded.
      operationId: downloadAttachment
      parameters:
      - name: rrn
        in: path
        description: The RRN of the attachment.
        required: true
        schema:
          type: string
        example: rrn:collaboration:us:01234567-89ab-cdef-0000-123123123123:attachment:ABCDEF543210
      responses:
        '200':
          description: OK
        '400':
          description: Bad Request
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/ErrorResponse1'
        '401':
          description: Unauthorized
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/ErrorResponse1'
        '403':
          description: Insufficient Permissions
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/ErrorResponse1'
        '404':
          description: Entity Not Found
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/ErrorResponse1'
        '405':
          description: Method Not Allowed
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/ErrorResponse1'
        '500':
          description: Internal Server Error
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/ErrorResponse1'
        '502':
          description: Bad Gateway
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/ErrorResponse1'
        '503':
          description: Service Unavailable
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/ErrorResponse1'
        '504':
          description: Gateway Timeout
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/ErrorResponse1'
    delete:
      tags:
      - Attachments
      summary: Delete an attachment
      description: An API you can use to delete an attachment with the given RRN.
      operationId: deleteAttachment
      parameters:
      - name: rrn
        in: path
        description: The RRN of the attachment.
        required: true
        schema:
          type: string
        example: rrn:collaboration:us:01234567-89ab-cdef-0000-123123123123:attachment:ABCDEF543210
      responses:
        '204':
          description: No Content
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse1'
        '401':
          description: Unauthorized
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse1'
        '403':
          description: Insufficient Permissions
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse1'
        '404':
          description: Entity Not Found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse1'
        '405':
          description: Method Not Allowed
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse1'
        '500':
          description: Internal Server Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse1'
        '502':
          description: Bad Gateway
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse1'
        '503':
          description: Service Unavailable
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse1'
        '504':
          description: Gateway Timeout
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse1'
  /idr/v1/attachments/{rrn}/metadata:
    get:
      tags:
      - Attachments
      summary: Get attachment information
      description: An API you can use to get information from an attachment by RRN. The RRN identifies the attachment.
      operationId: getAttachment
      parameters:
      - name: rrn
        in: path
        description: The RRN of the attachment.
        required: true
        schema:
          type: string
        example: rrn:collaboration:us:01234567-89ab-cdef-0000-123123123123:attachment:ABCDEF543210
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Attachment'
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse1'
        '401':
          description: Unauthorized
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse1'
        '403':
          description: Insufficient Permissions
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse1'
        '404':
          description: Entity Not Found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse1'
        '405':
          description: Method Not Allowed
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse1'
        '500':
          description: Internal Server Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse1'
        '502':
          description: Bad Gateway
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse1'
        '503':
          description: Service Unavailable
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse1'
        '504':
          description: Gateway Timeout
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse1'
components:
  schemas:
    RRN:
      type: object
      properties:
        partition:
          type: string
        service:
          type: string
        regionCode:
          type: string
        organizationId:
          type: string
        resourceTypes:
          type: array
          items:
            type: string
        resource:
          type: string
    ErrorResponse1:
      type: object
      properties:
        message:
          type: string
          description: A human-readable message describing the error that occurred.
          example: A human-readable message describing the error that occurred.
        correlation_id:
          type: string
          description: An identifier that uniquely identifies the failed request.
          example: An identifier that uniquely identifies the failed request.
      required:
      - message
    PageMetadata1:
      type: object
      properties:
        index:
          type: integer
          format: int32
          description: The 0 based index of the page retrieved.
          example: 0
        size:
          type: integer
          format: int32
          description: The size of the page requested.
          example: 20
        total_pages:
          type: integer
          format: int32
          description: The total number of pages available with the given filter parameters.
          example: 1
        total_data:
          type: integer
          format: int64
          description: The total number of results available with the given filter parameters.
          example: 15
      required:
      - index
      - size
      - total_data
      - total_pages
    Creator:
      type: object
      properties:
        type:
          type: string
          description: A type that denotes who or what created a resource.
          enum:
          - USER
          - ORG_API_KEY
          - SYSTEM
          example: USER
        name:
          type: string
          description: The name of who or what created a resource.
          example: John Doe
      required:
      - name
      - type
    PageAttachment:
      type: object
      properties:
        data:
          type: array
          description: The list of data that matches the pagination parameters. If no results match this will be an empty list.
          items:
            $ref: '#/components/schemas/Attachment'
        metadata:
          $ref: '#/components/schemas/PageMetadata1'
          description: The pagination parameters used to generate this page result.
      required:
      - data
      - metadata
    Attachment:
      type: object
      properties:
        rrn:
          $ref: '#/components/schemas/RRN'
          description: The RRN of the attachment.
          example: rrn:collaboration::orgId_123:attachment:d7812988-f171-4164-9309-65c32d5da28f
        creator:
          $ref: '#/components/schemas/Creator'
          description: Who or what created the resource.
        created_time:
          type: string
          description: The time the attachment was created as an ISO formatted timestamp.
          example: '2018-06-06T16:56:42Z'
        file_name:
          type: string
          description: The original filename of the uploaded attachment.
          example: screenshot.png
        mime_type:
          type: string
          description: The mime type of the attachment.
          example: image/png
        size:
          type: integer
          format: int64
          description: The size in bytes of the attachment.
          example: 12345
        scan_status:
          type: string
          description: The scan status of the attachment, indicating whether the attachment has been scanned and, if so, the result. INFECTED or PENDING attachments may not be downloaded.
          example: CLEAN
      required:
      - created_time
      - creator
      - file_name
      - mime_type
      - rrn
      - scan_status
      - size
    UploadAttachmentRequest:
      type: object
      properties:
        filedata:
          type: array
          description: The list of files to upload as attachments.
          items:
            type: string
            format: binary
externalDocs:
  description: Product docs
  url: https://insightidr.help.rapid7.com/docs