mirror of
https://github.com/j3ssie/osmedeus.git
synced 2026-08-26 09:32:28 +02:00
- Update Next.js build IDs and chunk hashes in workflow upload static files - Replace deprecated 'input' field syntax with new exports-style variables in event triggers (e.g., 'Target: event_data.value' instead of type/field/name) - Simplify parameter override syntax in test workflows (remove nested 'default' structure)
Osmedeus API Documentation
Overview
The Osmedeus API provides a RESTful interface for managing security automation workflows, runs, and distributed task execution.
Base URL: http://localhost:8002
Default Port: 8002
Authentication
Most API endpoints require authentication. Two methods are supported:
-
JWT Token: Obtain a token via the login endpoint, then include it in requests using the
Authorization: Bearer <token>header. -
API Key: Use a static API key via the
x-osm-api-keyheader. Configure in~/osmedeus-base/osm-settings.yamlunderserver.auth_api_key.
See Authentication for details.
API Reference
| Category | Description |
|---|---|
| Public Endpoints | Server info, health checks, Swagger docs |
| Authentication | Login and JWT token management |
| Workflows | List, view, and refresh workflows |
| Runs | Create and manage workflow executions |
| File Uploads | Upload target files and workflows |
| Snapshots | Download workspace snapshots |
| Workspaces | List and manage workspaces |
| Assets | View discovered assets |
| Vulnerabilities | View and manage vulnerabilities |
| Event Logs | View execution event logs |
| Step Results | Query step execution results |
| Functions | Execute and list utility functions |
| System Statistics | Get aggregated system stats |
| Settings | Manage server configuration |
| Installation | Install binaries and workflows |
| Schedules | Manage scheduled workflows |
| Distributed Mode | Worker and task management |
| LLM API | Large Language Model API |
| Reference | Error codes, pagination, cron expressions, step types |
Quick Start
# Get server info (no auth required)
curl http://localhost:8002/server-info
# Login and get token
export TOKEN=$(curl -s -X POST http://localhost:8002/osm/api/login \
-H "Content-Type: application/json" \
-d '{"username": "osmedeus", "password": "admin"}' | jq -r '.token')
# List workflows
curl http://localhost:8002/osm/api/workflows \
-H "Authorization: Bearer $TOKEN"
# Start a scan
curl -X POST http://localhost:8002/osm/api/runs \
-H "Authorization: Bearer $TOKEN" \
-H "Content-Type: application/json" \
-d '{"flow": "subdomain-enum", "target": "example.com"}'