Provider graph
Model professionals, services, and eligibility attributes.

Orita helps AI applications onboard professionals, search their own provider networks, apply eligibility rules, resolve real-time availability, and complete booking workflows through one API.
Your providers. Your customer experience. Orita handles the infrastructure.
Find a Spanish-speaking therapist who offers virtual sessions, accepts Sanitas, and is available next Tuesday afternoon.
Matches every required condition and is the earliest available afternoon appointment.
/api/v2/resolutions/res_7812/confirm201 confirmedModel professionals, services, and eligibility attributes.
Separate required constraints from ranking preferences.
Return valid provider-and-time options with reasons.
Hold, confirm once, and synchronize the lifecycle.
Traditional scheduling assumes the host is already known. But provider-based applications begin with a customer need and must determine which professional is eligible, available, and appropriate.
Orita turns that need into ranked, explainable provider-and-time options, then safely completes the booking lifecycle.
Scheduling tools find time.Orita resolves service delivery.
Orita starts before the calendar lookup and continues after the recommendation.
Receive a structured request from an AI application.
Apply service, language, insurance, license, and organization rules.
Check schedules and connected calendars only for eligible providers.
Return valid provider-time combinations with reason codes and explanations.
Hold, revalidate, and confirm the selected option exactly once.
Keep every system consistent with signed, retryable webhooks.
Watch Orita search a provider network, apply eligibility rules, resolve availability, confirm a booking, and synchronize every system.
One request searches your provider network, applies hard constraints and preferences, and returns valid options your application can safely execute.
import { OritaClient } from "orita-sdk";
const orita = new OritaClient({
apiKey: process.env.ORITA_API_KEY
});
const resolution = await orita.resolveScheduling({
service: "therapy",
dateRange: {
from: "2026-08-05",
to: "2026-08-12",
timezone: "America/New_York"
},
constraints: {
languageCodes: { anyOf: ["es"] },
modalityCodes: { anyOf: ["virtual"] },
acceptsNewClients: true
},
preferences: {
dayParts: ["afternoon"],
earliestAvailable: true
},
limit: 5
});
const option = resolution.options[0];
await orita.holdOption(
resolution.resolutionId,
option.optionId,
120 // ttlSeconds — hold expires in 2 minutes
);
const booking = await orita.confirmResolution(
resolution.resolutionId,
{
optionId: option.optionId,
customer: {
name: "James Park",
email: "james@example.com"
}
}
);{
"resolutionId": "res_7812",
"status": "resolved",
"summary": {
"providersScanned": 126,
"eligibleProviders": 14,
"providersWithAvailability": 4
},
"options": [
{
"optionId": "opt_92ab",
"provider": {
"id": "pro_82fa1",
"displayName": "Dr. Ana GarcĂa"
},
"slot": {
"start": "2026-08-05T15:00:00-04:00"
},
"score": 94,
"reason": "Earliest afternoon slot matching
all hard constraints."
}
]
}Every provider is evaluated against explicit rules. Every returned option explains why it qualified and why it ranked where it did.
Orita does not stop at a recommendation. It carries the selected option through a reliable, auditable booking lifecycle.
getSlots()
↓
book()Use direct booking for a specific professional and service.
resolveScheduling()
↓
holdOption()
↓
confirmResolution()Use provider resolution to search, rank, explain, and confirm.
Model specialties, languages, modalities, insurance, license regions, accepting-new-client status, services, and availability in one provider graph.
Orita is building the provider resolution layer, starting with scheduling.
Provider resolution is the process of determining which professional in a network is eligible and available to fulfill a specific customer request. Orita applies deterministic eligibility rules, checks real-time availability, ranks valid options, and explains every result.
Use Orita when your application receives a service request and needs to determine which professional should handle it. If you already know the provider and only need to find a free time slot, a simpler scheduling API may be sufficient.
No. Orita is infrastructure. You connect and manage your own provider network. Orita searches it, applies your rules, and returns results.
No. A resolution returns valid options. A booking is created only when you explicitly call confirmResolution with the customer’s approval.
Every mutating request supports idempotency keys. Atomic confirmation revalidates availability before writing the booking, preventing race conditions.
Every option includes matched constraints, ranking factors, a plain-language reason, and a list of excluded providers with exclusion codes.
Yes. Agents can call the Resolution API directly via REST, Node SDK, Python SDK, or MCP. Confirmation still requires explicit customer approval in the agent flow.
Orita returns a zero-result resolution with exclusion reasons for every provider. Your application can use that data to adjust constraints or prompt the user to broaden their request.
Use getSlots() + book() when your application already knows which professional should handle the request and only needs to find an available time.
No. Orita is provider resolution and booking infrastructure for professional-service networks. It can connect to calendars, but its primary job is eligibility and resolution — not calendar management.
Import your provider network, define your rules, and return valid, explained provider-and-time options through one API.