Cognition AI website screenshot

Cognition AI

Cognition AI is an applied AI lab building Devin, an autonomous AI software engineer that plans, writes, tests, and ships production code. The company also operates the Windsurf agentic IDE following its 2025 acquisition of the Windsurf team and product. Devin is sold to individual developers, engineering teams, and enterprises as a managed agent that integrates with GitHub, Linear, Slack, Jira, and CI systems to handle migrations, PR review, bug triage, documentation, and scheduled engineering work. Cognition exposes a v3 REST API (Organization and Enterprise scopes) plus a CLI so customers can program Devin into their own workflows. Pricing runs from a free tier through Pro ($20/mo), Max ($200/mo), Teams ($80/seat/mo), and custom Enterprise plans with SAML/OIDC SSO and VPC deployment.

1 APIs 0 Features
Autonomous AgentsAI Software EngineerCoding AgentsDeveloper ProductivityDevOpsCode MigrationCode ReviewGitHub IntegrationEnterprise AIAgentic WorkflowsIDELLM Applications

APIs

Devin API

The Devin API is a REST interface for creating and managing autonomous engineering sessions, knowledge, playbooks, secrets, and analytics across an organization or enterprise. I...

Collections

Pricing Plans

Cognition Plans Pricing

1 plans

PLANS

Rate Limits

Cognition Rate Limits

2 limits

RATE LIMITS

FinOps

Resources

🔗
Website
Website
🔗
ProductSite
ProductSite
🔗
Documentation
Documentation
📰
Blog
Blog
🔗
Research
Research
💰
Pricing
Pricing
📝
Signup
Signup
🔗
Login
Login
🔗
Careers
Careers
🔗
Contact
Contact
📄
ReleaseNotes
ReleaseNotes
🔗
LinkedIn
LinkedIn
🔗
Twitter
Twitter

Sources

Raw ↑
opencollection: 1.0.0
info:
  name: Devin External API
  version: 1.0.0
request:
  auth:
    type: bearer
    token: '{{bearerToken}}'
items:
- info:
    name: Sessions
    type: folder
  items:
  - info:
      name: List all sessions
      type: http
    http:
      method: GET
      url: https://api.devin.ai/v1/sessions
      params:
      - name: limit
        value: ''
        type: query
        description: Maximum number of sessions to return per page
      - name: offset
        value: ''
        type: query
        description: Number of sessions to skip for pagination
      - name: tags
        value: ''
        type: query
        description: Filter sessions by tags
    docs: 'Get a paginated list of Devin sessions. The sessions are ordered by creation date

      in descending order (newest first). Each session includes its status, metadata,

      and any structured output from the latest events.

      '
  - info:
      name: Create a new session
      type: http
    http:
      method: POST
      url: https://api.devin.ai/v1/sessions
      body:
        type: json
        data: '{}'
    docs: 'Create a new Devin session. Provide a prompt to describe the task.

      The session can optionally be made unlisted or idempotent.

      '
  - info:
      name: Retrieve details about an existing session
      type: http
    http:
      method: GET
      url: https://api.devin.ai/v1/sessions/:session_id
      params:
      - name: session_id
        value: ''
        type: path
        description: The session ID
    docs: 'Get information about the session''s current status, timestamps,

      snapshot/playbook references, and any structured output.

      '
  - info:
      name: Terminate an existing session
      type: http
    http:
      method: DELETE
      url: https://api.devin.ai/v1/sessions/:session_id
      params:
      - name: session_id
        value: ''
        type: path
        description: The session ID
    docs: "Terminate a running Devin session by sending a stop event. This will gracefully\nstop the session and prevent further\
      \ execution.\n\n**Permission Requirements:**\n- If the `session-write-only-owner` feature flag is enabled for your organization,\n\
      \  only the session owner can terminate the session.\n- Otherwise, any user in the organization with access to the session\
      \ can terminate it.\n\n**Status Validation:**\n- Cannot terminate a session that has already exited (status: \"exit\"\
      )\n- Sessions in other states"
  - info:
      name: Send a message to an existing session
      type: http
    http:
      method: POST
      url: https://api.devin.ai/v1/sessions/:session_id/message
      params:
      - name: session_id
        value: ''
        type: path
        description: The session ID
      body:
        type: json
        data: '{}'
    docs: 'Interact with an active Devin session by sending a message. This is

      particularly useful in sessions waiting for user input or confirmations.

      '
  - info:
      name: Terminate a session
      type: http
    http:
      method: DELETE
      url: https://api.devin.ai/sessions/:session_id
      params:
      - name: session_id
        value: ''
        type: path
        description: The session ID to terminate
    docs: 'Terminate an active Devin session. This sends a stop signal to the session,

      causing it to gracefully shut down. Once terminated, the session cannot be resumed.


      Note: Sessions that have already exited cannot be terminated again.

      '
  - info:
      name: Update session tags
      type: http
    http:
      method: PUT
      url: https://api.devin.ai/v1/sessions/:session_id/tags
      params:
      - name: session_id
        value: ''
        type: path
        description: The session ID
      body:
        type: json
        data: '{}'
    docs: 'Update the tags associated with a Devin session.

      '
- info:
    name: Attachments
    type: folder
  items:
  - info:
      name: Upload files for Devin
      type: http
    http:
      method: POST
      url: https://api.devin.ai/v1/attachments
      body:
        type: multipart-form
        data:
        - name: file
          type: text
          value: ''
    docs: 'Upload files via multipart/form-data. This endpoint returns a URL

      that can be referenced in session prompts or other requests.

      '
  - info:
      name: Download attachment files
      type: http
    http:
      method: GET
      url: https://api.devin.ai/v1/attachments/:uuid/:name
      params:
      - name: uuid
        value: ''
        type: path
        description: The UUID of the attachment
      - name: name
        value: ''
        type: path
        description: The filename of the attachment
    docs: '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.

      '
- info:
    name: Secrets
    type: folder
  items:
  - info:
      name: List all secrets metadata
      type: http
    http:
      method: GET
      url: https://api.devin.ai/v1/secrets
    docs: 'Get a list of all secrets metadata. This endpoint only returns non-sensitive

      information about the secrets, not the secret values themselves.

      '
  - info:
      name: Create a new secret
      type: http
    http:
      method: POST
      url: https://api.devin.ai/v1/secrets
      body:
        type: json
        data: '{}'
    docs: 'Create a new secret in your organization. The secret value will be encrypted and stored securely.

      '
  - info:
      name: Delete a secret
      type: http
    http:
      method: DELETE
      url: https://api.devin.ai/v1/secrets/:secret_id
      params:
      - name: secret_id
        value: ''
        type: path
        description: The ID of the secret to delete
    docs: 'Permanently delete a secret by its ID. This action cannot be undone.

      '
- info:
    name: Enterprise
    type: folder
  items:
  - info:
      name: Get enterprise consumption data
      type: http
    http:
      method: GET
      url: https://api.devin.ai/enterprise/consumption
      params:
      - name: start_date
        value: ''
        type: query
        description: Start date in ISO format (YYYY-MM-DD)
      - name: end_date
        value: ''
        type: query
        description: End date in ISO format (YYYY-MM-DD)
    docs: 'Retrieve detailed consumption data for an enterprise organization.

      Data is filtered by start and end dates in ISO format.

      '
- info:
    name: AuditLogs
    type: folder
  items:
  - info:
      name: List all audit logs
      type: http
    http:
      method: GET
      url: https://api.devin.ai/v1/audit-logs
      params:
      - name: limit
        value: ''
        type: query
        description: Maximum number of audit logs to return
      - name: before
        value: ''
        type: query
        description: Filter logs before a specific timestamp
      - name: after
        value: ''
        type: query
        description: Filter logs after a specific timestamp
    docs: "Get a paginated list of all audit logs for the current organization.\nThe logs are ordered by creation date in\
      \ descending order (newest first).\n\nAudit logs track various actions across organization management, sessions, API\
      \ keys, \nsecrets, knowledge management, playbooks, repository management, git integrations, \nenterprise settings,\
      \ and search operations.\n"
- info:
    name: Knowledge
    type: folder
  items:
  - info:
      name: List knowledge
      type: http
    http:
      method: GET
      url: https://api.devin.ai/v1/knowledge
    docs: 'Gets all knowledge and folders in your current organization. This endpoint will not return system knowledge (repo
      indexes or built-in knowledge) managed by Cognition.

      '
  - info:
      name: Create knowledge
      type: http
    http:
      method: POST
      url: https://api.devin.ai/v1/knowledge
      body:
        type: json
        data: '{}'
    docs: 'Create a new piece of knowledge.

      '
  - info:
      name: Update knowledge
      type: http
    http:
      method: PUT
      url: https://api.devin.ai/v1/knowledge/:note_id
      params:
      - name: note_id
        value: ''
        type: path
        description: The ID of the knowledge to update
      body:
        type: json
        data: '{}'
    docs: 'Update the name, body, or trigger of a piece of knowledge.

      '
  - info:
      name: Delete knowledge
      type: http
    http:
      method: DELETE
      url: https://api.devin.ai/v1/knowledge/:note_id
      params:
      - name: note_id
        value: ''
        type: path
        description: The ID of the knowledge to delete
    docs: 'Permanently delete a piece of knowledge by its ID. This action cannot be undone.

      '
- info:
    name: Playbooks
    type: folder
  items:
  - info:
      name: List playbooks
      type: http
    http:
      method: GET
      url: https://api.devin.ai/v1/playbooks
    docs: 'Retrieve all team playbooks accessible to your organization. Only team playbooks are returned via the API.

      '
  - info:
      name: Create playbook
      type: http
    http:
      method: POST
      url: https://api.devin.ai/v1/playbooks
      body:
        type: json
        data: '{}'
    docs: 'Create a new team playbook. Requires ManageOrgPlaybooks permission.

      '
  - info:
      name: Get playbook
      type: http
    http:
      method: GET
      url: https://api.devin.ai/v1/playbooks/:playbook_id
      params:
      - name: playbook_id
        value: ''
        type: path
        description: The ID of the playbook to retrieve
    docs: 'Retrieve details of a specific playbook by its ID.

      '
  - info:
      name: Update playbook
      type: http
    http:
      method: PUT
      url: https://api.devin.ai/v1/playbooks/:playbook_id
      params:
      - name: playbook_id
        value: ''
        type: path
        description: The ID of the playbook to update
      body:
        type: json
        data: '{}'
    docs: 'Update an existing team playbook. Requires ManageOrgPlaybooks permission.

      Only team playbooks can be updated.

      '
  - info:
      name: Delete playbook
      type: http
    http:
      method: DELETE
      url: https://api.devin.ai/v1/playbooks/:playbook_id
      params:
      - name: playbook_id
        value: ''
        type: path
        description: The ID of the playbook to delete
    docs: 'Delete a team playbook. Requires ManageOrgPlaybooks permission.

      This marks the playbook as deleted and removes any associated macro.

      '
bundled: true