Skip to main content

API Overview

The Serko Northsky API is a RESTful API built with FastAPI, providing endpoints for travel management operations.

Base URL

EnvironmentURL
Localhttp://localhost:8000
Developmenthttps://api.dev.serko-northsky.com
Productionhttps://api.serko-northsky.com

API Documentation

The API is documented using OpenAPI (Swagger). Access the interactive documentation:

  • Swagger UI: /docs
  • ReDoc: /redoc
  • OpenAPI JSON: /openapi.json

API Structure

/api
├── /companies # Company management
├── /conversations # AI conversation history
├── /hotels # Hotel search results
├── /loyalty-programs # Loyalty program memberships
├── /policy # Company travel policies
├── /users # User profile management
└── /database # Database utilities (dev only)

Request Format

Headers

All requests should include:

Content-Type: application/json
Authorization: Bearer {firebase_id_token}

Request Body

POST and PATCH requests use JSON:

{
"field_name": "value",
"nested": {
"field": "value"
}
}

Response Format

Success Response

{
"id": "uuid",
"created_at": "2025-01-15T10:30:00Z",
"field": "value"
}

Error Response

{
"detail": "Error message",
"errors": [
{
"loc": ["body", "field_name"],
"msg": "Field is required",
"type": "value_error.missing"
}
]
}

HTTP Status Codes

CodeMeaning
200Success
201Created
204No Content
400Bad Request
401Unauthorized
403Forbidden
404Not Found
422Validation Error
429Rate Limited
500Internal Server Error

Common Endpoints

Users

MethodEndpointDescription
GET/api/users/profileGet current user profile
PATCH/api/users/profileUpdate user profile
GET/api/users/preferencesGet user preferences
PUT/api/users/preferencesUpdate preferences

Companies

MethodEndpointDescription
POST/api/companiesCreate company
GET/api/companies/{id}Get company details
PATCH/api/companies/{id}Update company

Policies

MethodEndpointDescription
POST/api/policyCreate policy
GET/api/policy/{id}Get policy with rules
PATCH/api/policy/{id}Update policy

Hotels

MethodEndpointDescription
GET/api/hotels/rubric/{id}Get hotels by rubric

Loyalty Programs

MethodEndpointDescription
GET/api/loyalty-programsList all programs
GET/api/loyalty-programs/userGet user memberships
POST/api/loyalty-programs/userAdd membership

AI Agent Integration

The backend integrates AI agents through the conversation endpoint. AI tools are implemented using PydanticAI agents rather than direct API endpoints.

See AI Orchestration for details on the agent system.

Agent Tools

ToolAgentDescription
search_accommodationsTrip PlannerSearch hotels via Booking.com + Sabre
search_flightsTrip PlannerSearch flights via QPX Connect
get_search_resultsTrip PlannerRetrieve ranked results
recommend_optionsTrip PlannerSelect top recommendations
create_trip_stepContextAdd flight/accommodation step
add_preferenceContextAdd trip-specific preference

Rate Limiting

API endpoints are rate-limited:

TierRequests/Minute
Free60
Standard300
Enterprise1000

Rate limit headers:

X-RateLimit-Limit: 60
X-RateLimit-Remaining: 45
X-RateLimit-Reset: 1642687200

Pagination

List endpoints support pagination:

GET /api/hotels/rubric/{id}?page=1&page_size=20

Response includes pagination metadata:

{
"items": [...],
"total": 100,
"page": 1,
"page_size": 20,
"pages": 5
}