Install. Authenticate.
Detect.
Client libraries for the ozDNA gateway — same POST /v1/detect contract documented in the API reference. Sandbox keys use api.sandbox.ozdna.com.
Python
Sync client with typed responses. Requires Python 3.9+.
pip install ozdna
import os from ozdna import OzDNA client = OzDNA( api_key=os.environ["OZDNA_API_KEY"], base_url="https://api.sandbox.ozdna.com", # sandbox ) result = client.detect( text="This methodology applies a mixed-methods approach...", mode="academic", language="en", ) print(result.ai_probability) # 0.0 – 1.0 print(result.request_id) # X-Request-Id for support
from ozdna import AsyncOzDNA async with AsyncOzDNA(api_key="ozdna_sk_test_...") as client: result = await client.detect(text="Sample thesis excerpt...", mode="academic")
Package registry publish — Q3 2026. Until then use the requests example in API docs.
Node.js
TypeScript-first SDK for server-side and edge runtimes. Node 18+ or Bun.
npm install @ozdna/sdk # or pnpm add @ozdna/sdk
import { OzDNA } from '@ozdna/sdk'; const client = new OzDNA({ apiKey: process.env.OZDNA_API_KEY, baseURL: 'https://api.sandbox.ozdna.com', }); const result = await client.detect({ text: 'Segment-level analysis for production RAG workflows.', mode: 'financial', language: 'en', }); console.log(result.aiProbability); console.log(result.segments); // per-span scores when enabled
import { OzDNA, OzDNAError } from '@ozdna/sdk'; try { await client.detect({ text, mode: 'legal' }); } catch (err) { if (err instanceof OzDNAError && err.status === 429) { console.warn('Rate limited — retry after', err.retryAfter); } }
npm publish — Q3 2026. Interim: fetch example.
Go
Idiomatic client with context cancellation and structured errors.
go get github.com/ozdna/ozdna-go@v0.1.0
package main import ( "context" "fmt" "log" "os" "github.com/ozdna/ozdna-go" "github.com/ozdna/ozdna-go/detect" ) func main() { client := ozdna.NewClient( os.Getenv("OZDNA_API_KEY"), ozdna.WithBaseURL("https://api.sandbox.ozdna.com"), ) resp, err := client.Detect(context.Background(), detect.Request{ Text: "Compliance monitoring corpus excerpt...", Mode: detect.ModeFinancial, Language: "en", }) if err != nil { log.Fatal(err) } fmt.Printf("ai_probability=%.3f request_id=%s\n", resp.AIProbability, resp.RequestID) }
Module tag v0.1.0 — early access on request. Full reference: POST /v1/detect.
Java
JVM client for Spring services and enterprise integrations. Java 17+.
<dependency> <groupId>com.ozdna</groupId> <artifactId>ozdna-java</artifactId> <version>0.1.0</version> </dependency>
implementation "com.ozdna:ozdna-java:0.1.0"
import com.ozdna.OzDNAClient; import com.ozdna.models.DetectRequest; import com.ozdna.models.DetectResponse; OzDNAClient client = OzDNAClient.builder() .apiKey(System.getenv("OZDNA_API_KEY")) .baseUrl("https://api.sandbox.ozdna.com") .build(); DetectResponse result = client.detect(DetectRequest.builder() .text("Regulatory delta summary for BDDK scope...") .mode("financial") .language("tr") .build()); System.out.println(result.getAiProbability());
Maven Central — Q4 2026. Contact hello@ozdna.com for enterprise early access.
REST API
Language-agnostic HTTP — use from any stack, curl, or low-code integrations.
https://api.ozdna.com # production (beta) https://api.sandbox.ozdna.com # sandbox
curl -X POST https://api.sandbox.ozdna.com/v1/detect \ -H "Authorization: Bearer $OZDNA_API_KEY" \ -H "Content-Type: application/json" \ -H "X-Request-Id: $(uuidgen)" \ -d '{ "text": "This methodology applies a mixed-methods approach...", "mode": "academic", "language": "en" }'
{
"ai_probability": 0.87,
"mode": "academic",
"language": "en",
"segments": [...],
"request_id": "req_abc123"
}
Full reference: POST /v1/detect · Error codes · OpenAPI
Need an API key?
Sandbox credentials ship with early access. Production keys require invite approval.