oruk-ai Oruk Zero API
The OrukZero API from oruk-ai — 2 operation(s) for orukzero.
The OrukZero API from oruk-ai — 2 operation(s) for orukzero.
Every API here is available over the APIs.io API and to AI agents over MCP.
One button, every client — Claude, Cursor, VS Code and the rest.
https://apis.io/mcp
find_apisBrowse and filter every API in the catalog.get_api_artifactsOne API's artifacts, grouped by type.get_openapiThe primary OpenAPI for this API.find_similar_apisAPIs that look like this one.apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.resolveTurn a domain, URL or GitHub org into the provider it belongs to.find_cohortsEvery scored population of providers in the catalog.curl "https://apis.io/api/v1/apis/oruk-ai:oruk-ai-orukzero-api"
curl "https://apis.io/api/v1/apis?limit=25"
Discovery needs no key. Ratings and market analysis are Pro.
Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.
A second provider on the same verified email joins the account you already have.
openapi: 3.2.0
info:
title: oruk Speech Oruk Zero API
version: 1.0.0
description: HTTP file API for English transcription, emotion detection, speaking style, speech analysis, and speaking-proficiency scoring. Realtime is a separate multilingual WebSocket preview. Subscription models use plan minutes. Orukeet is an English preview included in every subscription at $0.00045 per audio minute ($0.027 per audio hour); optional tasks add their published rates. Orukeet usage.cost_microusd is usage valued at task rates, not an additional charge when covered by the monthly allowance. Only excess usage is billed. Existing credit-only accounts retain their credit balance. See https://oruk.ai/docs#orukeet and https://oruk.ai/pricing. Spectra-2 (oruk-spectra-2) adds 25-language transcription and 31 clip-level emotion/style scores through the main analysis and transcription routes. Uses shared speech understanding plan minutes. See https://oruk.ai/docs#spectra-2.
servers:
- url: https://speech-api.oruk.ai
description: Production
security:
- bearerAuth: []
tags:
- name: OrukZero
paths:
/v1/audio/synthetic-speech:
post:
tags:
- OrukZero
summary: Detect human or AI speech with OrukZero
description: English audio, 1–60 seconds, WAV/FLAC/OGG/MP3, at most 12 MiB. Uncalibrated scores with a fixed 0.5 threshold. A valid Oruk API key belonging to an active account is required; no paid subscription is needed; OrukZero is included at no extra charge and consumes no credits or plan minutes. Long-audio aggregation is experimental.
operationId: detect_v1_audio_synthetic_speech_post
requestBody:
content:
multipart/form-data:
schema:
properties:
file:
type: string
format: binary
model:
type: string
enum:
- orukzero
default: orukzero
additionalProperties: false
type: object
required:
- file
required: true
responses:
'200':
description: Successful Response
content:
application/json:
schema:
$ref: '#/components/schemas/SyntheticSpeechDetectionResponse'
'400':
description: Unsupported model
'401':
description: Invalid, revoked or expired API key, or unavailable account access
'408':
description: Audio upload timed out
'413':
description: Audio exceeds 12 MiB
'415':
description: Expected multipart/form-data
'422':
description: Invalid audio or multipart upload
'429':
description: Per-key rate limit or capacity limit; honor Retry-After
headers:
Retry-After:
description: Seconds to wait before retrying
schema:
type: integer
minimum: 1
'503':
description: Account verification or detector temporarily unavailable
security:
- bearerAuth: []
/v1/models/orukzero/access:
get:
summary: Check OrukZero account access
description: Read-only account access check. A valid API key on an active Oruk account is required. Free and trial accounts are eligible; no paid subscription is needed. No credits or plan minutes are consumed.
tags:
- OrukZero
security:
- bearerAuth: []
responses:
'200':
description: Active account; OrukZero is included at no extra charge
content:
application/json:
schema:
type: object
required:
- model
- customer
- entitlement
- billed
- consumes_credits
- consumes_plan_minutes
properties:
model:
const: orukzero
customer:
type: object
required:
- key_id
- organization_id
- plan
properties:
key_id:
type: string
organization_id:
type: string
plan:
type: string
entitlement:
const: included_with_account
billed:
const: false
consumes_credits:
const: false
consumes_plan_minutes:
const: false
'401':
description: Invalid, revoked or expired API key, or unavailable account access
'503':
description: Account service unavailable
operationId: getV1ModelsOrukzeroAccess
x-operation-id-source: derived
components:
schemas:
SyntheticSpeechDetectionResponse:
properties:
object:
type: string
const: synthetic_speech.result
title: Object
model:
type: string
const: orukzero
title: Model
model_revision:
type: string
const: 2026-10-05-adapt-216
title: Model Revision
duration:
type: number
maximum: 60
minimum: 1
title: Duration
prediction:
type: string
enum:
- human
- synthetic
title: Prediction
synthetic_score:
type: number
maximum: 1
minimum: 0
title: Synthetic Score
threshold:
type: number
const: 0.5
title: Threshold
score_type:
type: string
const: uncalibrated_sigmoid
title: Score Type
aggregation:
type: string
const: coverage_weighted_mean_logit
title: Aggregation
segments:
items:
$ref: '#/components/schemas/SyntheticSpeechSegment'
type: array
maxItems: 10
minItems: 1
title: Segments
warnings:
items:
type: string
type: array
maxItems: 8
title: Warnings
id:
type: string
title: Id
usage:
additionalProperties: true
type: object
title: Usage
additionalProperties: false
type: object
required:
- object
- model
- model_revision
- duration
- prediction
- synthetic_score
- threshold
- score_type
- aggregation
- segments
- warnings
- id
- usage
title: DetectionResponse
SyntheticSpeechSegment:
properties:
start:
type: number
maximum: 60
minimum: 0
title: Start
end:
type: number
maximum: 60
exclusiveMinimum: 0
title: End
synthetic_score:
type: number
maximum: 1
minimum: 0
title: Synthetic Score
prediction:
type: string
enum:
- human
- synthetic
title: Prediction
additionalProperties: false
type: object
required:
- start
- end
- synthetic_score
- prediction
title: Segment
securitySchemes:
bearerAuth:
type: http
scheme: bearer
bearerFormat: oruk API key
HTTPBearer:
type: http
scheme: bearer
x-orukeet:
model: oruk-orukeet
billing_basis: subscription
usd_per_audio_minute: '0.00045'
optional_tasks:
emotion_detection: '0.0080'
diarize: '0.0040'
max_audio_seconds: 60
max_multipart_bytes: 4194304
websocket_url: wss://orukeet-direct.oruk.ai/v1/audio/transcriptions/stream
docs: https://oruk.ai/docs#orukeet
x-resonance-2:
id: oruk-resonance-2
availability: preview
endpoint: /v1/audio/resonance-2
documentation: https://oruk.ai/docs#resonance-2
schema: https://oruk.ai/resonance-2.openapi.json
pricing: Same shared plan minutes and legacy affect rate as Resonance 1.
x-spectra-2:
model: oruk-spectra-2
docs: https://oruk.ai/docs#spectra-2
lifecycle: Stable
supported_tasks:
- transcription
- analysis
transcription_languages:
- bg
- hr
- cs
- da
- nl
- en
- et
- fi
- fr
- de
- el
- hu
- it
- lv
- lt
- mt
- pl
- pt
- ro
- ru
- sk
- sl
- es
- sv
- uk
language_details:
- code: bg
name: Bulgarian
- code: hr
name: Croatian
- code: cs
name: Czech
- code: da
name: Danish
- code: nl
name: Dutch
- code: en
name: English
- code: et
name: Estonian
- code: fi
name: Finnish
- code: fr
name: French
- code: de
name: German
- code: el
name: Greek
- code: hu
name: Hungarian
- code: it
name: Italian
- code: lv
name: Latvian
- code: lt
name: Lithuanian
- code: mt
name: Maltese
- code: pl
name: Polish
- code: pt
name: Portuguese
- code: ro
name: Romanian
- code: ru
name: Russian
- code: sk
name: Slovak
- code: sl
name: Slovenian
- code: es
name: Spanish
- code: sv
name: Swedish
- code: uk
name: Ukrainian
language_detection: automatic
min_audio_seconds: 0.045
max_audio_seconds: 60
max_file_bytes: 4194304
max_multipart_bytes: 4210688
sample_rate: 16000
channels: 1
formats:
- wav
- flac
- pcm16
- float32le
score_scope: clip
emotion_labels:
- happy
- excited
- hopeful
- sad
- worried
- angry
- frustrated
- disappointed
- scared
- disgusted
- surprised
- embarrassed
- proud
- relieved
- neutral
style_labels:
- energetic
- passionate
- irritated
- warm
- playful
- sarcastic
- deadpan
- hesitant
- confident
- sincere
- skeptical
- tired
- formal
- casual
- impatient
- distracted
subscription_allowance: shared_audio_minutes
minimum_billable_seconds: 1
reference_usd_per_audio_minute:
transcription: '0.0080'
analysis: '0.0120'
streaming:
url: wss://speech-api.oruk.ai/v1/audio/spectra-2/stream
authentication: Authorization bearer header from server clients
input: mono 16 kHz PCM16 little-endian binary frames
max_frame_bytes: 32768
max_audio_seconds: 60
finalization: explicit finish message
output: one final Spectra2Result after finish
provisional_results: false
prepared_connection:
session_endpoint: /v1/audio/sessions
connection_endpoint: /v1/audio/stream-sessions
lifetime_seconds: 30
server_only: true
recording_limit: Use max_audio_seconds from ready and finish before expires_at_ms.