---
title: Aiden APIs
slug: aiden-apis
docTags: 
createdAt: 2025-05-10T00:21:46.499Z
---

# Authentication

Aiden API uses API key authentication. API keys are in the format `aiden-<key>` and should be included in the Authorization header.&#x20;

```text
Authorization: Bearer aiden-<key>
```

API keys can be managed through the `API Keys` [page](https://aiden.opsverse.io/api-keys). Each API key is associated with a specific user and customer.

# API Endpoints

All APIs are available under https\://aiden.opsverse.io/api/

## Ask

### POST /v1/ask

Send a question to Aiden and receive a streaming response.

```text
POST /v1/ask
```

**Request Body**:

```json
{
  "query": "string",
  "conversationId": "uuid" (optional)
}
```

**Response**:
A streaming response that contains a JSON object with the following fields:

```json
{
  "response": "string",
  "skill": {
    "id": "string",
    "name": "string"
  },
  "conversationId": "string",
  "interactionId": "string"
}
```

**Example**:

```bash
curl -X POST "https://aiden.opsverse.io/api/v1/ask" \
  -H "Authorization: Bearer aiden-<your_api_key>" \
  -H "Content-Type: application/json" \
  -d '{
    "query": "What is the current CPU usage of my EC2 instances?"
  }'
```

## Skills

### GET /v1/skills

Returns a list of all skills available to the authenticated user.

```text
GET /v1/skills
```

**Query Parameters**:

- `include_global`: boolean (optional) - Whether to include global skills
- `include_disabled`: boolean (optional) - Whether to include disabled skills

**Response**:

```json
{
  "skills": [
    {
      "id": "uuid",
      "name": "string",
      "description": "string",
      "skill_steps": [
        {
          "agent": "string",
          "action": "string",
          "parameters": [{}]
        }
      ],
      "is_enabled": "boolean",
      "is_global": "boolean",
      "created_at": "datetime",
      "updated_at": "datetime"
    }
  ]
}
```

**Example**:

```bash
curl -X GET "https://aiden.opsverse.io/api/v1/skills?include_global=true" \
  -H "Authorization: Bearer aiden-<your_api_key>"
```

### Get v1/skills/\{id}

Returns details of a specific skill.

```text
GET /v1/skills/{id}
```

**Parameters**:

- `id`: UUID of the skill

**Response**:

```json
{
  "id": "uuid",
  "name": "string",
  "description": "string",
  "skill_steps": [
    {
      "agent": "string",
      "action": "string",
      "parameters": [{}]
    }
  ],
  "is_enabled": "boolean",
  "is_global": "boolean",
  "created_at": "datetime",
  "updated_at": "datetime"
}
```

**Example**:

```bash
curl -X GET "https://aiden.opsverse.io/api/v1/skills/550e8400-e29b-41d4-a716-446655440000" \
  -H "Authorization: Bearer aiden-<your_api_key>"
```

### POST /v1/skills

Creates a new skill.

```text
POST /v1/skills
```

**Request Body**:

```json
{
  "name": "string",
  "description": "string",
  "skill_steps": [
    {
      "agent": "string",
      "action": "string",
      "parameters": [{}]
    }
  ],
  "is_global": "boolean" (optional)
}
```

**Response**:

```json
{
  "id": "uuid",
  "name": "string",
  "description": "string",
  "skill_steps": [
    {
      "agent": "string",
      "action": "string",
      "parameters": [{}]
    }
  ],
  "is_enabled": "boolean",
  "is_global": "boolean",
  "created_at": "datetime",
  "updated_at": "datetime"
}
```

**Example**:

```bash
curl -X POST "https://aiden.opsverse.io/api/v1/skills" \
  -H "Authorization: Bearer aiden-<your_api_key>" \
  -H "Content-Type: application/json" \
  -d '{
    "name": "AWS EC2 Instance Analyzer",
    "description": "Analyzes EC2 instances for performance and cost optimization",
    "skill_steps": [
      {
        "agent": "AWS Expert",
        "action": "Fetch all EC2 instances and their details",
        "parameters": [{}]
      },
      {
        "agent": "AWS Expert",
        "action": "Analyze instances for optimization opportunities",
        "parameters": [{}]
      }
    ]
  }'
```

### PATHCH /v1/skills/\{id}

Updates an existing skill.

```text
PATCH /v1/skills/{id}
```

**Parameters**:

- `id`: UUID of the skill

**Request Body**:

```json
{
  "name": "string" (optional),
  "description": "string" (optional),
  "skill_steps": [
    {
      "agent": "string",
      "action": "string",
      "parameters": [{}]
    }
  ] (optional),
  "is_enabled": "boolean" (optional),
  "is_global": "boolean" (optional)
}
```

**Response**:

```json
{
  "id": "uuid",
  "name": "string",
  "description": "string",
  "skill_steps": [
    {
      "agent": "string",
      "action": "string",
      "parameters": [{}]
    }
  ],
  "is_enabled": "boolean",
  "is_global": "boolean",
  "created_at": "datetime",
  "updated_at": "datetime"
}
```

**Example**:

```bash
curl -X PATCH "https://aiden.opsverse.io/api/v1/skills/550e8400-e29b-41d4-a716-446655440000" \
  -H "Authorization: Bearer aiden-<your_api_key>" \
  -H "Content-Type: application/json" \
  -d '{
    "name": "Updated AWS EC2 Instance Analyzer",
    "is_enabled": true
  }'
```

### DELETE /v1/skills/\{id}

Deletes a skill.

```text
DELETE /v1/skills/{id}
```

**Parameters**:

- `id`: UUID of the skill

**Response**:

```json
{
  "status": "OK"
}
```

**Example**:

```bash
curl -X DELETE "https://aiden.opsverse.io/api/v1/skills/550e8400-e29b-41d4-a716-446655440000" \
  -H "Authorization: Bearer aiden-<your_api_key>"
```

## Integrations

### GET /v1/integrations

Returns a list of all available integrations and currently configured integrations for the authenticated user's organization.

```text
GET /v1/integrations
```

**Response**:

```json
{
  "integrations": [
    {
      "name": "string",
      "description": "string",
      "is_enabled": "boolean",
      "allow_multiple": "boolean",
      "is_global": "boolean",
      "icon": "string"
    }
  ],
  "configurations": [
    {
      "id": "uuid",
      "integration_type": "string",
      "parameters": "string",
      "is_enabled": "boolean"
    }
  ]
}
```

**Example**:

```bash
curl -X GET "https://aiden.opsverse.io/api/v1/integrations" \
  -H "Authorization: Bearer aiden-<your_api_key>"
```

### GET /v1/integrations/\{id}

Returns details of a specific integration configuration.

```text
GET /v1/integrations/{id}
```

**Parameters**:

- `id`: UUID of the integration configuration

**Response**:

```json
{
  "id": "uuid",
  "integration_type": "string",
  "parameters": "string",
  "is_enabled": "boolean"
}
```

**Example**:

```bash
curl -X GET "https://aiden.opsverse.io/api/v1/integrations/550e8400-e29b-41d4-a716-446655440000" \
  -H "Authorization: Bearer aiden-<your_api_key>"
```

### POST /v1/integrations

Creates a new integration configuration.

```text
POST /v1/integrations
```

**Request Body**:

```json
{
  "integration_type": "string",
  "parameters": "object",
  "create_prebuilt_skills": "boolean"
}
```

**Response**:

```json
{
  "id": "uuid",
  "integration_type": "string",
  "parameters": "object",
  "is_enabled": "boolean"
}
```

**Example**:

```bash
curl -X POST "https://aiden.opsverse.io/api/v1/integrations" \
  -H "Authorization: Bearer aiden-<your_api_key>" \
  -H "Content-Type: application/json" \
  -d '{
    "integration_type": "AWS",
    "parameters": {
      "aws_access_key_id": "your_access_key",
      "aws_secret_access_key": "your_secret_key",
      "aws_region": "us-west-2"
    },
    "create_prebuilt_skills": true
  }'
```

### PATCH /v1/integrations/\{id}

Updates an existing integration configuration.

```text
PATCH /v1/integrations/{id}
```

**Parameters**:

- `id`: UUID of the integration configuration

**Request Body**:

```json
{
  "parameters": "object" (optional),
  "is_enabled": "boolean" (optional)
}
```

**Response**:

```json
{
  "id": "uuid",
  "integration_type": "string",
  "parameters": "object",
  "is_enabled": "boolean"
}
```

**Example**:

```bash
curl -X PATCH "https://aiden.opsverse.io/api/v1/integrations/550e8400-e29b-41d4-a716-446655440000" \
  -H "Authorization: Bearer aiden-<your_api_key>" \
  -H "Content-Type: application/json" \
  -d '{
    "parameters": {
      "aws_access_key_id": "updated_access_key",
      "aws_secret_access_key": "updated_secret_key",
      "aws_region": "us-east-1"
    },
    "is_enabled": true
  }'
```

### Delete Integration

```text
DELETE /api/v1/integrations/{id}
```

Deletes an integration configuration.

**Parameters**:

- `id`: UUID of the integration configuration

**Response**:

```json
{
  "status": "OK"
}
```

**Example**:

```bash
curl -X DELETE "https://aiden.opsverse.io/api/v1/integrations/550e8400-e29b-41d4-a716-446655440000" \
  -H "Authorization: Bearer aiden-<your_api_key>"
```

## Knowledge Base

The Knowledge Base API allows you to manage contextual information that Aiden can use to provide more personalized and relevant responses.

### GET /v1/context

Returns the knowledge base context for the authenticated user's organization.

```text
GET /v1/context
```

**Response**:

```json
{
  "baseContext": "string"
}
```

**Example**:

```bash
curl -X GET "https://aiden.opsverse.io/api/v1/context" \
  -H "Authorization: Bearer aiden-<your_api_key>"
```

### POST /v1/context

Creates or updates the knowledge base context for the authenticated user's organization. This endpoint automatically processes the context into embeddings for semantic search.

```text
POST /v1/context
```

**Request Body**:

```json
{
  "baseContext": "string"
}
```

**Response**:

```json
{
  "status": "OK"
}
```

**Example**:

```bash
curl -X POST "https://aiden.opsverse.io/api/v1/context" \
  -H "Authorization: Bearer aiden-<your_api_key>" \
  -H "Content-Type: application/json" \
  -d '{
    "baseContext": "This is important knowledge for Aiden to use when answering questions. Our organization uses AWS EC2 instances in us-west-2 region primarily for web applications, and RDS for PostgreSQL databases."
  }'
```

