Skip to content

Routes

Complete reference for all Orbit dashboard routes.

Route Configuration

All routes are prefixed with the configured path (default: ai-orbit) and protected by the Authorize middleware.

php
Route::group([
    'domain' => config('ai-orbit.domain'),
    'prefix' => config('ai-orbit.path', 'ai-orbit'),
    'middleware' => ['web', Authorize::class],
], function () {
    // Orbit routes...
});

Route List

Dashboard

MethodURINameDescription
GET/orbit.dashboardMain dashboard with stats and breakdowns

Conversations

MethodURINameDescription
GET/conversationsorbit.conversations.indexThread explorer with filters
GET/conversations/{id}orbit.conversations.showMessage timeline for a conversation

Playground

MethodURINameDescription
GET/playgroundorbit.playground.indexList of discovered agents
GET/playground/{agent}orbit.playground.showSandbox for a specific agent

Traces

MethodURINameDescription
GET/traces/{id}orbit.traces.showExecution trace for a conversation

Usage & Analytics

MethodURINameDescription
GET/usageorbit.usage.indexToday's stats overview
GET/usage/dashboardorbit.usage.dashboardFull analytics with charts
GET/usage/pricingorbit.usage.pricingPricing matrix management
GET/usage/alertsorbit.usage.alertsBudget alert configuration
GET/usage/healthorbit.usage.healthProvider health monitoring

Prompt Lab

MethodURINameDescription
GET/prompt-laborbit.prompt-lab.indexPrompt Lab session list
GET/prompt-lab/session/{id}orbit.prompt-lab.showView a specific session

Audit

MethodURINameDescription
GET/auditorbit.audit.indexAudit dashboard with PII scanner

Exports

MethodURINameDescription
POST/export/pest/{id}orbit.export.pestExport conversation as Pest test
POST/export/json/{id}orbit.export.jsonExport conversation as JSONL

Prompts

MethodURINameDescription
GET/promptsorbit.prompts.indexPrompt Library

Custom Domains

If you've configured a custom domain in config/ai-orbit.php:

php
'domain' => 'orbit.myapp.test',

Routes will be available at:

http://orbit.myapp.test/
http://orbit.myapp.test/conversations
http://orbit.myapp.test/playground

Generating URLs

Use route names to generate URLs programmatically:

php
// Named routes
route('orbit.dashboard');           // /ai-orbit
route('orbit.conversations.show', ['id' => 'abc-123']); // /ai-orbit/conversations/abc-123
route('orbit.playground.show', ['agent' => 'App\AI\Agents\SupportAgent']);
route('orbit.traces.show', ['id' => 'abc-123']);

Customizing Routes

To add custom routes to the Orbit route group, create a service provider that loads additional routes:

php
// app/Providers/OrbitRouteServiceProvider.php
namespace App\Providers;

use Illuminate\Support\Facades\Route;
use Illuminate\Support\ServiceProvider;

class OrbitRouteServiceProvider extends ServiceProvider
{
    public function boot(): void
    {
        Route::group([
            'prefix' => config('ai-orbit.path', 'ai-orbit'),
            'middleware' => array_merge(
                config('ai-orbit.middleware', ['web']),
                [\Ashrafic\AiOrbit\Http\Middleware\Authorize::class]
            ),
        ], function () {
            Route::get('/custom-report', [CustomReportController::class, 'index']);
        });
    }
}

Route Middleware

All routes automatically include:

  1. Configured middleware — From config/ai-orbit.php (middleware key)
  2. Authorize middleware — Automatically appended; checks the viewAiOrbit Gate

To add additional middleware, update the config:

php
'middleware' => ['web', 'auth', 'verified'],