Initializing Operalta...

Rooms

Rooms, saved views, room streams, and GitHub issue tracking.

POST
/api/github/issues

Authorization

AuthorizationBearer <token>

API key obtained from Operalta Settings → API Keys. Format: op_xxxxx. Pass as Authorization: Bearer op_....

In: header

Query Parameters

companyId*string

UUID of the company. Alternatively, pass as X-Company-Id request header.

Formatuuid

Header Parameters

X-Company-Id?string

Company UUID. Alternative to the companyId query parameter.

Formatuuid

Request Body

application/json

TypeScript Definitions

Use the request body type in TypeScript.

Response Body

application/json

application/json

application/json

application/json

application/json

curl -X POST "https://example.com/api/github/issues?companyId=497f6eca-6276-4993-bfeb-53cbbbba6f08" \  -H "Content-Type: application/json" \  -d '{    "room_id": "05451321-18e1-4bfa-aa22-dfd0080cc120",    "issue_url": "string",    "issue_number": 0,    "title": "string",    "issue_type": "epic"  }'
{
  "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
  "company_id": "b2e6a1c3-1a5e-44ae-a8fd-81f76fd715cf",
  "room_id": "05451321-18e1-4bfa-aa22-dfd0080cc120",
  "issue_url": "string",
  "issue_number": 0,
  "title": "string",
  "issue_type": "epic",
  "state": "open",
  "decision_content": "string",
  "stream_entry_id": "a917cac9-0b05-4c31-9808-bab836ae432c",
  "origin": "cli",
  "tracked_by": "cef4d104-3411-40b6-8079-3fba32aba98d",
  "created_at": "2019-08-24T14:15:22Z",
  "updated_at": "2019-08-24T14:15:22Z"
}
{
  "error": "string",
  "status": 0,
  "details": {}
}
{
  "error": "string",
  "status": 0,
  "details": {}
}
{
  "error": "string",
  "status": 0,
  "details": {}
}
{
  "error": "string",
  "status": 0,
  "details": {}
}
PATCH
/api/github/issues/{id}

Authorization

AuthorizationBearer <token>

API key obtained from Operalta Settings → API Keys. Format: op_xxxxx. Pass as Authorization: Bearer op_....

In: header

Path Parameters

id*string
Formatuuid

Query Parameters

companyId*string

UUID of the company. Alternatively, pass as X-Company-Id request header.

Formatuuid

Header Parameters

X-Company-Id?string

Company UUID. Alternative to the companyId query parameter.

Formatuuid

Request Body

application/json

TypeScript Definitions

Use the request body type in TypeScript.

Response Body

application/json

application/json

application/json

application/json

curl -X PATCH "https://example.com/api/github/issues/497f6eca-6276-4993-bfeb-53cbbbba6f08?companyId=497f6eca-6276-4993-bfeb-53cbbbba6f08" \  -H "Content-Type: application/json" \  -d '{}'
{
  "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
  "company_id": "b2e6a1c3-1a5e-44ae-a8fd-81f76fd715cf",
  "room_id": "05451321-18e1-4bfa-aa22-dfd0080cc120",
  "issue_url": "string",
  "issue_number": 0,
  "title": "string",
  "issue_type": "epic",
  "state": "open",
  "decision_content": "string",
  "stream_entry_id": "a917cac9-0b05-4c31-9808-bab836ae432c",
  "origin": "cli",
  "tracked_by": "cef4d104-3411-40b6-8079-3fba32aba98d",
  "created_at": "2019-08-24T14:15:22Z",
  "updated_at": "2019-08-24T14:15:22Z"
}
{
  "error": "string",
  "status": 0,
  "details": {}
}
{
  "error": "string",
  "status": 0,
  "details": {}
}
{
  "error": "string",
  "status": 0,
  "details": {}
}
GET
/api/rooms

Authorization

BearerAuth
AuthorizationBearer <token>

API key obtained from Operalta Settings → API Keys. Format: op_xxxxx. Pass as Authorization: Bearer op_....

In: header

Query Parameters

companyId*string

UUID of the company. Alternatively, pass as X-Company-Id request header.

Formatuuid

Header Parameters

X-Company-Id?string

Company UUID. Alternative to the companyId query parameter.

Formatuuid

Response Body

application/json

application/json

application/json

curl -X GET "https://example.com/api/rooms?companyId=497f6eca-6276-4993-bfeb-53cbbbba6f08"
{
  "rooms": [
    {
      "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
      "label": "string",
      "name": "string",
      "description": "string",
      "icon": "string",
      "visibility": "private",
      "created_by": "ee824cad-d7a6-4f48-87dc-e8461a9201c4",
      "created_at": "2019-08-24T14:15:22Z"
    }
  ]
}
{
  "error": "string",
  "status": 0,
  "details": {}
}
{
  "error": "string",
  "status": 0,
  "details": {}
}
POST
/api/rooms

Authorization

BearerAuth
AuthorizationBearer <token>

API key obtained from Operalta Settings → API Keys. Format: op_xxxxx. Pass as Authorization: Bearer op_....

In: header

Request Body

application/json

TypeScript Definitions

Use the request body type in TypeScript.

Response Body

application/json

application/json

application/json

application/json

curl -X POST "https://example.com/api/rooms" \  -H "Content-Type: application/json" \  -d '{    "companyId": "8bb73d03-06b4-47c7-80c7-59301f770eda",    "label": "string",    "name": "string"  }'
{
  "room": {
    "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
    "label": "string",
    "name": "string"
  }
}
{
  "error": "string",
  "status": 0,
  "details": {}
}
{
  "error": "string",
  "status": 0,
  "details": {}
}
{
  "error": "string",
  "status": 0,
  "details": {}
}
GET
/api/rooms/{roomId}

Authorization

AuthorizationBearer <token>

API key obtained from Operalta Settings → API Keys. Format: op_xxxxx. Pass as Authorization: Bearer op_....

In: header

Path Parameters

roomId*string
Formatuuid

Header Parameters

X-Company-Id?string

Company UUID. Alternative to the companyId query parameter.

Formatuuid

Response Body

application/json

application/json

application/json

application/json

application/json

curl -X GET "https://example.com/api/rooms/497f6eca-6276-4993-bfeb-53cbbbba6f08"
{
  "room": {
    "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
    "label": "string",
    "name": "string",
    "description": "string",
    "icon": "string",
    "visibility": "private",
    "created_at": "2019-08-24T14:15:22Z",
    "company_id": "b2e6a1c3-1a5e-44ae-a8fd-81f76fd715cf",
    "artifact_count": 0,
    "member_count": 0,
    "last_activity_at": "2019-08-24T14:15:22Z",
    "created_by": "ee824cad-d7a6-4f48-87dc-e8461a9201c4",
    "updated_at": "2019-08-24T14:15:22Z",
    "charter": {
      "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
      "label": "string",
      "name": "string",
      "description": "string",
      "audience": [
        "string"
      ],
      "objectives": [
        "string"
      ],
      "constraints": [
        "string"
      ],
      "data_sources": [
        "string"
      ],
      "policies": [
        "string"
      ],
      "sensitivity_allowlist": [
        "string"
      ],
      "grid_columns": [
        "string"
      ],
      "auto_sync_enabled": true,
      "sync_target_id": "134c39ff-4695-480a-b2ce-682d04c6fdc4"
    }
  }
}
{
  "error": "string",
  "status": 0,
  "details": {}
}
{
  "error": "string",
  "status": 0,
  "details": {}
}
{
  "error": "string",
  "status": 0,
  "details": {}
}
{
  "error": "string",
  "status": 0,
  "details": {}
}
GET
/api/rooms/{roomId}/artifacts

Authorization

BearerAuth
AuthorizationBearer <token>

API key obtained from Operalta Settings → API Keys. Format: op_xxxxx. Pass as Authorization: Bearer op_....

In: header

Path Parameters

roomId*string
Formatuuid

Query Parameters

companyId*string

UUID of the company. Alternatively, pass as X-Company-Id request header.

Formatuuid
limit?integer

Optional page size for room artifacts. Defaults to the route fallback when omitted.

Range1 <= value <= 500
offset?integer

Optional row offset for room artifacts pagination.

Range0 <= value

Header Parameters

X-Company-Id?string

Company UUID. Alternative to the companyId query parameter.

Formatuuid

Response Body

application/json

application/json

application/json

application/json

application/json

curl -X GET "https://example.com/api/rooms/497f6eca-6276-4993-bfeb-53cbbbba6f08/artifacts?companyId=497f6eca-6276-4993-bfeb-53cbbbba6f08"
{
  "artifacts": [
    {
      "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
      "company_id": "b2e6a1c3-1a5e-44ae-a8fd-81f76fd715cf",
      "title": "string",
      "description": "string",
      "content": "string",
      "type": "string",
      "version": 0,
      "origin_type": "conversation",
      "content_type": "string",
      "content_format": "string",
      "conversation_id": "cc71b11a-25cd-4c2d-9950-df2cc38e3407",
      "status": "string",
      "tags": [
        "string"
      ],
      "file_path": "string",
      "artifact_group_id": "1db99138-7a87-48fb-9e7a-41f999b4d10c",
      "parent_artifact_id": "7480d92d-bde1-4372-92f5-ab1e476d80ef",
      "is_final_version": true,
      "generated_by": "ai",
      "created_at": "2019-08-24T14:15:22Z",
      "updated_at": "2019-08-24T14:15:22Z"
    }
  ],
  "pagination": {
    "total": 0,
    "limit": 0,
    "offset": 0
  }
}
{
  "error": "string",
  "status": 0,
  "details": {}
}
{
  "error": "string",
  "status": 0,
  "details": {}
}
{
  "error": "string",
  "status": 0,
  "details": {}
}
{
  "error": "string",
  "status": 0,
  "details": {}
}
POST
/api/rooms/{roomId}/artifacts

Authorization

BearerAuth
AuthorizationBearer <token>

API key obtained from Operalta Settings → API Keys. Format: op_xxxxx. Pass as Authorization: Bearer op_....

In: header

Path Parameters

roomId*string
Formatuuid

Request Body

application/json

TypeScript Definitions

Use the request body type in TypeScript.

Response Body

application/json

application/json

application/json

application/json

curl -X POST "https://example.com/api/rooms/497f6eca-6276-4993-bfeb-53cbbbba6f08/artifacts" \  -H "Content-Type: application/json" \  -d '{    "companyId": "8bb73d03-06b4-47c7-80c7-59301f770eda",    "documentId": "4704590c-004e-410d-adf7-acb7ca0a7052"  }'
{
  "success": true,
  "artifactId": "706a3f1e-c357-4634-b1bf-20c221b5bb4e",
  "artifactGroupId": "f2656ae0-d509-42a7-9559-be339b18e8ec",
  "reused": true
}
{
  "error": "string",
  "status": 0,
  "details": {}
}
{
  "error": "string",
  "status": 0,
  "details": {}
}
{
  "error": "string",
  "status": 0,
  "details": {}
}
POST
/api/rooms/{roomId}/artifacts/generate-preview-from-artifact

Authorization

AuthorizationBearer <token>

API key obtained from Operalta Settings → API Keys. Format: op_xxxxx. Pass as Authorization: Bearer op_....

In: header

Path Parameters

roomId*string
Formatuuid

Request Body

application/json

TypeScript Definitions

Use the request body type in TypeScript.

Response Body

application/json

application/json

application/json

application/json

curl -X POST "https://example.com/api/rooms/497f6eca-6276-4993-bfeb-53cbbbba6f08/artifacts/generate-preview-from-artifact" \  -H "Content-Type: application/json" \  -d '{    "companyId": "8bb73d03-06b4-47c7-80c7-59301f770eda",    "sourceArtifactId": "ad179e06-084e-4b16-9045-663be81d1dc6"  }'
{
  "success": true,
  "artifactId": "706a3f1e-c357-4634-b1bf-20c221b5bb4e",
  "artifactGroupId": "f2656ae0-d509-42a7-9559-be339b18e8ec"
}
{
  "error": "string",
  "status": 0,
  "details": {}
}
{
  "error": "string",
  "status": 0,
  "details": {}
}
{
  "error": "string",
  "status": 0,
  "details": {}
}
GET
/api/rooms/{roomId}/github-issues

Authorization

AuthorizationBearer <token>

API key obtained from Operalta Settings → API Keys. Format: op_xxxxx. Pass as Authorization: Bearer op_....

In: header

Path Parameters

roomId*string
Formatuuid

Query Parameters

companyId*string

UUID of the company. Alternatively, pass as X-Company-Id request header.

Formatuuid
state?string
Value in"open" | "closed" | "all"
type?string
Value in"epic" | "feature" | "task" | "bug"
limit?integer
Range1 <= value <= 200

Header Parameters

X-Company-Id?string

Company UUID. Alternative to the companyId query parameter.

Formatuuid

Response Body

application/json

application/json

application/json

application/json

curl -X GET "https://example.com/api/rooms/497f6eca-6276-4993-bfeb-53cbbbba6f08/github-issues?companyId=497f6eca-6276-4993-bfeb-53cbbbba6f08"
{
  "issues": [
    {
      "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
      "company_id": "b2e6a1c3-1a5e-44ae-a8fd-81f76fd715cf",
      "room_id": "05451321-18e1-4bfa-aa22-dfd0080cc120",
      "issue_url": "string",
      "issue_number": 0,
      "title": "string",
      "issue_type": "epic",
      "state": "open",
      "decision_content": "string",
      "stream_entry_id": "a917cac9-0b05-4c31-9808-bab836ae432c",
      "origin": "cli",
      "tracked_by": "cef4d104-3411-40b6-8079-3fba32aba98d",
      "created_at": "2019-08-24T14:15:22Z",
      "updated_at": "2019-08-24T14:15:22Z"
    }
  ],
  "total": 0
}
{
  "error": "string",
  "status": 0,
  "details": {}
}
{
  "error": "string",
  "status": 0,
  "details": {}
}
{
  "error": "string",
  "status": 0,
  "details": {}
}
GET
/api/rooms/{roomId}/streams

Authorization

AuthorizationBearer <token>

API key obtained from Operalta Settings → API Keys. Format: op_xxxxx. Pass as Authorization: Bearer op_....

In: header

Path Parameters

roomId*string
Formatuuid

Query Parameters

companyId*string

UUID of the company. Alternatively, pass as X-Company-Id request header.

Formatuuid
since?string
Formatdate-time
limit?integer
Range1 <= value <= 200
types?string

Comma-separated stream entry types.

Header Parameters

X-Company-Id?string

Company UUID. Alternative to the companyId query parameter.

Formatuuid

Response Body

application/json

application/json

application/json

application/json

curl -X GET "https://example.com/api/rooms/497f6eca-6276-4993-bfeb-53cbbbba6f08/streams?companyId=497f6eca-6276-4993-bfeb-53cbbbba6f08"
{
  "entries": [
    {
      "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
      "title": "string",
      "content": "string",
      "type": "string",
      "lifecycle": "vision",
      "domain": "product",
      "reversibility": "irreversible",
      "confidence": "validated",
      "priority": "low",
      "status": "active",
      "superseded_by": "a99fa58d-1b9b-4688-ad5f-382f6b17ef46",
      "superseded_at": "2019-08-24T14:15:22Z",
      "created_at": "2019-08-24T14:15:22Z",
      "updated_at": "2019-08-24T14:15:22Z"
    }
  ],
  "total": 0
}
{
  "error": "string",
  "status": 0,
  "details": {}
}
{
  "error": "string",
  "status": 0,
  "details": {}
}
{
  "error": "string",
  "status": 0,
  "details": {}
}
GET
/api/rooms/{roomId}/views

Authorization

SessionCookie
Cookie<token>

Authenticated Operalta web session Cookie header. In practice this usually contains sb-<project-ref>-auth-token=... and may include chunked siblings; use the full Cookie header copied from a logged-in browser session.

In: header

Path Parameters

roomId*string
Formatuuid

Response Body

application/json

application/json

application/json

application/json

application/json

curl -X GET "https://example.com/api/rooms/497f6eca-6276-4993-bfeb-53cbbbba6f08/views"
{
  "views": [
    {
      "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
      "room_id": "05451321-18e1-4bfa-aa22-dfd0080cc120",
      "company_id": "b2e6a1c3-1a5e-44ae-a8fd-81f76fd715cf",
      "created_by": "ee824cad-d7a6-4f48-87dc-e8461a9201c4",
      "name": "string",
      "description": "string",
      "icon": "string",
      "filters": {
        "folder_ids": [
          "string"
        ],
        "content_type": [
          "string"
        ],
        "document_type": [
          "string"
        ],
        "domain": [
          "string"
        ],
        "sub_domain": [
          "string"
        ],
        "sensitivity": [
          "string"
        ],
        "lifecycle": [
          "string"
        ],
        "status": [
          "string"
        ],
        "date_from": "string",
        "date_to": "string",
        "created_by": [
          "string"
        ],
        "search": "string",
        "tags": [
          "string"
        ]
      },
      "position": 0,
      "is_pinned": true,
      "created_at": "2019-08-24T14:15:22Z",
      "updated_at": "2019-08-24T14:15:22Z"
    }
  ]
}
{
  "error": "string",
  "status": 0,
  "details": {}
}
{
  "error": "string",
  "status": 0,
  "details": {}
}
{
  "error": "string",
  "status": 0,
  "details": {}
}
{
  "error": "string",
  "status": 0,
  "details": {}
}
POST
/api/rooms/{roomId}/views

Authorization

SessionCookie
Cookie<token>

Authenticated Operalta web session Cookie header. In practice this usually contains sb-<project-ref>-auth-token=... and may include chunked siblings; use the full Cookie header copied from a logged-in browser session.

In: header

Path Parameters

roomId*string
Formatuuid

Request Body

application/json

TypeScript Definitions

Use the request body type in TypeScript.

Response Body

application/json

application/json

application/json

application/json

application/json

application/json

curl -X POST "https://example.com/api/rooms/497f6eca-6276-4993-bfeb-53cbbbba6f08/views" \  -H "Content-Type: application/json" \  -d '{    "name": "string",    "filters": {}  }'
{
  "view": {
    "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
    "room_id": "05451321-18e1-4bfa-aa22-dfd0080cc120",
    "company_id": "b2e6a1c3-1a5e-44ae-a8fd-81f76fd715cf",
    "created_by": "ee824cad-d7a6-4f48-87dc-e8461a9201c4",
    "name": "string",
    "description": "string",
    "icon": "string",
    "filters": {
      "folder_ids": [
        "string"
      ],
      "content_type": [
        "string"
      ],
      "document_type": [
        "string"
      ],
      "domain": [
        "string"
      ],
      "sub_domain": [
        "string"
      ],
      "sensitivity": [
        "string"
      ],
      "lifecycle": [
        "string"
      ],
      "status": [
        "string"
      ],
      "date_from": "string",
      "date_to": "string",
      "created_by": [
        "string"
      ],
      "search": "string",
      "tags": [
        "string"
      ]
    },
    "position": 0,
    "is_pinned": true,
    "created_at": "2019-08-24T14:15:22Z",
    "updated_at": "2019-08-24T14:15:22Z"
  }
}
{
  "error": "string",
  "status": 0,
  "details": {}
}
{
  "error": "string",
  "status": 0,
  "details": {}
}
{
  "error": "string",
  "status": 0,
  "details": {}
}
{
  "error": "string",
  "status": 0,
  "details": {}
}
{
  "error": "string",
  "status": 0,
  "details": {}
}
GET
/api/rooms/{roomId}/views/{viewId}

Authorization

SessionCookie
Cookie<token>

Authenticated Operalta web session Cookie header. In practice this usually contains sb-<project-ref>-auth-token=... and may include chunked siblings; use the full Cookie header copied from a logged-in browser session.

In: header

Path Parameters

roomId*string
Formatuuid
viewId*string
Formatuuid

Response Body

application/json

application/json

application/json

application/json

curl -X GET "https://example.com/api/rooms/497f6eca-6276-4993-bfeb-53cbbbba6f08/views/497f6eca-6276-4993-bfeb-53cbbbba6f08"
{
  "view": {
    "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
    "room_id": "05451321-18e1-4bfa-aa22-dfd0080cc120",
    "company_id": "b2e6a1c3-1a5e-44ae-a8fd-81f76fd715cf",
    "created_by": "ee824cad-d7a6-4f48-87dc-e8461a9201c4",
    "name": "string",
    "description": "string",
    "icon": "string",
    "filters": {
      "folder_ids": [
        "string"
      ],
      "content_type": [
        "string"
      ],
      "document_type": [
        "string"
      ],
      "domain": [
        "string"
      ],
      "sub_domain": [
        "string"
      ],
      "sensitivity": [
        "string"
      ],
      "lifecycle": [
        "string"
      ],
      "status": [
        "string"
      ],
      "date_from": "string",
      "date_to": "string",
      "created_by": [
        "string"
      ],
      "search": "string",
      "tags": [
        "string"
      ]
    },
    "position": 0,
    "is_pinned": true,
    "created_at": "2019-08-24T14:15:22Z",
    "updated_at": "2019-08-24T14:15:22Z"
  }
}
{
  "error": "string",
  "status": 0,
  "details": {}
}
{
  "error": "string",
  "status": 0,
  "details": {}
}
{
  "error": "string",
  "status": 0,
  "details": {}
}
PATCH
/api/rooms/{roomId}/views/{viewId}

Authorization

SessionCookie
Cookie<token>

Authenticated Operalta web session Cookie header. In practice this usually contains sb-<project-ref>-auth-token=... and may include chunked siblings; use the full Cookie header copied from a logged-in browser session.

In: header

Path Parameters

roomId*string
Formatuuid
viewId*string
Formatuuid

Request Body

application/json

TypeScript Definitions

Use the request body type in TypeScript.

Response Body

application/json

application/json

application/json

application/json

application/json

application/json

curl -X PATCH "https://example.com/api/rooms/497f6eca-6276-4993-bfeb-53cbbbba6f08/views/497f6eca-6276-4993-bfeb-53cbbbba6f08" \  -H "Content-Type: application/json" \  -d '{}'
{
  "view": {
    "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
    "room_id": "05451321-18e1-4bfa-aa22-dfd0080cc120",
    "company_id": "b2e6a1c3-1a5e-44ae-a8fd-81f76fd715cf",
    "created_by": "ee824cad-d7a6-4f48-87dc-e8461a9201c4",
    "name": "string",
    "description": "string",
    "icon": "string",
    "filters": {
      "folder_ids": [
        "string"
      ],
      "content_type": [
        "string"
      ],
      "document_type": [
        "string"
      ],
      "domain": [
        "string"
      ],
      "sub_domain": [
        "string"
      ],
      "sensitivity": [
        "string"
      ],
      "lifecycle": [
        "string"
      ],
      "status": [
        "string"
      ],
      "date_from": "string",
      "date_to": "string",
      "created_by": [
        "string"
      ],
      "search": "string",
      "tags": [
        "string"
      ]
    },
    "position": 0,
    "is_pinned": true,
    "created_at": "2019-08-24T14:15:22Z",
    "updated_at": "2019-08-24T14:15:22Z"
  }
}
{
  "error": "string",
  "status": 0,
  "details": {}
}
{
  "error": "string",
  "status": 0,
  "details": {}
}
{
  "error": "string",
  "status": 0,
  "details": {}
}
{
  "error": "string",
  "status": 0,
  "details": {}
}
{
  "error": "string",
  "status": 0,
  "details": {}
}
DELETE
/api/rooms/{roomId}/views/{viewId}

Authorization

SessionCookie
Cookie<token>

Authenticated Operalta web session Cookie header. In practice this usually contains sb-<project-ref>-auth-token=... and may include chunked siblings; use the full Cookie header copied from a logged-in browser session.

In: header

Path Parameters

roomId*string
Formatuuid
viewId*string
Formatuuid

Response Body

application/json

application/json

application/json

application/json

application/json

curl -X DELETE "https://example.com/api/rooms/497f6eca-6276-4993-bfeb-53cbbbba6f08/views/497f6eca-6276-4993-bfeb-53cbbbba6f08"
{
  "success": true
}
{
  "error": "string",
  "status": 0,
  "details": {}
}
{
  "error": "string",
  "status": 0,
  "details": {}
}
{
  "error": "string",
  "status": 0,
  "details": {}
}
{
  "error": "string",
  "status": 0,
  "details": {}
}