Documentation
Canonical Reference
Private local M1 candidate. Hosting and external acceptance remain open.
Versioned canonical source. An update timestamp is not supplied by this content registry.
PDF uses your browser’s print dialog. It is not a hosted export service.
Public API reference
Read-only canonical contract projection. Availability follows the contract status below; this page does not execute requests.
1. Description
Draft getCurrentUser
Contract status: owner-approved/runtime-not-implemented
2. Address
GET /me
Relative to your configured Control API base. No hosted endpoint is contacted by this page.
3. Request parameters
No property table is declared at this schema level.
4. Response parameters
200
Locally implemented safe current User response.
| Name | Type | Location | Required | Description |
|---|---|---|---|---|
data | object | response | Required | #/components/schemas/CurrentUserResource |
Required is relative to this object when it is present.
response.data
Required is relative to this object when it is present.
| Name | Type | Location | Required | Description |
|---|---|---|---|---|
id | string | response | Required | No additional description in the canonical contract. |
status | string | response | Required | No additional description in the canonical contract. |
display_name | string | response | Required | No additional description in the canonical contract. |
created_at | string | response | Required | No additional description in the canonical contract. |
memberships | array<object> | response | Required | No additional description in the canonical contract. |
memberships_truncated | boolean | response | Required | No additional description in the canonical contract. |
projects | array<object> | response | Required | No additional description in the canonical contract. |
projects_truncated | boolean | response | Required | No additional description in the canonical contract. |
response.data.memberships[]
Required is relative to this object when it is present.
| Name | Type | Location | Required | Description |
|---|---|---|---|---|
organization_id | string | response | Required | No additional description in the canonical contract. |
user_id | string | response | Required | No additional description in the canonical contract. |
role | string | response | Required | No additional description in the canonical contract. |
status | string | response | Required | No additional description in the canonical contract. |
created_at | string | response | Required | No additional description in the canonical contract. |
response.data.projects[]
Required is relative to this object when it is present.
| Name | Type | Location | Required | Description |
|---|---|---|---|---|
id | string | response | Required | No additional description in the canonical contract. |
organization_id | string | response | Required | No additional description in the canonical contract. |
name | string | response | Required | No additional description in the canonical contract. |
status | string | response | Required | No additional description in the canonical contract. |
default_region | string | response | Required | No additional description in the canonical contract. |
created_at | string | response | Required | No additional description in the canonical contract. |
environments | array<object> | response | Required | No additional description in the canonical contract. |
response.data.projects[].environments[]
Required is relative to this object when it is present.
| Name | Type | Location | Required | Description |
|---|---|---|---|---|
id | string | response | Required | No additional description in the canonical contract. |
kind | string | response | Required | No additional description in the canonical contract. |
status | string | response | Required | No additional description in the canonical contract. |
enabled | boolean | response | Required | No additional description in the canonical contract. |
5. Request example
The canonical contract does not provide a request-body example. No sample credential or request body has been invented.
6. Response example
The canonical contract does not provide a response example. Use the response parameter definition above.
7. Errors
- default: Canonical OneSay error response.
<!-- Generated from OneSay canonical specs. Source SHA-256: b4b9c06106eeaacd9b3d12592b48d82b4247853bea70c203aa8fe5e76500d37f. DO NOT EDIT. -->
Canonical Registry Catalog#
Spec digest: b4b9c06106eeaacd9b3d12592b48d82b4247853bea70c203aa8fe5e76500d37f
Capabilities#
| ID | Status | Clients |
|---|---|---|
speech.transcription.streaming.v1 | planned | javascript, esp32 |
capability.platform.discovery | planned | javascript, mcp |
Actions#
| ID | Status | Risk | Grants | MCP |
|---|---|---|---|---|
room.create | planned | R2 | room.create | onesay.rooms.create |
room.close | planned | R2 | room.close | onesay.rooms.close |
task.cancel | planned | R2 | task.cancel | onesay.tasks.cancel |
application.requirements.read | planned | R1 | application.requirements.read | onesay.application.requirements.read |
application.requirements.replace | planned | R2 | application.manage | onesay.application.requirements.replace |
application.compatibility.read | planned | R1 | application.compatibility.read | onesay.application.compatibility.read |
app.session.create | planned | R2 | app.session.create | onesay.app.session.create |
app.session.read | planned | R1 | app.session.read | onesay.app.session.read |
app.session.close | planned | R2 | app.session.close | onesay.app.session.close |
app.session.revoke | planned | R3 | app.session.revoke | onesay.app.session.revoke |
app.session.capabilities.read | planned | R1 | app.session.capabilities.read | onesay.app.session.capabilities.read |
signal.open | planned | R2 | source.use, signal.audio.publish | not-applicable |
delegation.create | planned | R3 | delegation.create | not-applicable |
delegation.read | planned | R1 | delegation.read | not-applicable |
delegation.revoke | planned | R3 | delegation.revoke | not-applicable |
data.sync.scope.enable | planned | R3 | data.sync.control | not-applicable |
data.sync.scope.disable | planned | R3 | data.sync.control | not-applicable |
rtc.connection.create | planned | R2 | room.join | not-applicable |
rtc.connection.read | planned | R1 | room.join | not-applicable |
rtc.connection.revoke | planned | R2 | room.join | not-applicable |
rtc.media_key.read | planned | R1 | room.join | not-applicable |
rtc.publication.create | planned | R2 | room.join, source.use | not-applicable |
rtc.publication.end | planned | R2 | room.join | not-applicable |
rtc.subscription.update | planned | R2 | room.join, rtc.subscription.configure | not-applicable |
rtc.packet.policy.update | planned | R2 | room.join, rtc.packet.configure | not-applicable |
agent.execution.create | planned | R2 | room.join, source.use, signal.audio.subscribe, agent.execution.create | not-applicable |
agent.execution.read | planned | R1 | agent.execution.read | not-applicable |
agent.execution.stop | planned | R2 | agent.execution.stop | not-applicable |
Public API operations#
| Operation | Method | Path | Grants | Status |
|---|---|---|---|---|
getCurrentUser | GET | /me | authentication policy | owner-approved/runtime-not-implemented |
createOrganization | POST | /organizations | authentication policy | owner-approved/runtime-not-implemented |
listOrganizations | GET | /organizations | organization.read | owner-approved/runtime-not-implemented |
getOrganization | GET | /organizations/{organization_id} | organization.read | owner-approved/runtime-not-implemented |
updateOrganization | PATCH | /organizations/{organization_id} | organization.manage | owner-approved/runtime-not-implemented |
listOrganizationMemberships | GET | /organizations/{organization_id}/memberships | organization.read | owner-approved/runtime-not-implemented |
createOrganizationMembership | POST | /organizations/{organization_id}/memberships | organization.manage | owner-approved/runtime-not-implemented |
createProject | POST | /projects | project.manage | owner-approved/runtime-not-implemented |
listProjects | GET | /projects | project.read | owner-approved/runtime-not-implemented |
getProject | GET | /projects/{project_id} | project.read | owner-approved/runtime-not-implemented |
updateProject | PATCH | /projects/{project_id} | project.manage | owner-approved/runtime-not-implemented |
archiveProject | POST | /projects/{project_id}/archive | project.manage | owner-approved/runtime-not-implemented |
listProjectEnvironments | GET | /projects/{project_id}/environments | project.read | owner-approved/runtime-not-implemented |
createApplication | POST | /applications | application.manage | owner-approved/runtime-not-implemented |
listApplications | GET | /applications | application.read | owner-approved/runtime-not-implemented |
getApplication | GET | /applications/{application_id} | application.read | owner-approved/runtime-not-implemented |
updateApplication | PATCH | /applications/{application_id} | application.manage | owner-approved/runtime-not-implemented |
revokeApplication | POST | /applications/{application_id}/revoke | application.manage | owner-approved/runtime-not-implemented |
createCredential | POST | /credentials | credential.create | owner-approved/runtime-not-implemented |
listCredentials | GET | /credentials | credential.read | owner-approved/runtime-not-implemented |
getCredential | GET | /credentials/{credential_id} | credential.read | owner-approved/runtime-not-implemented |
rotateCredential | POST | /credentials/{credential_id}/rotate | credential.create | owner-approved/runtime-not-implemented |
revokeCredential | POST | /credentials/{credential_id}/revoke | credential.revoke | owner-approved/runtime-not-implemented |
createDevice | POST | /devices | device.create | owner-approved/runtime-not-implemented |
listDevices | GET | /devices | device.read | owner-approved/runtime-not-implemented |
getDevice | GET | /devices/{device_id} | device.read | owner-approved/runtime-not-implemented |
updateDevice | PATCH | /devices/{device_id} | device.update | owner-approved/runtime-not-implemented |
publishDeviceCapabilities | PUT | /devices/{device_id}/capabilities | device.capabilities.publish | owner-approved/runtime-not-implemented |
createDeviceProvisioningSession | POST | /devices/{device_id}/provisioning-sessions | device.update | owner-approved/runtime-not-implemented |
exchangeDeviceAccessToken | POST | /device-access-tokens | authentication policy | owner-approved/runtime-not-implemented |
exchangeDeviceProvisioningCode | POST | /device-provisioning/exchange | authentication policy | owner-approved/runtime-not-implemented |
rotateDeviceCredential | POST | /devices/{device_id}/credentials/rotate | device.update | owner-approved/runtime-not-implemented |
revokeDevice | POST | /devices/{device_id}/revoke | device.revoke | owner-approved/runtime-not-implemented |
createSource | POST | /sources | source.create | owner-approved/runtime-not-implemented |
listSources | GET | /sources | source.read | owner-approved/runtime-not-implemented |
getSource | GET | /sources/{source_id} | source.read | owner-approved/runtime-not-implemented |
createContextSnapshot | POST | /context-snapshots | context_snapshot.create | owner-approved/runtime-not-implemented |
getContextSnapshot | GET | /context-snapshots/{context_snapshot_id} | context_snapshot.read | owner-approved/runtime-not-implemented |
createRoom | POST | /rooms | room.create | owner-approved/runtime-not-implemented |
listRooms | GET | /rooms | room.read | owner-approved/runtime-not-implemented |
getRoom | GET | /rooms/{room_id} | room.read | owner-approved/runtime-not-implemented |
closeRoom | POST | /rooms/{room_id}/close | room.close | owner-approved/runtime-not-implemented |
listRoomParticipants | GET | /rooms/{room_id}/participants | participant.read | owner-approved/runtime-not-implemented |
listRoomSignals | GET | /rooms/{room_id}/signals | room.read | owner-approved/runtime-not-implemented |
createRealtimeConnection | POST | /realtime/connections | room.join | owner-approved/runtime-not-implemented |
resumeRealtimeConnection | POST | /realtime/connections/resume | room.join | owner-approved/runtime-not-implemented |
getRealtimeCapabilities | GET | /realtime/capabilities | capability.read | owner-approved/runtime-not-implemented |
createTask | POST | /tasks | task.dictation.create | owner-approved/runtime-not-implemented |
listTasks | GET | /tasks | task.read | owner-approved/runtime-not-implemented |
getTask | GET | /tasks/{task_id} | task.read | owner-approved/runtime-not-implemented |
cancelTask | POST | /tasks/{task_id}/cancel | task.cancel | owner-approved/runtime-not-implemented |
getUsageSummary | GET | /usage/summary | usage.read | owner-approved/runtime-not-implemented |
listUsageEvents | GET | /usage/events | usage.read | owner-approved/runtime-not-implemented |
listDeveloperLogs | GET | /logs | logs.read | owner-approved/runtime-not-implemented |
getDeveloperLogTimeline | GET | /logs/{request_id} | logs.read | owner-approved/runtime-not-implemented |
listCapabilities | GET | /capabilities | capability.read | owner-approved/runtime-not-implemented |
getCapability | GET | /capabilities/{capability_id} | capability.read | owner-approved/runtime-not-implemented |
listActions | GET | /actions | capability.read | owner-approved/runtime-not-implemented |
getAction | GET | /actions/{action_id} | capability.read | owner-approved/runtime-not-implemented |
getApplicationRequirements | GET | /applications/{application_id}/requirements | application.requirements.read | owner-approved/runtime-not-implemented |
replaceApplicationRequirements | PUT | /applications/{application_id}/requirements | application.manage | owner-approved/runtime-not-implemented |
evaluateApplicationCompatibility | GET | /applications/{application_id}/compatibility | application.compatibility.read | owner-approved/runtime-not-implemented |
createAppSession | POST | /app-sessions | app.session.create | owner-approved/runtime-not-implemented |
getAppSession | GET | /app-sessions/{app_session_id} | app.session.read | owner-approved/runtime-not-implemented |
closeAppSession | POST | /app-sessions/{app_session_id}/close | app.session.close | owner-approved/runtime-not-implemented |
revokeAppSession | POST | /app-sessions/{app_session_id}/revoke | app.session.revoke | owner-approved/runtime-not-implemented |
getAppSessionCapabilities | GET | /app-sessions/{app_session_id}/capabilities | app.session.capabilities.read | owner-approved/runtime-not-implemented |
createConsentRequest | POST | /consent-requests | authentication policy | contract-ready/runtime-not-implemented |
getConsentRequest | GET | /consent-requests/{consent_request_id} | authentication policy | contract-ready/runtime-not-implemented |
decideConsentRequest | POST | /consent-requests/{consent_request_id}/decision | authentication policy | contract-ready/runtime-not-implemented |
createDelegation | POST | /delegations | delegation.create | contract-ready/runtime-not-implemented |
listDelegations | GET | /delegations | delegation.read | contract-ready/runtime-not-implemented |
getDelegation | GET | /delegations/{delegation_id} | delegation.read | contract-ready/runtime-not-implemented |
revokeDelegation | POST | /delegations/{delegation_id}/revoke | delegation.revoke | contract-ready/runtime-not-implemented |
enableDataSyncScope | POST | /data-sync/scopes/enable | data.sync.control | owner-approved/runtime-not-implemented |
disableDataSyncScopeRetainingData | POST | /data-sync/scopes/disable-retain | data.sync.control | owner-approved/runtime-not-implemented |
readDataSyncChanges | GET | /data-sync/changes | data.sync.read | owner-approved/runtime-not-implemented |
createDataSyncSnapshot | POST | /data-sync/snapshots | data.sync.read | owner-approved/runtime-not-implemented |
readDataSyncSnapshot | GET | /data-sync/snapshots/{snapshot_id} | data.sync.read | owner-approved/runtime-not-implemented |
completeDataSyncSnapshot | POST | /data-sync/snapshots/{snapshot_id}/complete | data.sync.read | owner-approved/runtime-not-implemented |
createRTCConnection | POST | /rtc/connections | room.join | contract-ready/runtime-not-implemented |
getRTCConnection | GET | /rtc/connections/{connection_id} | room.join | contract-ready/runtime-not-implemented |
revokeRTCConnection | POST | /rtc/connections/{connection_id}/revoke | room.join | contract-ready/runtime-not-implemented |
getRTCMediaKeys | GET | /rtc/connections/{connection_id}/media-keys | room.join | contract-ready/runtime-not-implemented |
createRTCPublication | POST | /rooms/{room_id}/rtc/publications | room.join, source.use | contract-ready/runtime-not-implemented |
endRTCPublication | POST | /rooms/{room_id}/rtc/publications/{publication_id}/end | room.join | contract-ready/runtime-not-implemented |
updateRTCSubscriptions | PUT | /rooms/{room_id}/rtc/subscriptions | room.join, rtc.subscription.configure | contract-ready/runtime-not-implemented |
createAgentExecution | POST | /rooms/{room_id}/agent-executions | room.join, source.use, signal.audio.subscribe, agent.execution.create | contract-ready/runtime-not-implemented |
getAgentExecution | GET | /rooms/{room_id}/agent-executions/{agent_execution_id} | agent.execution.read | contract-ready/runtime-not-implemented |
stopAgentExecution | POST | /rooms/{room_id}/agent-executions/{agent_execution_id}/stop | agent.execution.stop | contract-ready/runtime-not-implemented |
updateRTCPacketPolicy | PUT | /rooms/{room_id}/rtc/packet-policy | room.join, rtc.packet.configure | contract-ready/runtime-not-implemented |
Grants#
organization.readorganization.managecapability.readproject.readproject.manageapplication.readapplication.managecredential.createcredential.readcredential.revokedevice.createdevice.readdevice.updatedevice.capabilities.publishdevice.revokeroom.readroom.createroom.joinroom.closeparticipant.readsource.createsource.readsource.usesignal.audio.publishsignal.audio.endtask.dictation.createtask.rtc.transcription.createtask.readtask.cancelcontext_snapshot.createcontext_snapshot.readartifact.readartifact.useartifact.subscribelogs.readusage.readdelegation.createdelegation.readdelegation.revokeapplication.requirements.readapplication.compatibility.readapp.session.createapp.session.readapp.session.closeapp.session.revokeapp.session.capabilities.readdata.sync.readdata.sync.writedata.sync.controldata.sync.deletertc.subscription.configurertc.packet.configurertc.packet.sendrtc.packet.receivesignal.audio.subscribeagent.execution.createagent.execution.readagent.execution.stoprtc.stream.configurertc.stream.sendrtc.stream.receivertc.rpc.configurertc.rpc.callrtc.rpc.handlesignal.data.publishsignal.data.endsignal.data.subscribe
Device grant ceiling#
device.capabilities.publishcapability.readroom.readroom.joinparticipant.readsource.readsource.usesignal.audio.publishsignal.audio.endtask.dictation.createtask.readtask.cancelcontext_snapshot.readartifact.readartifact.subscribeapplication.requirements.readapplication.compatibility.readapp.session.createapp.session.readapp.session.closeapp.session.capabilities.read
Realtime events#
connection.welcomeconnection.resumedconnection.resume_rejectedconnection.closingroom.joinedroom.leftparticipant.joinedparticipant.leftsignal.openedaudio.acksignal.endedsignal.failedtask.createdtask.startedartifact.deltaartifact.finalizedtask.completedtask.failedtask.cancelledpongerror
Error codes#
authentication_requiredtoken_invalidtoken_expiredtoken_audience_invalidcredential_revokedcredential_expiredticket_invalidticket_expiredticket_consumedgrant_missingresource_owner_mismatchproject_environment_mismatchprincipal_suspendeddevice_revokedresource_not_foundresource_state_invalidroom_closedparticipant_limit_reachedsource_not_foundsignal_not_foundartifact_not_foundartifact_unavailabletask_input_invalidtask_profile_input_unsupportedtask_not_foundidempotency_conflictprotocol_version_unsupportedmessage_invalidmessage_id_conflictframe_invalidframe_too_largeaudio_format_unsupportedsequence_gapprotocol_sequence_conflictresume_state_expiredheartbeat_timeouttask_cancelledtask_timeoutno_speechprovider_unavailableprovider_timeoutprovider_authentication_failedprovider_rate_limitedprovider_invalid_responsequota_exceededrate_limitedbudget_exceededreservation_failedusage_pipeline_unavailablemcp_protocol_version_unsupportedmcp_client_capability_missingmcp_extension_requiredmcp_tool_not_foundmcp_tool_not_exposedmcp_tool_input_invalidmcp_tool_output_invalidmcp_resource_not_foundmcp_resource_forbiddenmcp_confirmation_requiredmcp_consent_expiredmcp_request_state_invalidmcp_operation_handle_expiredmcp_audio_transport_unsupportedoauth_resource_invalidoauth_client_not_alloweddelegation_requireddelegation_expireddelegation_revokeddelegation_scope_exceededconsent_requiredconsent_deniedconsent_request_mismatchskill_version_incompatibleskill_package_revokedclient_buffer_overflowclient_audio_capture_failedclient_network_unavailableclient_no_memoryresource_busyapplication_requirements_missingapplication_incompatiblecapability_revision_conflictcapability_registry_mismatchcapability_evidence_invalidcapability_authority_unavailableauthority_revision_exhaustedapp_session_expiredapp_session_revokedapp_session_closed
MCP tools#
onesay.capabilities.list— R0; grants: capability.readonesay.capabilities.get— R0; grants: capability.readonesay.projects.list— R1; grants: project.readonesay.projects.get— R1; grants: project.readonesay.applications.list— R1; grants: application.readonesay.devices.list— R1; grants: device.readonesay.devices.get— R1; grants: device.readonesay.devices.diagnose— R1; grants: device.read, logs.readonesay.rooms.create— R2; grants: room.createonesay.rooms.get— R1; grants: room.readonesay.rooms.close— R2; grants: room.closeonesay.tasks.get— R1; grants: task.readonesay.tasks.cancel— R2; grants: task.cancelonesay.logs.search— R1; grants: logs.readonesay.logs.timeline— R1; grants: logs.readonesay.usage.summary— R1; grants: usage.readonesay.quickstarts.get— R0; grants: public
Source and provenance
View original Markdown
<!-- Generated from OneSay canonical specs. Source SHA-256: b4b9c06106eeaacd9b3d12592b48d82b4247853bea70c203aa8fe5e76500d37f. DO NOT EDIT. -->
# Canonical Registry Catalog
Spec digest: `b4b9c06106eeaacd9b3d12592b48d82b4247853bea70c203aa8fe5e76500d37f`
## Capabilities
| ID | Status | Clients |
|---|---|---|
| `speech.transcription.streaming.v1` | planned | javascript, esp32 |
| `capability.platform.discovery` | planned | javascript, mcp |
## Actions
| ID | Status | Risk | Grants | MCP |
|---|---|---|---|---|
| `room.create` | planned | R2 | room.create | `onesay.rooms.create` |
| `room.close` | planned | R2 | room.close | `onesay.rooms.close` |
| `task.cancel` | planned | R2 | task.cancel | `onesay.tasks.cancel` |
| `application.requirements.read` | planned | R1 | application.requirements.read | `onesay.application.requirements.read` |
| `application.requirements.replace` | planned | R2 | application.manage | `onesay.application.requirements.replace` |
| `application.compatibility.read` | planned | R1 | application.compatibility.read | `onesay.application.compatibility.read` |
| `app.session.create` | planned | R2 | app.session.create | `onesay.app.session.create` |
| `app.session.read` | planned | R1 | app.session.read | `onesay.app.session.read` |
| `app.session.close` | planned | R2 | app.session.close | `onesay.app.session.close` |
| `app.session.revoke` | planned | R3 | app.session.revoke | `onesay.app.session.revoke` |
| `app.session.capabilities.read` | planned | R1 | app.session.capabilities.read | `onesay.app.session.capabilities.read` |
| `signal.open` | planned | R2 | source.use, signal.audio.publish | `not-applicable` |
| `delegation.create` | planned | R3 | delegation.create | `not-applicable` |
| `delegation.read` | planned | R1 | delegation.read | `not-applicable` |
| `delegation.revoke` | planned | R3 | delegation.revoke | `not-applicable` |
| `data.sync.scope.enable` | planned | R3 | data.sync.control | `not-applicable` |
| `data.sync.scope.disable` | planned | R3 | data.sync.control | `not-applicable` |
| `rtc.connection.create` | planned | R2 | room.join | `not-applicable` |
| `rtc.connection.read` | planned | R1 | room.join | `not-applicable` |
| `rtc.connection.revoke` | planned | R2 | room.join | `not-applicable` |
| `rtc.media_key.read` | planned | R1 | room.join | `not-applicable` |
| `rtc.publication.create` | planned | R2 | room.join, source.use | `not-applicable` |
| `rtc.publication.end` | planned | R2 | room.join | `not-applicable` |
| `rtc.subscription.update` | planned | R2 | room.join, rtc.subscription.configure | `not-applicable` |
| `rtc.packet.policy.update` | planned | R2 | room.join, rtc.packet.configure | `not-applicable` |
| `agent.execution.create` | planned | R2 | room.join, source.use, signal.audio.subscribe, agent.execution.create | `not-applicable` |
| `agent.execution.read` | planned | R1 | agent.execution.read | `not-applicable` |
| `agent.execution.stop` | planned | R2 | agent.execution.stop | `not-applicable` |
## Public API operations
| Operation | Method | Path | Grants | Status |
|---|---|---|---|---|
| `getCurrentUser` | GET | `/me` | authentication policy | owner-approved/runtime-not-implemented |
| `createOrganization` | POST | `/organizations` | authentication policy | owner-approved/runtime-not-implemented |
| `listOrganizations` | GET | `/organizations` | organization.read | owner-approved/runtime-not-implemented |
| `getOrganization` | GET | `/organizations/{organization_id}` | organization.read | owner-approved/runtime-not-implemented |
| `updateOrganization` | PATCH | `/organizations/{organization_id}` | organization.manage | owner-approved/runtime-not-implemented |
| `listOrganizationMemberships` | GET | `/organizations/{organization_id}/memberships` | organization.read | owner-approved/runtime-not-implemented |
| `createOrganizationMembership` | POST | `/organizations/{organization_id}/memberships` | organization.manage | owner-approved/runtime-not-implemented |
| `createProject` | POST | `/projects` | project.manage | owner-approved/runtime-not-implemented |
| `listProjects` | GET | `/projects` | project.read | owner-approved/runtime-not-implemented |
| `getProject` | GET | `/projects/{project_id}` | project.read | owner-approved/runtime-not-implemented |
| `updateProject` | PATCH | `/projects/{project_id}` | project.manage | owner-approved/runtime-not-implemented |
| `archiveProject` | POST | `/projects/{project_id}/archive` | project.manage | owner-approved/runtime-not-implemented |
| `listProjectEnvironments` | GET | `/projects/{project_id}/environments` | project.read | owner-approved/runtime-not-implemented |
| `createApplication` | POST | `/applications` | application.manage | owner-approved/runtime-not-implemented |
| `listApplications` | GET | `/applications` | application.read | owner-approved/runtime-not-implemented |
| `getApplication` | GET | `/applications/{application_id}` | application.read | owner-approved/runtime-not-implemented |
| `updateApplication` | PATCH | `/applications/{application_id}` | application.manage | owner-approved/runtime-not-implemented |
| `revokeApplication` | POST | `/applications/{application_id}/revoke` | application.manage | owner-approved/runtime-not-implemented |
| `createCredential` | POST | `/credentials` | credential.create | owner-approved/runtime-not-implemented |
| `listCredentials` | GET | `/credentials` | credential.read | owner-approved/runtime-not-implemented |
| `getCredential` | GET | `/credentials/{credential_id}` | credential.read | owner-approved/runtime-not-implemented |
| `rotateCredential` | POST | `/credentials/{credential_id}/rotate` | credential.create | owner-approved/runtime-not-implemented |
| `revokeCredential` | POST | `/credentials/{credential_id}/revoke` | credential.revoke | owner-approved/runtime-not-implemented |
| `createDevice` | POST | `/devices` | device.create | owner-approved/runtime-not-implemented |
| `listDevices` | GET | `/devices` | device.read | owner-approved/runtime-not-implemented |
| `getDevice` | GET | `/devices/{device_id}` | device.read | owner-approved/runtime-not-implemented |
| `updateDevice` | PATCH | `/devices/{device_id}` | device.update | owner-approved/runtime-not-implemented |
| `publishDeviceCapabilities` | PUT | `/devices/{device_id}/capabilities` | device.capabilities.publish | owner-approved/runtime-not-implemented |
| `createDeviceProvisioningSession` | POST | `/devices/{device_id}/provisioning-sessions` | device.update | owner-approved/runtime-not-implemented |
| `exchangeDeviceAccessToken` | POST | `/device-access-tokens` | authentication policy | owner-approved/runtime-not-implemented |
| `exchangeDeviceProvisioningCode` | POST | `/device-provisioning/exchange` | authentication policy | owner-approved/runtime-not-implemented |
| `rotateDeviceCredential` | POST | `/devices/{device_id}/credentials/rotate` | device.update | owner-approved/runtime-not-implemented |
| `revokeDevice` | POST | `/devices/{device_id}/revoke` | device.revoke | owner-approved/runtime-not-implemented |
| `createSource` | POST | `/sources` | source.create | owner-approved/runtime-not-implemented |
| `listSources` | GET | `/sources` | source.read | owner-approved/runtime-not-implemented |
| `getSource` | GET | `/sources/{source_id}` | source.read | owner-approved/runtime-not-implemented |
| `createContextSnapshot` | POST | `/context-snapshots` | context_snapshot.create | owner-approved/runtime-not-implemented |
| `getContextSnapshot` | GET | `/context-snapshots/{context_snapshot_id}` | context_snapshot.read | owner-approved/runtime-not-implemented |
| `createRoom` | POST | `/rooms` | room.create | owner-approved/runtime-not-implemented |
| `listRooms` | GET | `/rooms` | room.read | owner-approved/runtime-not-implemented |
| `getRoom` | GET | `/rooms/{room_id}` | room.read | owner-approved/runtime-not-implemented |
| `closeRoom` | POST | `/rooms/{room_id}/close` | room.close | owner-approved/runtime-not-implemented |
| `listRoomParticipants` | GET | `/rooms/{room_id}/participants` | participant.read | owner-approved/runtime-not-implemented |
| `listRoomSignals` | GET | `/rooms/{room_id}/signals` | room.read | owner-approved/runtime-not-implemented |
| `createRealtimeConnection` | POST | `/realtime/connections` | room.join | owner-approved/runtime-not-implemented |
| `resumeRealtimeConnection` | POST | `/realtime/connections/resume` | room.join | owner-approved/runtime-not-implemented |
| `getRealtimeCapabilities` | GET | `/realtime/capabilities` | capability.read | owner-approved/runtime-not-implemented |
| `createTask` | POST | `/tasks` | task.dictation.create | owner-approved/runtime-not-implemented |
| `listTasks` | GET | `/tasks` | task.read | owner-approved/runtime-not-implemented |
| `getTask` | GET | `/tasks/{task_id}` | task.read | owner-approved/runtime-not-implemented |
| `cancelTask` | POST | `/tasks/{task_id}/cancel` | task.cancel | owner-approved/runtime-not-implemented |
| `getUsageSummary` | GET | `/usage/summary` | usage.read | owner-approved/runtime-not-implemented |
| `listUsageEvents` | GET | `/usage/events` | usage.read | owner-approved/runtime-not-implemented |
| `listDeveloperLogs` | GET | `/logs` | logs.read | owner-approved/runtime-not-implemented |
| `getDeveloperLogTimeline` | GET | `/logs/{request_id}` | logs.read | owner-approved/runtime-not-implemented |
| `listCapabilities` | GET | `/capabilities` | capability.read | owner-approved/runtime-not-implemented |
| `getCapability` | GET | `/capabilities/{capability_id}` | capability.read | owner-approved/runtime-not-implemented |
| `listActions` | GET | `/actions` | capability.read | owner-approved/runtime-not-implemented |
| `getAction` | GET | `/actions/{action_id}` | capability.read | owner-approved/runtime-not-implemented |
| `getApplicationRequirements` | GET | `/applications/{application_id}/requirements` | application.requirements.read | owner-approved/runtime-not-implemented |
| `replaceApplicationRequirements` | PUT | `/applications/{application_id}/requirements` | application.manage | owner-approved/runtime-not-implemented |
| `evaluateApplicationCompatibility` | GET | `/applications/{application_id}/compatibility` | application.compatibility.read | owner-approved/runtime-not-implemented |
| `createAppSession` | POST | `/app-sessions` | app.session.create | owner-approved/runtime-not-implemented |
| `getAppSession` | GET | `/app-sessions/{app_session_id}` | app.session.read | owner-approved/runtime-not-implemented |
| `closeAppSession` | POST | `/app-sessions/{app_session_id}/close` | app.session.close | owner-approved/runtime-not-implemented |
| `revokeAppSession` | POST | `/app-sessions/{app_session_id}/revoke` | app.session.revoke | owner-approved/runtime-not-implemented |
| `getAppSessionCapabilities` | GET | `/app-sessions/{app_session_id}/capabilities` | app.session.capabilities.read | owner-approved/runtime-not-implemented |
| `createConsentRequest` | POST | `/consent-requests` | authentication policy | contract-ready/runtime-not-implemented |
| `getConsentRequest` | GET | `/consent-requests/{consent_request_id}` | authentication policy | contract-ready/runtime-not-implemented |
| `decideConsentRequest` | POST | `/consent-requests/{consent_request_id}/decision` | authentication policy | contract-ready/runtime-not-implemented |
| `createDelegation` | POST | `/delegations` | delegation.create | contract-ready/runtime-not-implemented |
| `listDelegations` | GET | `/delegations` | delegation.read | contract-ready/runtime-not-implemented |
| `getDelegation` | GET | `/delegations/{delegation_id}` | delegation.read | contract-ready/runtime-not-implemented |
| `revokeDelegation` | POST | `/delegations/{delegation_id}/revoke` | delegation.revoke | contract-ready/runtime-not-implemented |
| `enableDataSyncScope` | POST | `/data-sync/scopes/enable` | data.sync.control | owner-approved/runtime-not-implemented |
| `disableDataSyncScopeRetainingData` | POST | `/data-sync/scopes/disable-retain` | data.sync.control | owner-approved/runtime-not-implemented |
| `readDataSyncChanges` | GET | `/data-sync/changes` | data.sync.read | owner-approved/runtime-not-implemented |
| `createDataSyncSnapshot` | POST | `/data-sync/snapshots` | data.sync.read | owner-approved/runtime-not-implemented |
| `readDataSyncSnapshot` | GET | `/data-sync/snapshots/{snapshot_id}` | data.sync.read | owner-approved/runtime-not-implemented |
| `completeDataSyncSnapshot` | POST | `/data-sync/snapshots/{snapshot_id}/complete` | data.sync.read | owner-approved/runtime-not-implemented |
| `createRTCConnection` | POST | `/rtc/connections` | room.join | contract-ready/runtime-not-implemented |
| `getRTCConnection` | GET | `/rtc/connections/{connection_id}` | room.join | contract-ready/runtime-not-implemented |
| `revokeRTCConnection` | POST | `/rtc/connections/{connection_id}/revoke` | room.join | contract-ready/runtime-not-implemented |
| `getRTCMediaKeys` | GET | `/rtc/connections/{connection_id}/media-keys` | room.join | contract-ready/runtime-not-implemented |
| `createRTCPublication` | POST | `/rooms/{room_id}/rtc/publications` | room.join, source.use | contract-ready/runtime-not-implemented |
| `endRTCPublication` | POST | `/rooms/{room_id}/rtc/publications/{publication_id}/end` | room.join | contract-ready/runtime-not-implemented |
| `updateRTCSubscriptions` | PUT | `/rooms/{room_id}/rtc/subscriptions` | room.join, rtc.subscription.configure | contract-ready/runtime-not-implemented |
| `createAgentExecution` | POST | `/rooms/{room_id}/agent-executions` | room.join, source.use, signal.audio.subscribe, agent.execution.create | contract-ready/runtime-not-implemented |
| `getAgentExecution` | GET | `/rooms/{room_id}/agent-executions/{agent_execution_id}` | agent.execution.read | contract-ready/runtime-not-implemented |
| `stopAgentExecution` | POST | `/rooms/{room_id}/agent-executions/{agent_execution_id}/stop` | agent.execution.stop | contract-ready/runtime-not-implemented |
| `updateRTCPacketPolicy` | PUT | `/rooms/{room_id}/rtc/packet-policy` | room.join, rtc.packet.configure | contract-ready/runtime-not-implemented |
## Grants
- `organization.read`
- `organization.manage`
- `capability.read`
- `project.read`
- `project.manage`
- `application.read`
- `application.manage`
- `credential.create`
- `credential.read`
- `credential.revoke`
- `device.create`
- `device.read`
- `device.update`
- `device.capabilities.publish`
- `device.revoke`
- `room.read`
- `room.create`
- `room.join`
- `room.close`
- `participant.read`
- `source.create`
- `source.read`
- `source.use`
- `signal.audio.publish`
- `signal.audio.end`
- `task.dictation.create`
- `task.rtc.transcription.create`
- `task.read`
- `task.cancel`
- `context_snapshot.create`
- `context_snapshot.read`
- `artifact.read`
- `artifact.use`
- `artifact.subscribe`
- `logs.read`
- `usage.read`
- `delegation.create`
- `delegation.read`
- `delegation.revoke`
- `application.requirements.read`
- `application.compatibility.read`
- `app.session.create`
- `app.session.read`
- `app.session.close`
- `app.session.revoke`
- `app.session.capabilities.read`
- `data.sync.read`
- `data.sync.write`
- `data.sync.control`
- `data.sync.delete`
- `rtc.subscription.configure`
- `rtc.packet.configure`
- `rtc.packet.send`
- `rtc.packet.receive`
- `signal.audio.subscribe`
- `agent.execution.create`
- `agent.execution.read`
- `agent.execution.stop`
- `rtc.stream.configure`
- `rtc.stream.send`
- `rtc.stream.receive`
- `rtc.rpc.configure`
- `rtc.rpc.call`
- `rtc.rpc.handle`
- `signal.data.publish`
- `signal.data.end`
- `signal.data.subscribe`
## Device grant ceiling
- `device.capabilities.publish`
- `capability.read`
- `room.read`
- `room.join`
- `participant.read`
- `source.read`
- `source.use`
- `signal.audio.publish`
- `signal.audio.end`
- `task.dictation.create`
- `task.read`
- `task.cancel`
- `context_snapshot.read`
- `artifact.read`
- `artifact.subscribe`
- `application.requirements.read`
- `application.compatibility.read`
- `app.session.create`
- `app.session.read`
- `app.session.close`
- `app.session.capabilities.read`
## Realtime events
- `connection.welcome`
- `connection.resumed`
- `connection.resume_rejected`
- `connection.closing`
- `room.joined`
- `room.left`
- `participant.joined`
- `participant.left`
- `signal.opened`
- `audio.ack`
- `signal.ended`
- `signal.failed`
- `task.created`
- `task.started`
- `artifact.delta`
- `artifact.finalized`
- `task.completed`
- `task.failed`
- `task.cancelled`
- `pong`
- `error`
## Error codes
- `authentication_required`
- `token_invalid`
- `token_expired`
- `token_audience_invalid`
- `credential_revoked`
- `credential_expired`
- `ticket_invalid`
- `ticket_expired`
- `ticket_consumed`
- `grant_missing`
- `resource_owner_mismatch`
- `project_environment_mismatch`
- `principal_suspended`
- `device_revoked`
- `resource_not_found`
- `resource_state_invalid`
- `room_closed`
- `participant_limit_reached`
- `source_not_found`
- `signal_not_found`
- `artifact_not_found`
- `artifact_unavailable`
- `task_input_invalid`
- `task_profile_input_unsupported`
- `task_not_found`
- `idempotency_conflict`
- `protocol_version_unsupported`
- `message_invalid`
- `message_id_conflict`
- `frame_invalid`
- `frame_too_large`
- `audio_format_unsupported`
- `sequence_gap`
- `protocol_sequence_conflict`
- `resume_state_expired`
- `heartbeat_timeout`
- `task_cancelled`
- `task_timeout`
- `no_speech`
- `provider_unavailable`
- `provider_timeout`
- `provider_authentication_failed`
- `provider_rate_limited`
- `provider_invalid_response`
- `quota_exceeded`
- `rate_limited`
- `budget_exceeded`
- `reservation_failed`
- `usage_pipeline_unavailable`
- `mcp_protocol_version_unsupported`
- `mcp_client_capability_missing`
- `mcp_extension_required`
- `mcp_tool_not_found`
- `mcp_tool_not_exposed`
- `mcp_tool_input_invalid`
- `mcp_tool_output_invalid`
- `mcp_resource_not_found`
- `mcp_resource_forbidden`
- `mcp_confirmation_required`
- `mcp_consent_expired`
- `mcp_request_state_invalid`
- `mcp_operation_handle_expired`
- `mcp_audio_transport_unsupported`
- `oauth_resource_invalid`
- `oauth_client_not_allowed`
- `delegation_required`
- `delegation_expired`
- `delegation_revoked`
- `delegation_scope_exceeded`
- `consent_required`
- `consent_denied`
- `consent_request_mismatch`
- `skill_version_incompatible`
- `skill_package_revoked`
- `client_buffer_overflow`
- `client_audio_capture_failed`
- `client_network_unavailable`
- `client_no_memory`
- `resource_busy`
- `application_requirements_missing`
- `application_incompatible`
- `capability_revision_conflict`
- `capability_registry_mismatch`
- `capability_evidence_invalid`
- `capability_authority_unavailable`
- `authority_revision_exhausted`
- `app_session_expired`
- `app_session_revoked`
- `app_session_closed`
## MCP tools
- `onesay.capabilities.list` — R0; grants: capability.read
- `onesay.capabilities.get` — R0; grants: capability.read
- `onesay.projects.list` — R1; grants: project.read
- `onesay.projects.get` — R1; grants: project.read
- `onesay.applications.list` — R1; grants: application.read
- `onesay.devices.list` — R1; grants: device.read
- `onesay.devices.get` — R1; grants: device.read
- `onesay.devices.diagnose` — R1; grants: device.read, logs.read
- `onesay.rooms.create` — R2; grants: room.create
- `onesay.rooms.get` — R1; grants: room.read
- `onesay.rooms.close` — R2; grants: room.close
- `onesay.tasks.get` — R1; grants: task.read
- `onesay.tasks.cancel` — R2; grants: task.cancel
- `onesay.logs.search` — R1; grants: logs.read
- `onesay.logs.timeline` — R1; grants: logs.read
- `onesay.usage.summary` — R1; grants: usage.read
- `onesay.quickstarts.get` — R0; grants: public