dashboard.docs.overview
dashboard.docs.intro
dashboard.docs.base_url_intro
dashboard.docs.engine_intro
dashboard.docs.tip_openai_sdk
dashboard.docs.authentication
dashboard.docs.auth_intro
dashboard.docs.bearer_token_header
curl
curl -H "Authorization: Bearer octra_YOUR_API_KEY" https://octra.env.pm/v1/chat/completionsdashboard.docs.api_key_in_body
curl
curl -X POST https://octra.env.pm/v1/chat/completions \
-H "Content-Type: application/json" \
-d '{"api_key": "octra_YOUR_API_KEY", "model": "...", "messages": [...]}'dashboard.docs.email_code_intro
curl
curl -X POST https://octra.env.pm/auth/email/request-code \
-H "Content-Type: application/json" \
-d '{"purpose": "login", "email": "me@example.com"}'
curl -X POST https://octra.env.pm/auth/email/verify-code \
-H "Content-Type: application/json" \
-d '{"purpose": "login", "email": "me@example.com", "code": "123456"}'dashboard.docs.openai_compatible_api
dashboard.docs.openai_intro
| dashboard.docs.parameter | dashboard.docs.type | common.required | common.description |
|---|---|---|---|
| POST /v1/chat/completions | — | common.no | dashboard.docs.param_chat_completions |
| POST /api/chat/openai/environments/{id} | — | common.no | dashboard.docs.param_env_chat |
| POST /api/chat/openai/environments/{id}/chat/completions | — | common.no | dashboard.docs.param_env_chat_alt |
| POST /api/openai/environments/chat/completions | — | common.no | dashboard.docs.param_model_workflow |
| POST /api/chat | — | common.no | dashboard.docs.param_simple_chat |
dashboard.docs.basic_chat_completion
curl
curl -X POST https://octra.env.pm/v1/chat/completions \
-H "Authorization: Bearer octra_YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "openai/gpt-4o",
"messages": [
{"role": "system", "content": "You are a helpful assistant."},
{"role": "user", "content": "Hello!"}
],
"temperature": 0.7,
"max_tokens": 1024
}'dashboard.docs.streaming_sse
curl
curl -N -X POST https://octra.env.pm/v1/chat/completions \
-H "Authorization: Bearer octra_YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "openai/gpt-4o",
"messages": [{"role": "user", "content": "Hello!"}],
"stream": true
}'dashboard.docs.env_based_routing
dashboard.docs.env_routing_intro
curl
curl -X POST https://octra.env.pm/api/openai/environments/chat/completions \
-H "Authorization: Bearer octra_YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "workflow/octra/YOUR_ENV_ID",
"messages": [{"role": "user", "content": "Hello!"}]
}'dashboard.docs.parameters_flags
dashboard.docs.params_intro
dashboard.docs.standard_params
| dashboard.docs.parameter | dashboard.docs.type | common.required | common.description |
|---|---|---|---|
| messages | array | common.yes | dashboard.docs.p_messages |
| model | string | common.no | dashboard.docs.p_model |
| stream | boolean | common.no | dashboard.docs.p_stream |
| temperature | number | common.no | dashboard.docs.p_temperature |
| max_tokens | integer | common.no | dashboard.docs.p_max_tokens |
| top_p | number | common.no | dashboard.docs.p_top_p |
| frequency_penalty | number | common.no | dashboard.docs.p_frequency_penalty |
| presence_penalty | number | common.no | dashboard.docs.p_presence_penalty |
| stop | string/array | common.no | dashboard.docs.p_stop |
| tools | array | common.no | dashboard.docs.p_tools |
| tool_choice | string | common.no | dashboard.docs.p_tool_choice |
dashboard.docs.octra_params
| dashboard.docs.parameter | dashboard.docs.type | common.required | common.description |
|---|---|---|---|
| api_key | string | common.yes | dashboard.docs.o_api_key |
| session | string | common.no | dashboard.docs.o_session |
| runtime | boolean | common.no | dashboard.docs.o_runtime |
| base_url | string | common.no | dashboard.docs.o_base_url |
| repositories | array | common.no | dashboard.docs.o_repositories |
| git | object | common.no | dashboard.docs.o_git |
| metadata | object | common.no | dashboard.docs.o_metadata |
| env_id | string | common.no | dashboard.docs.o_env_id |
dashboard.docs.git_integration_options
| dashboard.docs.parameter | dashboard.docs.type | common.required | common.description |
|---|---|---|---|
| git.branch | string | common.no | dashboard.docs.g_branch |
| git.pr.create | boolean | common.no | dashboard.docs.g_pr_create |
| git.pr.base-branch | string | common.no | dashboard.docs.g_pr_base |
dashboard.docs.repository_context_object
| dashboard.docs.parameter | dashboard.docs.type | common.required | common.description |
|---|---|---|---|
| id | string | common.no | dashboard.docs.r_id |
| name | string | common.no | dashboard.docs.r_name |
| clone_url | string | common.no | dashboard.docs.r_clone_url |
| branch | string | common.no | dashboard.docs.r_branch |
| visibility | string | common.no | dashboard.docs.r_visibility |
dashboard.docs.sync_streaming_async_modes
dashboard.docs.modes_intro
| dashboard.docs.parameter | dashboard.docs.type | common.required | common.description |
|---|---|---|---|
| Sync | default | common.no | dashboard.docs.m_sync |
| Streaming | stream: true | common.no | dashboard.docs.m_streaming |
| Async | runtime: true | common.no | dashboard.docs.m_async |
dashboard.docs.sync_mode
dashboard.docs.sync_intro
curl
curl -X POST https://octra.env.pm/api/openai/environments/chat/completions \
-H "Authorization: Bearer octra_YOUR_API_KEY" \
-H "Content-Type: application/json" \
--max-time 900 \
-d '{
"model": "workflow/octra/YOUR_ENV_ID",
"messages": [{"role": "user", "content": "Summarise the README."}]
}'dashboard.docs.tip_session
dashboard.docs.async_mode
dashboard.docs.async_intro
curl
# 1. Queue the work
curl -X POST https://octra.env.pm/v1/chat/completions \
-H "Authorization: Bearer octra_YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "workflow/octra/YOUR_ENV_ID",
"messages": [{"role": "user", "content": "Refactor the auth module."}],
"runtime": true
}'
# -> {"status_code": "sc_1a2b3c", "session": "..."}
# 2. Poll it
curl https://octra.env.pm/api/chat/environments/YOUR_ENV_ID/status/sc_1a2b3c/check/chat \
-H "Authorization: Bearer octra_YOUR_API_KEY"dashboard.docs.tasks_intro
| dashboard.docs.parameter | dashboard.docs.type | common.required | common.description |
|---|---|---|---|
| GET /api/chat/environments/{id}/tasks | — | common.no | dashboard.docs.t_list |
| POST /api/chat/environments/{id}/tasks | — | common.no | dashboard.docs.t_start |
| GET /api/chat/environments/{id}/tasks/{task_id} | — | common.no | dashboard.docs.t_status |
| GET /api/chat/environments/{id}/tasks/{task_id}/stream | — | common.no | dashboard.docs.t_stream |
| POST /api/chat/environments/{id}/tasks/{task_id}/cancel | — | common.no | dashboard.docs.t_cancel |
dashboard.docs.adapters
dashboard.docs.adapters_intro
dashboard.docs.warning_adapter
dashboard.docs.grpc
dashboard.docs.grpc_intro
protobuf
service ChatService {
rpc Chat(stream ChatRequest) returns (stream ChatResponse);
rpc SubmitChat(ChatSubmitRequest) returns (ChatSubmitResponse);
rpc GetChatStatus(ChatStatusRequest) returns (ChatStatusResponse);
}
message ChatRequest { string prompt = 1; }
message ChatResponse {
oneof payload { string token = 1; string error = 2; }
bool done = 3;
}bash
grpcurl -plaintext \
-H "x-api-key: octra_YOUR_API_KEY" \
-H "x-environment-id: YOUR_ENV_ID" \
-d '{"prompt": "Hello, agent!"}' \
YOUR_HOST:9090 chat.ChatService/Chatdashboard.docs.graphql
dashboard.docs.graphql_intro
graphql
type Mutation {
chat(environmentId: String!, prompt: String!, apiKey: String!): String
submitChat(environmentId: String!, prompt: String!, apiKey: String!): ChatSubmitResult
}
type Query {
ping: String
chatStatus(environmentId: String!, statusCode: String!, apiKey: String!): ChatStatusResult
}curl
curl -X POST https://octra.env.pm/graphql \
-H "Content-Type: application/json" \
-d '{"query": "mutation { chat(environmentId: \"YOUR_ENV_ID\", prompt: \"Hello!\", apiKey: \"octra_YOUR_API_KEY\") }"}'dashboard.docs.websocket
dashboard.docs.websocket_intro
typescript
const socket = new WebSocket(
'wss://octra.env.pm/ws/chat/YOUR_ENV_ID?token=octra_YOUR_API_KEY',
);
socket.onopen = () => socket.send(JSON.stringify({ prompt: 'Hello, agent!' }));
socket.onmessage = (event) => {
const frame = JSON.parse(event.data);
if (frame.type === 'token') process.stdout.write(frame.token);
if (frame.type === 'error') console.error(frame.error);
if (frame.type === 'done') socket.close();
};dashboard.docs.code_examples
dashboard.docs.examples_intro
bash
# Non-streaming chat
curl -X POST https://octra.env.pm/api/openai/environments/chat/completions \
-H "Authorization: Bearer octra_YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "workflow/octra/YOUR_ENV_ID",
"messages": [{"role": "user", "content": "Hello!"}],
"temperature": 0.7
}'
# Streaming chat
curl -N -X POST https://octra.env.pm/api/openai/environments/chat/completions \
-H "Authorization: Bearer octra_YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "workflow/octra/YOUR_ENV_ID",
"messages": [{"role": "user", "content": "Hello!"}],
"stream": true
}'
# Async (background task)
curl -X POST https://octra.env.pm/api/openai/environments/chat/completions \
-H "Authorization: Bearer octra_YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "workflow/octra/YOUR_ENV_ID",
"messages": [{"role": "user", "content": "Create a REST API"}],
"runtime": true
}'dashboard.docs.error_handling
dashboard.docs.errors_intro
| dashboard.docs.parameter | dashboard.docs.type | common.required | common.description |
|---|---|---|---|
| 400 | dashboard.docs.http_bad_request | common.no | dashboard.docs.e_400 |
| 401 | dashboard.docs.http_unauthorized | common.no | dashboard.docs.e_401 |
| 404 | dashboard.docs.http_not_found | common.no | dashboard.docs.e_404 |
| 429 | dashboard.docs.http_too_many_requests | common.no | dashboard.docs.e_429 |
| 500 | dashboard.docs.http_internal_error | common.no | dashboard.docs.e_500 |
| 502 | dashboard.docs.http_bad_gateway | common.no | dashboard.docs.e_502 |
json
// Error response format
{
"error": {
"message": "Environment not found",
"type": "not_found_error",
"code": 404
}
}