Dike logoDocs

Execute hybrid legal search across legislation, court precedents, decrees, and regulations.

POST https://api.dike.it.com/v1/search
Authorization: Bearer dike_live_xxxxxxxx
Content-Type: application/json
Rendering diagram...

Request Parameters

{
  "query": "مسؤولية الناقل الجوي عن تأخير الرحلات وتلف الأمتعة",
  "top_k": 10,
  "filters": {
    "doc_type": ["legislation", "case_law"],
    "jurisdiction": "EG",
    "year_from": 1990,
    "year_to": 2026,
    "status": ["in_force"]
  },
  "rerank": true,
  "include_text": true
}

Body Schema

ParameterTypeDefaultConstraintsDescription
querystringRequired1–1000 charsThe natural language search query in Arabic or English.
top_kinteger101–50Number of top results to return.
filters.jurisdictionstringnull"EG", "SA", "AE"Restrict search to an ISO country code.
filters.doc_typestring[]nulllegislation, case_law, fatwa, regulation, decreeArray of document types to include.
filters.year_fromintegernull1800–2100Earliest Gregorian enactment year (inclusive).
filters.year_tointegernull1800–2100Latest Gregorian enactment year (inclusive).
filters.statusstring[]nullin_force, amended, repealed, unknownFilter by statutory validity status.
rerankbooleantruetrue or falseRun cross-encoder reranking over 4 × top_k candidates.
include_textbooleantruetrue or falseWhen false, omits snippet to minimize response bandwidth.

Code Examples

curl -X POST https://api.dike.it.com/v1/search \
  -H "Authorization: Bearer $DIKE_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "query": "مسؤولية الناقل الجوي عن تأخير الرحلات",
    "top_k": 5,
    "filters": {
      "jurisdiction": "EG",
      "status": ["in_force"]
    },
    "rerank": true,
    "include_text": true
  }'
import os
import httpx

client = httpx.Client(
    base_url="https://api.dike.it.com",
    headers={"Authorization": f"Bearer {os.getenv('DIKE_API_KEY')}"},
    timeout=10.0,
)

response = client.post(
    "/v1/search",
    json={
        "query": "مسؤولية الناقل الجوي عن تأخير الرحلات",
        "top_k": 5,
        "filters": {
            "jurisdiction": "EG",
            "status": ["in_force"],
        },
        "rerank": True,
        "include_text": True,
    },
)

response.raise_for_status()
data = response.json()
print(f"Retrieved {len(data['results'])} results in {data['took_ms']}ms (Fusion: {data['fusion']})")
const apiKey = process.env.DIKE_API_KEY;

async function searchLegalCorpus() {
  const res = await fetch('https://api.dike.it.com/v1/search', {
    method: 'POST',
    headers: {
      'Authorization': `Bearer ${apiKey}`,
      'Content-Type': 'application/json',
    },
    body: JSON.stringify({
      query: 'مسؤولية الناقل الجوي عن تأخير الرحلات',
      top_k: 5,
      filters: {
        jurisdiction: 'EG',
        status: ['in_force'],
      },
      rerank: true,
      include_text: true,
    }),
  });

  if (!res.ok) {
    throw new Error(`Search failed: ${res.statusText}`);
  }

  const data = await res.json();
  return data;
}

Response Schema

{
  "results": [
    {
      "canonical_id": "eg-leg-1999-17",
      "score": 0.942,
      "doc_type": "legislation",
      "title": "قانون التجارة رقم 17 لسنة 1999",
      "article_no": "217",
      "snippet": "يسأل الناقل الجوي عن الضرر الذي ينشأ عن هلاك الأمتعة أو تلفها أو تأخر وصولها أثناء النقل الجوي...",
      "year": 1999,
      "status": "in_force",
      "citation_string": "المادة 217 من قانون التجارة رقم 17 لسنة 1999",
      "meta": {
        "legal_domain": "commercial",
        "topics": ["air carriage", "carrier liability"]
      }
    }
  ],
  "took_ms": 138,
  "fusion": "rrf",
  "reranked": true
}

Response Fields

  • results[].canonical_id: Universal identifier for the document ({jurisdiction}-{doc_type}-{year}-{number}).
  • results[].score: Normalized relevance score (0.0 to 1.0).
  • results[].doc_type: Category (legislation, case_law, fatwa, decree, regulation).
  • results[].article_no: Specific article or clause number, if matched at the article level.
  • results[].snippet: Extracted text chunk (capped at 800 characters).
  • results[].citation_string: Formatted Arabic citation suitable for legal briefs and footnotes.
  • results[].meta: Optional document-specific metadata (e.g. court, session_date, fatwa_number).
  • took_ms: Total server processing time in milliseconds.
  • fusion: Retrieval method utilized ("rrf" for dense+sparse, "dense" for dense fallback).
  • reranked: Boolean indicating whether cross-encoder reranking was applied.

Error Codes

StatusCodeCause
401unauthorizedMissing, malformed, or revoked API key
422validation_errorMissing query or top_k outside valid range (1 to 50)
429rate_limitedExceeded per-minute rate limit for your tier
503upstream_unavailableVector search or embedding service temporary outage

See Error Catalog for problem details handling.

On this page