DIKIGOROS AI API Documentation

The DIKIGOROS AI API provides programmatic access to Cyprus case law search and advanced AI-powered legal analysis. Build intelligent legal research tools with access to comprehensive case law databases, automated information extraction, and multilingual translation capabilities. Available on Professional and Firm plans.

Authentication

All API requests require an API key in the Authorization header. Generate API keys in the app under Settings → API Keys.

Authentication Header

Authorization: Bearer dkgr_live_xxxxxxxxxxxxx

Example Request

curl -H "Authorization: Bearer dkgr_live_xxxxxxxxxxxxx" \
  https://api.dikigoros.ai/api/courts

Note: Never share your API key publicly. Keep it secure and rotate it regularly through your account settings.

Endpoints

The API provides the following endpoints for case law search, analysis, and information extraction:

Get Case Details

GET /api/case/:id

Retrieve full details for a specific case including judgment text and legal information.

URL Parameters

id string Case ID (e.g., "case_123456")

Example Request

curl "https://api.dikigoros.ai/api/case/case_123456" \
  -H "Authorization: Bearer dkgr_live_xxxxxxxxxxxxx"
Example Response
{
  "id": "case_123456",
  "title": "Doe v. Smith",
  "court": "District Court of Nicosia",
  "date": "2022-05-15",
  "text": "[Full judgment text...]",
  "url": "https://...",
  "area_of_law": "Contract Law",
  "parties": ["Doe", "Smith"],
  "extraction": { /* AI-extracted data */ }
}

AI-Powered Legal Research

POST /api/ai/ask

Ask AI-powered questions about case law with intelligent search and analysis of relevant cases.

Request Body

question string Legal question or research query
court_category string? Optional: Filter by court category
year_from integer? Optional: Cases from year
year_to integer? Optional: Cases until year
area_of_law string? Optional: Filter by area of law

Example Request

curl -X POST "https://api.dikigoros.ai/api/ai/ask" \
  -H "Authorization: Bearer dkgr_live_xxxxxxxxxxxxx" \
  -H "Content-Type: application/json" \
  -d '{
    "question": "What are the remedies for breach of contract?",
    "area_of_law": "contract",
    "year_from": 2015
  }'
Example Response
{
  "answer": "Based on Cyprus case law, remedies for breach of contract include...",
  "cases": [
    {
      "id": "case_789",
      "title": "Case Title",
      "relevance": 0.95
    }
  ]
}

Extract Case Information

POST /api/ai/extract

Extract key legal information from a case using AI analysis (holdings, principles, outcomes, etc.).

Request Body

case_id string Case ID to extract information from

Example Request

curl -X POST "https://api.dikigoros.ai/api/ai/extract" \
  -H "Authorization: Bearer dkgr_live_xxxxxxxxxxxxx" \
  -H "Content-Type: application/json" \
  -d '{"case_id": "case_123456"}'
Example Response
{
  "extraction": {
    "key_holdings": ["Holding 1", "Holding 2"],
    "legal_principles": ["Principle 1"],
    "outcome": "Court decided in favor of...",
    "summary": "Case summary..."
  }
}

Translate Legal Text

POST /api/ai/translate_text

Translate legal text between English and Greek with legal term preservation.

Request Body

text string Text to translate
target_lang string Target language: "en" (English) or "el" (Greek)

Example Request

curl -X POST "https://api.dikigoros.ai/api/ai/translate_text" \
  -H "Authorization: Bearer dkgr_live_xxxxxxxxxxxxx" \
  -H "Content-Type: application/json" \
  -d '{"text": "breach of contract", "target_lang": "el"}'
Example Response
{
  "translation": "παραβίαση σύμβασης"
}

Courts & Court Categories

GET /api/courts

List all available courts in the Cyprus legal system.

curl "https://api.dikigoros.ai/api/courts" \
  -H "Authorization: Bearer dkgr_live_xxxxxxxxxxxxx"
GET /api/court_categories

Get court hierarchy with categories and case counts.

curl "https://api.dikigoros.ai/api/court_categories" \
  -H "Authorization: Bearer dkgr_live_xxxxxxxxxxxxx"
GET /api/stats

Get database statistics (case counts, coverage dates, etc.).

curl "https://api.dikigoros.ai/api/stats" \
  -H "Authorization: Bearer dkgr_live_xxxxxxxxxxxxx"

Rate Limits

API requests are rate limited based on your subscription plan. Rate limits reset every hour.

Plan Requests/Hour Search Queries/Day AI Operations/Day
Free 100 10 5
Professional 1,000 200 100
Firm 5,000 Unlimited Unlimited

Rate limit headers: All responses include the following headers:

X-RateLimit-Limit: 1000
X-RateLimit-Remaining: 950
X-RateLimit-Reset: 1640000000

Error Codes

The API returns standard HTTP status codes. Error responses include a JSON body with additional details.

Status Code Description
401 unauthorized Invalid or missing API key
403 forbidden Feature requires higher plan (Professional or Firm)
429 rate_limited Too many requests. Retry after Retry-After seconds
500 server_error Internal server error. Try again later

Example Error Response

{
  "error": {
    "code": "rate_limited",
    "message": "Too many requests. Please try again in 30 seconds."
  }
}