The Devin API is currently in alpha. While we strive to maintain backward
compatibility, some endpoints may change as we improve the API.
Get an API key
You can obtain an API key from your settings page.Keep your API keys secure and never share them in publicly accessible areas
such as GitHub repositories or client-side code.
Available Endpoints
Our API provides endpoints organized into the following categories:Sessions
Manage Devin sessions and interact with them:List Sessions
List all current Devin sessions for your organization
Create a Session
Start a new Devin session with a task description and optional parameters
Get Session Details
Retrieve information about an existing session’s status and output
Send Message
Interact with an active session by sending messages to Devin
Upload Files
Upload files for Devin to work with during sessions
Update Session Tags
Update the tags associated with a Devin session
Secrets
Manage secrets and credentials for your organization:List Secrets
View metadata for all secrets in your organization
Delete Secret
Permanently remove a secret from your organization
Knowledge
Manage knowledge for your organization:List Knowledge
List all knowledge and folders in your organization
Create Knowledge
Create a new piece of knowledge
Update Knowledge
Update a piece of knowledge
Delete Knowledge
Delete a piece of knowledge
Playbooks
Manage reusable instruction sets for your organization:List Playbooks
View all playbooks accessible to your organization
Create Playbook
Create a new team playbook with instructions and optional macro
Get Playbook
Retrieve details of a specific playbook
Update Playbook
Update an existing team playbook
Delete Playbook
Delete a team playbook from your organization
Usage Examples
View Code Examples
Check out our code examples and common use cases to get started quickly with
the Devin API
Idempotency
The Devin API supports idempotent operations to safely handle retries and prevent duplicate operations. When an endpoint supports idempotency, you can set theidempotent
parameter to true
in your request. The response will include an is_new_session
field indicating whether a new resource was created.
For example, when creating sessions with idempotency enabled, retrying the same request will return the existing session instead of creating a duplicate one. This is particularly useful in unreliable network conditions or when implementing retry logic in your applications.