Cognition AI Attachments API

Operations for file uploads

Operations 2

POST /v1/attachments Upload files for Devin
GET /v1/attachments/{uuid}/{name} Download attachment files

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/cognition-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

cognition-attachments-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: Devin External Attachments API
  version: 1.0.0
  description: 'The Devin External API enables you to programmatically create and interact with Devin sessions. This RESTful API allows you to integrate Devin into your own applications, automate workflows, and build powerful tools on top of Devin.

    **Note**: The External API is currently in alpha. While we strive to maintain backward compatibility, some endpoints may change as we improve the API.

    '
servers:
- url: https://api.devin.ai
  description: Devin Production Server
security:
- bearerAuth: []
tags:
- name: Attachments
  description: Operations for file uploads
paths:
  /v1/attachments:
    post:
      tags:
      - Attachments
      summary: Upload files for Devin
      description: 'Upload files via multipart/form-data. This endpoint returns a URL

        that can be referenced in session prompts or other requests.

        '
      requestBody:
        required: true
        content:
          multipart/form-data:
            schema:
              type: object
              properties:
                file:
                  type: string
                  format: binary
                  description: The file to upload
            encoding:
              file:
                contentType: application/octet-stream
      responses:
        '200':
          description: File successfully uploaded
          content:
            text/plain:
              schema:
                type: string
                description: A string URL where the uploaded file can be accessed
              example: https://storage.devin.ai/attachments/xxx/file.py
        '400':
          $ref: '#/components/responses/BadRequestError'
        '401':
          $ref: '#/components/responses/UnauthorizedError'
        '500':
          $ref: '#/components/responses/InternalServerError'
  /v1/attachments/{uuid}/{name}:
    get:
      tags:
      - Attachments
      summary: Download attachment files
      description: 'Download a previously uploaded attachment file using its UUID and filename.

        This endpoint returns a redirect to a presigned URL for the file.


        **Note for curl users**: Use the `-L` flag to follow the redirect automatically.

        '
      parameters:
      - name: uuid
        in: path
        required: true
        description: The UUID of the attachment
        schema:
          type: string
      - name: name
        in: path
        required: true
        description: The filename of the attachment
        schema:
          type: string
      responses:
        '307':
          description: Temporary redirect to presigned URL for file download
          headers:
            Location:
              description: The presigned URL for downloading the file
              schema:
                type: string
                format: uri
        '401':
          $ref: '#/components/responses/UnauthorizedError'
        '404':
          description: Attachment not found
          content:
            application/json:
              schema:
                type: object
                properties:
                  detail:
                    type: string
                    example: Attachment not found
        '500':
          $ref: '#/components/responses/InternalServerError'
      x-codeSamples:
      - lang: curl
        source: "# Note: -L flag is required to follow the 307 redirect\ncurl -L -X GET \"https://api.devin.ai/v1/attachments/{uuid}/{name}\" \\\n  -H \"Authorization: Bearer YOUR_API_KEY\" \\\n  -o \"downloaded_file.ext\"\n"
components:
  responses:
    UnauthorizedError:
      description: Unauthorized - Invalid or missing API key
      content:
        application/json:
          schema:
            type: object
            properties:
              detail:
                type: string
                example: Missing or invalid Authorization header
    BadRequestError:
      description: Bad Request
      content:
        application/json:
          schema:
            type: object
            properties:
              detail:
                type: string
                example: Invalid input or request
    InternalServerError:
      description: Internal Server Error
      content:
        application/json:
          schema:
            type: object
            properties:
              detail:
                type: string
                example: Something went wrong
  securitySchemes:
    bearerAuth:
      type: http
      scheme: bearer
      bearerFormat: JWT
externalDocs:
  description: Visit Devin's documentation page for more info
  url: https://docs.devin.ai