Skip to main content

Search API

GET /api/v1/search
Query Parameters:
  • q - Search query (required)
  • repository - Filter by repository ID
  • file_types - Filter by type: model, controller, service, concern
  • paths - Filter by file paths (glob patterns)
  • min_relevance - Minimum relevance score (0.0-1.0)
  • limit - Max results (default: 20)
Request:
GET /api/v1/search?q=authentication&repository=repo_abc123&limit=10
Response:
{
  "results": [
    {
      "id": "chunk_xyz789",
      "repository_id": "repo_abc123",
      "file_path": "app/controllers/sessions_controller.rb",
      "line_start": 15,
      "line_end": 28,
      "relevance": 0.92,
      "code": "def create\n  user = User.find_by(email: params[:email])\n  if user&.authenticate(params[:password])...",
      "summary": "Session creation with password authentication",
      "language": "ruby"
    }
  ],
  "total": 45,
  "query_time_ms": 23
}
GET /api/v1/search/related
Query Parameters:
  • file - File path to find related code for
  • function - Optional function name
  • repository - Repository ID
  • limit - Max results
Request:
GET /api/v1/search/related?file=app/services/payment_service.rb&repository=repo_abc123
Response:
{
  "results": [
    {
      "file_path": "app/models/transaction.rb",
      "relevance": 0.88,
      "relationship": "used_by",
      "summary": "Transaction model storing payment records"
    },
    {
      "file_path": "app/controllers/payments_controller.rb",
      "relevance": 0.85,
      "relationship": "uses",
      "summary": "Controller calling PaymentService"
    }
  ]
}

Get Code Chunk

GET /api/v1/chunks/:id
Response:
{
  "id": "chunk_xyz789",
  "repository_id": "repo_abc123",
  "file_path": "app/controllers/sessions_controller.rb",
  "line_start": 15,
  "line_end": 28,
  "code": "def create\n  user = User.find_by(email: params[:email])...",
  "language": "ruby",
  "type": "method",
  "name": "create",
  "parent": "SessionsController",
  "embedding_model": "all-MiniLM-L6-v2"
}

Get File Context

GET /api/v1/chunks/:id/context
Query Parameters:
  • lines_before - Lines of context before (default: 10)
  • lines_after - Lines of context after (default: 10)
Response:
{
  "chunk_id": "chunk_xyz789",
  "file_path": "app/controllers/sessions_controller.rb",
  "context": {
    "before": "class SessionsController < ApplicationController\n  skip_before_action :authenticate!...",
    "chunk": "def create\n  user = User.find_by(email: params[:email])...",
    "after": "end\n\ndef destroy\n  session[:user_id] = nil..."
  },
  "line_range": {
    "start": 5,
    "end": 38
  }
}