{"openapi":"3.1.0","info":{"title":"Italic API","version":"1.0.0","description":"One account recording library. Text and metadata sync; audio stays local. Clip audio is temporary until successful transcription; Memo audio remains on its originating client."},"servers":[{"url":"https://app.italic.com/api/v1"}],"paths":{"/devices":{"get":{"operationId":"listDevices","summary":"List account devices without pairing credentials","tags":["devices"],"parameters":[],"description":"Required token scope: settings:read. Signed-in Italic sessions are also accepted.","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Successful response. Integration imports without recordings:read return only id and revision.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/DevicesResponse"}}}},"400":{"description":"Invalid request or filter.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Invalid, revoked or expired credential.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"Insufficient scope, different importing application, or session required.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"Resource not found.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"409":{"description":"Revision, immutable metadata or idempotency conflict.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"410":{"description":"Recording deleted.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"412":{"description":"If-Match revision no longer matches.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"413":{"description":"Request too large.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"428":{"description":"If-Match required.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limited; retry after Retry-After seconds.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Unexpected failure.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"503":{"description":"Service unavailable.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/recordings":{"get":{"operationId":"listRecordings","summary":"Search and list recordings","tags":["recordings"],"parameters":[{"name":"kind","in":"query","schema":{"type":"string","enum":["clip","memo"]}},{"name":"source","in":"query","schema":{"type":"string","minLength":1,"maxLength":256,"pattern":"^[A-Za-z0-9][A-Za-z0-9._:-]*$"}},{"name":"deviceId","in":"query","schema":{"type":"string","minLength":1,"maxLength":256,"pattern":"^[A-Za-z0-9][A-Za-z0-9._:-]*$"}},{"name":"status","in":"query","schema":{"type":"string","enum":["pending","transcribing","ready","no_speech","failed"]}},{"name":"q","in":"query","schema":{"type":"string","minLength":0,"maxLength":200}},{"name":"from","in":"query","schema":{"type":"integer","minimum":0,"maximum":9007199254740991},"description":"Inclusive capture time in Unix milliseconds."},{"name":"to","in":"query","schema":{"type":"integer","minimum":0,"maximum":9007199254740991},"description":"Inclusive capture time in Unix milliseconds."},{"name":"cursor","in":"query","schema":{"type":"string","minLength":0,"maxLength":1024}},{"name":"limit","in":"query","schema":{"type":"integer","minimum":1,"maximum":100}}],"description":"Required token scope: recordings:read. Signed-in Italic sessions are also accepted.","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Successful response. Integration imports without recordings:read return only id and revision.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/RecordingsResponse"}}}},"400":{"description":"Invalid request or filter.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Invalid, revoked or expired credential.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"Insufficient scope, different importing application, or session required.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"Resource not found.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"409":{"description":"Revision, immutable metadata or idempotency conflict.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"410":{"description":"Recording deleted.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"412":{"description":"If-Match revision no longer matches.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"413":{"description":"Request too large.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"428":{"description":"If-Match required.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limited; retry after Retry-After seconds.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Unexpected failure.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"503":{"description":"Service unavailable.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}},"post":{"operationId":"createRecording","summary":"Import a recording","tags":["recordings"],"parameters":[{"name":"Idempotency-Key","in":"header","required":true,"schema":{"type":"string","minLength":1,"maxLength":128}}],"description":"Required token scope: recordings:create. Signed-in Italic sessions are also accepted.","security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateRecording"}}}},"responses":{"200":{"description":"Successful response. Integration imports without recordings:read return only id and revision.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ImportResponse"}}}},"400":{"description":"Invalid request or filter.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Invalid, revoked or expired credential.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"Insufficient scope, different importing application, or session required.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"Resource not found.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"409":{"description":"Revision, immutable metadata or idempotency conflict.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"410":{"description":"Recording deleted.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"412":{"description":"If-Match revision no longer matches.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"413":{"description":"Request too large.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"428":{"description":"If-Match required.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limited; retry after Retry-After seconds.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Unexpected failure.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"503":{"description":"Service unavailable.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/recordings/latest-clip":{"get":{"operationId":"latestClip","summary":"Get the latest Clip, including pending captures","tags":["recordings"],"parameters":[{"name":"source","in":"query","schema":{"type":"string","minLength":1,"maxLength":256,"pattern":"^[A-Za-z0-9][A-Za-z0-9._:-]*$"}},{"name":"deviceId","in":"query","schema":{"type":"string","minLength":1,"maxLength":256,"pattern":"^[A-Za-z0-9][A-Za-z0-9._:-]*$"}},{"name":"q","in":"query","schema":{"type":"string","minLength":0,"maxLength":200}},{"name":"from","in":"query","schema":{"type":"integer","minimum":0,"maximum":9007199254740991},"description":"Inclusive capture time in Unix milliseconds."},{"name":"to","in":"query","schema":{"type":"integer","minimum":0,"maximum":9007199254740991},"description":"Inclusive capture time in Unix milliseconds."}],"description":"Required token scope: recordings:read. Signed-in Italic sessions are also accepted.","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Successful response. Integration imports without recordings:read return only id and revision.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/RecordingsResponse"}}}},"400":{"description":"Invalid request or filter.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Invalid, revoked or expired credential.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"Insufficient scope, different importing application, or session required.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"Resource not found.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"409":{"description":"Revision, immutable metadata or idempotency conflict.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"410":{"description":"Recording deleted.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"412":{"description":"If-Match revision no longer matches.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"413":{"description":"Request too large.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"428":{"description":"If-Match required.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limited; retry after Retry-After seconds.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Unexpected failure.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"503":{"description":"Service unavailable.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/recordings/{id}":{"get":{"operationId":"getRecording","summary":"Get a recording with processing and local audio metadata","tags":["recordings"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","minLength":1,"maxLength":256,"pattern":"^[A-Za-z0-9][A-Za-z0-9._:-]*$"}}],"description":"Required token scope: recordings:read. Signed-in Italic sessions are also accepted.","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Successful response. Integration imports without recordings:read return only id and revision.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/RecordingResponse"}}}},"400":{"description":"Invalid request or filter.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Invalid, revoked or expired credential.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"Insufficient scope, different importing application, or session required.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"Resource not found.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"409":{"description":"Revision, immutable metadata or idempotency conflict.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"410":{"description":"Recording deleted.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"412":{"description":"If-Match revision no longer matches.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"413":{"description":"Request too large.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"428":{"description":"If-Match required.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limited; retry after Retry-After seconds.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Unexpected failure.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"503":{"description":"Service unavailable.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}},"put":{"operationId":"updateRecording","summary":"Update recording text with an If-Match revision","tags":["recordings"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","minLength":1,"maxLength":256,"pattern":"^[A-Za-z0-9][A-Za-z0-9._:-]*$"}},{"name":"If-Match","in":"header","required":true,"schema":{"type":"string"},"example":"\"1\""}],"description":"Required token scope: recordings:write. Signed-in Italic sessions are also accepted.","security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateRecording"}}}},"responses":{"200":{"description":"Successful response. Integration imports without recordings:read return only id and revision.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/WriteRecordingResponse"}}}},"400":{"description":"Invalid request or filter.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Invalid, revoked or expired credential.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"Insufficient scope, different importing application, or session required.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"Resource not found.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"409":{"description":"Revision, immutable metadata or idempotency conflict.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"410":{"description":"Recording deleted.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"412":{"description":"If-Match revision no longer matches.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"413":{"description":"Request too large.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"428":{"description":"If-Match required.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limited; retry after Retry-After seconds.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Unexpected failure.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"503":{"description":"Service unavailable.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}},"delete":{"operationId":"deleteRecording","summary":"Delete a recording with an If-Match revision","tags":["recordings"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","minLength":1,"maxLength":256,"pattern":"^[A-Za-z0-9][A-Za-z0-9._:-]*$"}},{"name":"If-Match","in":"header","required":true,"schema":{"type":"string"},"example":"\"1\""}],"description":"Required token scope: recordings:delete. Signed-in Italic sessions are also accepted.","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Successful response. Integration imports without recordings:read return only id and revision.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/DeleteRecordingResponse"}}}},"400":{"description":"Invalid request or filter.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Invalid, revoked or expired credential.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"Insufficient scope, different importing application, or session required.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"Resource not found.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"409":{"description":"Revision, immutable metadata or idempotency conflict.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"410":{"description":"Recording deleted.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"412":{"description":"If-Match revision no longer matches.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"413":{"description":"Request too large.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"428":{"description":"If-Match required.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limited; retry after Retry-After seconds.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Unexpected failure.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"503":{"description":"Service unavailable.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/recordings/{id}/processing":{"put":{"operationId":"putProcessing","summary":"Report client processing state","tags":["recordings"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","minLength":1,"maxLength":256,"pattern":"^[A-Za-z0-9][A-Za-z0-9._:-]*$"}}],"description":"Required token scope: recordings:write. Signed-in Italic sessions are also accepted. Integrations may report metadata only for recordings imported by their application.","security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Processing"}}}},"responses":{"200":{"description":"Successful response. Integration imports without recordings:read return only id and revision.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ProcessingResponse"}}}},"400":{"description":"Invalid request or filter.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Invalid, revoked or expired credential.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"Insufficient scope, different importing application, or session required.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"Resource not found.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"409":{"description":"Revision, immutable metadata or idempotency conflict.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"410":{"description":"Recording deleted.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"412":{"description":"If-Match revision no longer matches.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"413":{"description":"Request too large.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"428":{"description":"If-Match required.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limited; retry after Retry-After seconds.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Unexpected failure.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"503":{"description":"Service unavailable.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/recordings/{id}/audio-assets":{"put":{"operationId":"putAudioAsset","summary":"Report a local audio reference","tags":["recordings"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","minLength":1,"maxLength":256,"pattern":"^[A-Za-z0-9][A-Za-z0-9._:-]*$"}}],"description":"Required token scope: recordings:write. Signed-in Italic sessions are also accepted. Integrations may report metadata only for recordings imported by their application.","security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AudioAsset"}}}},"responses":{"200":{"description":"Successful response. Integration imports without recordings:read return only id and revision.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AssetResponse"}}}},"400":{"description":"Invalid request or filter.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Invalid, revoked or expired credential.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"Insufficient scope, different importing application, or session required.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"Resource not found.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"409":{"description":"Revision, immutable metadata or idempotency conflict.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"410":{"description":"Recording deleted.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"412":{"description":"If-Match revision no longer matches.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"413":{"description":"Request too large.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"428":{"description":"If-Match required.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limited; retry after Retry-After seconds.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Unexpected failure.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"503":{"description":"Service unavailable.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/input-mappings":{"get":{"operationId":"getInputMappings","summary":"Read app input mapping history","tags":["input-mappings"],"parameters":[],"description":"Required token scope: settings:read. Signed-in Italic sessions are also accepted.","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Successful response. Integration imports without recordings:read return only id and revision.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/MappingsResponse"}}}},"400":{"description":"Invalid request or filter.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Invalid, revoked or expired credential.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"Insufficient scope, different importing application, or session required.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"Resource not found.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"409":{"description":"Revision, immutable metadata or idempotency conflict.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"410":{"description":"Recording deleted.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"412":{"description":"If-Match revision no longer matches.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"413":{"description":"Request too large.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"428":{"description":"If-Match required.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limited; retry after Retry-After seconds.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Unexpected failure.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"503":{"description":"Service unavailable.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}},"post":{"operationId":"putInputMappings","summary":"Merge immutable app input mapping revisions","tags":["input-mappings"],"parameters":[],"description":"Required token scope: settings:write. Signed-in Italic sessions are also accepted.","security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/InputRevisions"}}}},"responses":{"200":{"description":"Successful response. Integration imports without recordings:read return only id and revision.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/MappingsResponse"}}}},"400":{"description":"Invalid request or filter.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Invalid, revoked or expired credential.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"Insufficient scope, different importing application, or session required.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"Resource not found.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"409":{"description":"Revision, immutable metadata or idempotency conflict.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"410":{"description":"Recording deleted.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"412":{"description":"If-Match revision no longer matches.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"413":{"description":"Request too large.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"428":{"description":"If-Match required.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limited; retry after Retry-After seconds.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Unexpected failure.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"503":{"description":"Service unavailable.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/events":{"get":{"operationId":"listEvents","summary":"Read recording events after a cursor","tags":["events"],"parameters":[{"name":"after","in":"query","schema":{"type":"integer","minimum":0}},{"name":"limit","in":"query","schema":{"type":"integer","minimum":0}}],"description":"Required token scope: events:read. Signed-in Italic sessions are also accepted.","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Successful response. Integration imports without recordings:read return only id and revision.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/EventsResponse"}}}},"400":{"description":"Invalid request or filter.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Invalid, revoked or expired credential.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"Insufficient scope, different importing application, or session required.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"Resource not found.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"409":{"description":"Revision, immutable metadata or idempotency conflict.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"410":{"description":"Recording deleted.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"412":{"description":"If-Match revision no longer matches.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"413":{"description":"Request too large.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"428":{"description":"If-Match required.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limited; retry after Retry-After seconds.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Unexpected failure.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"503":{"description":"Service unavailable.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/tokens":{"get":{"operationId":"listTokens","summary":"List integration tokens without secrets","tags":["tokens"],"parameters":[],"description":"Requires a signed-in Italic session. Integration tokens cannot call this operation.","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Successful response. Integration imports without recordings:read return only id and revision.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/TokensResponse"}}}},"400":{"description":"Invalid request or filter.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Invalid, revoked or expired credential.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"Insufficient scope, different importing application, or session required.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"Resource not found.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"409":{"description":"Revision, immutable metadata or idempotency conflict.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"410":{"description":"Recording deleted.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"412":{"description":"If-Match revision no longer matches.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"413":{"description":"Request too large.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"428":{"description":"If-Match required.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limited; retry after Retry-After seconds.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Unexpected failure.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"503":{"description":"Service unavailable.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}},"post":{"operationId":"createToken","summary":"Create a scoped token; secret returned once","tags":["tokens"],"parameters":[],"description":"Requires a signed-in Italic session. Integration tokens cannot call this operation.","security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateToken"}}}},"responses":{"200":{"description":"Successful response. Integration imports without recordings:read return only id and revision.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateTokenResponse"}}}},"400":{"description":"Invalid request or filter.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Invalid, revoked or expired credential.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"Insufficient scope, different importing application, or session required.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"Resource not found.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"409":{"description":"Revision, immutable metadata or idempotency conflict.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"410":{"description":"Recording deleted.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"412":{"description":"If-Match revision no longer matches.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"413":{"description":"Request too large.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"428":{"description":"If-Match required.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limited; retry after Retry-After seconds.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Unexpected failure.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"503":{"description":"Service unavailable.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/tokens/{id}":{"delete":{"operationId":"revokeToken","summary":"Revoke an integration token","tags":["tokens"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","minLength":1,"maxLength":256,"pattern":"^[A-Za-z0-9][A-Za-z0-9._:-]*$"}}],"description":"Requires a signed-in Italic session. Integration tokens cannot call this operation.","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Successful response. Integration imports without recordings:read return only id and revision.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/RevokeTokenResponse"}}}},"400":{"description":"Invalid request or filter.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Invalid, revoked or expired credential.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"Insufficient scope, different importing application, or session required.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"Resource not found.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"409":{"description":"Revision, immutable metadata or idempotency conflict.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"410":{"description":"Recording deleted.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"412":{"description":"If-Match revision no longer matches.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"413":{"description":"Request too large.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"428":{"description":"If-Match required.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limited; retry after Retry-After seconds.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Unexpected failure.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"503":{"description":"Service unavailable.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/webhooks":{"get":{"operationId":"listWebhooks","summary":"List webhook subscriptions","tags":["webhooks"],"parameters":[],"description":"Requires a signed-in Italic session. Integration tokens cannot call this operation.","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Successful response. Integration imports without recordings:read return only id and revision.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/WebhooksResponse"}}}},"400":{"description":"Invalid request or filter.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Invalid, revoked or expired credential.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"Insufficient scope, different importing application, or session required.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"Resource not found.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"409":{"description":"Revision, immutable metadata or idempotency conflict.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"410":{"description":"Recording deleted.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"412":{"description":"If-Match revision no longer matches.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"413":{"description":"Request too large.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"428":{"description":"If-Match required.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limited; retry after Retry-After seconds.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Unexpected failure.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"503":{"description":"Service unavailable.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}},"post":{"operationId":"createWebhook","summary":"Create a signed webhook subscription","tags":["webhooks"],"parameters":[],"description":"Requires a signed-in Italic session. Integration tokens cannot call this operation.","security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Webhook"}}}},"responses":{"200":{"description":"Successful response. Integration imports without recordings:read return only id and revision.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateWebhookResponse"}}}},"400":{"description":"Invalid request or filter.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Invalid, revoked or expired credential.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"Insufficient scope, different importing application, or session required.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"Resource not found.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"409":{"description":"Revision, immutable metadata or idempotency conflict.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"410":{"description":"Recording deleted.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"412":{"description":"If-Match revision no longer matches.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"413":{"description":"Request too large.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"428":{"description":"If-Match required.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limited; retry after Retry-After seconds.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Unexpected failure.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"503":{"description":"Service unavailable.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/webhooks/{id}":{"delete":{"operationId":"disableWebhook","summary":"Disable a webhook and cancel pending deliveries","tags":["webhooks"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","minLength":1,"maxLength":256,"pattern":"^[A-Za-z0-9][A-Za-z0-9._:-]*$"}}],"description":"Requires a signed-in Italic session. Integration tokens cannot call this operation.","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Successful response. Integration imports without recordings:read return only id and revision.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/DisableWebhookResponse"}}}},"400":{"description":"Invalid request or filter.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Invalid, revoked or expired credential.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"Insufficient scope, different importing application, or session required.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"Resource not found.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"409":{"description":"Revision, immutable metadata or idempotency conflict.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"410":{"description":"Recording deleted.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"412":{"description":"If-Match revision no longer matches.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"413":{"description":"Request too large.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"428":{"description":"If-Match required.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limited; retry after Retry-After seconds.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Unexpected failure.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"503":{"description":"Service unavailable.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/recordings/{id}/deliveries":{"get":{"operationId":"listDeliveries","summary":"Inspect webhook delivery status for a recording","tags":["recordings"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","minLength":1,"maxLength":256,"pattern":"^[A-Za-z0-9][A-Za-z0-9._:-]*$"}}],"description":"Requires a signed-in Italic session. Integration tokens cannot call this operation.","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Successful response. Integration imports without recordings:read return only id and revision.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/DeliveriesResponse"}}}},"400":{"description":"Invalid request or filter.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Invalid, revoked or expired credential.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"Insufficient scope, different importing application, or session required.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"Resource not found.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"409":{"description":"Revision, immutable metadata or idempotency conflict.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"410":{"description":"Recording deleted.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"412":{"description":"If-Match revision no longer matches.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"413":{"description":"Request too large.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"428":{"description":"If-Match required.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limited; retry after Retry-After seconds.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Unexpected failure.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"503":{"description":"Service unavailable.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}},"post":{"operationId":"sendDelivery","summary":"Send a selected revision to a webhook","tags":["recordings"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","minLength":1,"maxLength":256,"pattern":"^[A-Za-z0-9][A-Za-z0-9._:-]*$"}},{"name":"Idempotency-Key","in":"header","required":true,"schema":{"type":"string","minLength":1,"maxLength":128}}],"description":"Requires a signed-in Italic session. Integration tokens cannot call this operation.","security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ManualDelivery"}}}},"responses":{"200":{"description":"Successful response. Integration imports without recordings:read return only id and revision.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SendDeliveryResponse"}}}},"400":{"description":"Invalid request or filter.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Invalid, revoked or expired credential.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"Insufficient scope, different importing application, or session required.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"Resource not found.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"409":{"description":"Revision, immutable metadata or idempotency conflict.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"410":{"description":"Recording deleted.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"412":{"description":"If-Match revision no longer matches.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"413":{"description":"Request too large.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"428":{"description":"If-Match required.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limited; retry after Retry-After seconds.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Unexpected failure.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"503":{"description":"Service unavailable.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/oauth-apps":{"get":{"operationId":"listOAuthApps","summary":"List connected OAuth applications and permissions","tags":["oauth-apps"],"parameters":[],"description":"Requires a signed-in Italic session. Integration tokens cannot call this operation.","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Successful response. Integration imports without recordings:read return only id and revision.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/OAuthAppsResponse"}}}},"400":{"description":"Invalid request or filter.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Invalid, revoked or expired credential.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"Insufficient scope, different importing application, or session required.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"Resource not found.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"409":{"description":"Revision, immutable metadata or idempotency conflict.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"410":{"description":"Recording deleted.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"412":{"description":"If-Match revision no longer matches.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"413":{"description":"Request too large.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"428":{"description":"If-Match required.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limited; retry after Retry-After seconds.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Unexpected failure.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"503":{"description":"Service unavailable.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/oauth-apps/{id}":{"delete":{"operationId":"revokeOAuthApp","summary":"Revoke a connected application and its tokens","tags":["oauth-apps"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","minLength":1,"maxLength":256,"pattern":"^[A-Za-z0-9][A-Za-z0-9._:-]*$"}}],"description":"Requires a signed-in Italic session. Integration tokens cannot call this operation.","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Successful response. Integration imports without recordings:read return only id and revision.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/RevokeTokenResponse"}}}},"400":{"description":"Invalid request or filter.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Invalid, revoked or expired credential.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"Insufficient scope, different importing application, or session required.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"Resource not found.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"409":{"description":"Revision, immutable metadata or idempotency conflict.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"410":{"description":"Recording deleted.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"412":{"description":"If-Match revision no longer matches.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"413":{"description":"Request too large.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"428":{"description":"If-Match required.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limited; retry after Retry-After seconds.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Unexpected failure.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"503":{"description":"Service unavailable.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}}},"components":{"securitySchemes":{"bearerAuth":{"type":"http","scheme":"bearer"}},"schemas":{"UpdateRecording":{"type":"object","properties":{"content":{"type":"object","properties":{"kind":{"type":"string","enum":["clip","memo"]},"title":{"type":"string","minLength":0,"maxLength":200},"transcript":{"type":"string","minLength":0,"maxLength":1000000},"summary":{"type":"string","minLength":0,"maxLength":1000000},"recordedAt":{"type":"integer","minimum":0,"maximum":9007199254740991},"isPinned":{"type":"boolean"},"recordingSource":{"type":"string","enum":["phone","sudo","glyph","dex","ring","pocket"]},"recordingDevice":{"type":"object","properties":{"typeId":{"type":"string","minLength":1,"maxLength":256,"pattern":"^[A-Za-z0-9][A-Za-z0-9._:-]*$"},"deviceId":{"type":"string","minLength":1,"maxLength":256,"pattern":"^[A-Za-z0-9][A-Za-z0-9._:-]*$"},"modelId":{"type":"string","minLength":1,"maxLength":128},"hardwareRevision":{"type":"string","minLength":1,"maxLength":128}},"required":["typeId","deviceId"],"additionalProperties":false},"location":{"type":"object","properties":{"latitude":{"type":"number","minimum":-90,"maximum":90},"longitude":{"type":"number","minimum":-180,"maximum":180},"label":{"type":"string","minLength":0,"maxLength":200}},"required":["latitude","longitude"],"additionalProperties":false}},"required":["kind","title","transcript","summary","recordedAt","isPinned"],"additionalProperties":false}},"required":["content"],"additionalProperties":false},"CreateRecording":{"type":"object","properties":{"kind":{"type":"string","enum":["clip","memo"]},"externalId":{"type":"string","minLength":1,"maxLength":256,"pattern":"^[A-Za-z0-9][A-Za-z0-9._:-]*$"},"recordedAt":{"type":"integer","minimum":0,"maximum":9007199254740991},"title":{"type":"string","minLength":0,"maxLength":200},"transcript":{"type":"string","minLength":0,"maxLength":1000000},"summary":{"type":"string","minLength":0,"maxLength":1000000}},"required":["kind","externalId","recordedAt"],"additionalProperties":false},"CreateToken":{"type":"object","properties":{"name":{"type":"string","minLength":1,"maxLength":80},"applicationId":{"type":"string","minLength":1,"maxLength":256,"pattern":"^[A-Za-z0-9][A-Za-z0-9._:-]*$"},"scopes":{"type":"array","items":{"type":"string","enum":["recordings:create","recordings:read","recordings:write","recordings:delete","events:read","settings:read","settings:write"]},"minItems":1,"maxItems":7},"expiresInDays":{"type":"integer","minimum":1,"maximum":365}},"required":["name","applicationId","scopes","expiresInDays"],"additionalProperties":false},"Processing":{"type":"object","properties":{"kind":{"type":"string","enum":["clip","memo"]},"recordedAt":{"type":"integer","minimum":0,"maximum":9007199254740991},"status":{"type":"string","enum":["pending","transcribing","ready","no_speech","failed"]},"expectedRevision":{"type":"integer","minimum":0,"maximum":9007199254740991},"captureInput":{"type":"string","enum":["hold","doubleTap","tripleTap","recordButton","pushToTalk","appRecord"]},"mappingRevision":{"type":"string","pattern":"^[0-9A-Fa-f]{8}-[0-9A-Fa-f]{4}-[0-9A-Fa-f]{4}-[0-9A-Fa-f]{4}-[0-9A-Fa-f]{12}$"},"language":{"type":"string","minLength":1,"maxLength":40},"durationMs":{"type":"integer","minimum":0,"maximum":9007199254740991}},"required":["kind","recordedAt","status","expectedRevision"],"additionalProperties":false},"AudioAsset":{"type":"object","properties":{"clientId":{"type":"string","minLength":1,"maxLength":256,"pattern":"^[A-Za-z0-9][A-Za-z0-9._:-]*$"},"assetId":{"type":"string","minLength":1,"maxLength":256,"pattern":"^[A-Za-z0-9][A-Za-z0-9._:-]*$"},"clientName":{"type":"string","minLength":1,"maxLength":80},"state":{"type":"string","enum":["available","pending_deletion","missing","deleted"]},"expectedRevision":{"type":"integer","minimum":0,"maximum":9007199254740991}},"required":["clientId","assetId","clientName","state","expectedRevision"],"additionalProperties":false},"InputRevision":{"type":"object","properties":{"id":{"type":"string","pattern":"^[0-9A-Fa-f]{8}-[0-9A-Fa-f]{4}-[0-9A-Fa-f]{4}-[0-9A-Fa-f]{4}-[0-9A-Fa-f]{12}$"},"deviceId":{"type":"string","minLength":1,"maxLength":256,"pattern":"^[A-Za-z0-9][A-Za-z0-9._:-]*$"},"input":{"type":"string","enum":["hold","doubleTap","tripleTap","recordButton","pushToTalk","appRecord"]},"kind":{"type":"string","enum":["clip","memo"]},"effectiveAt":{"type":"integer","minimum":0,"maximum":9007199254740991}},"required":["id","deviceId","input","kind","effectiveAt"],"additionalProperties":false},"Webhook":{"type":"object","properties":{"url":{"type":"string","minLength":1,"maxLength":2048},"events":{"type":"array","items":{"type":"string","enum":["recording.created","recording.updated","recording.transcript_ready","recording.deleted"]},"minItems":1,"maxItems":4},"payloadMode":{"type":"string","enum":["event","text"]},"rules":{"type":"object","properties":{"prefix":{"type":"string","minLength":1,"maxLength":100},"captureInput":{"type":"string","enum":["hold","doubleTap","tripleTap","recordButton","pushToTalk","appRecord"]},"kind":{"type":"string","enum":["clip","memo"]}},"required":[],"additionalProperties":false}},"required":["url","events"],"additionalProperties":false},"ManualDelivery":{"type":"object","properties":{"webhookId":{"type":"string","minLength":1,"maxLength":256,"pattern":"^[A-Za-z0-9][A-Za-z0-9._:-]*$"},"expectedRevision":{"type":"integer","minimum":0,"maximum":9007199254740991}},"required":["webhookId","expectedRevision"],"additionalProperties":false},"InputRevisions":{"type":"object","properties":{"revisions":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string","pattern":"^[0-9A-Fa-f]{8}-[0-9A-Fa-f]{4}-[0-9A-Fa-f]{4}-[0-9A-Fa-f]{4}-[0-9A-Fa-f]{12}$"},"deviceId":{"type":"string","minLength":1,"maxLength":256,"pattern":"^[A-Za-z0-9][A-Za-z0-9._:-]*$"},"input":{"type":"string","enum":["hold","doubleTap","tripleTap","recordButton","pushToTalk","appRecord"]},"kind":{"type":"string","enum":["clip","memo"]},"effectiveAt":{"type":"integer","minimum":0,"maximum":9007199254740991}},"required":["id","deviceId","input","kind","effectiveAt"],"additionalProperties":false},"maxItems":200}},"required":["revisions"],"additionalProperties":false},"Recording":{"type":"object","properties":{"id":{"type":"string"},"revision":{"type":"integer","minimum":0},"updatedAt":{"type":"integer","minimum":0},"content":{"type":"object","properties":{"kind":{"enum":["clip","memo"]},"title":{"type":"string"},"transcript":{"type":"string"},"summary":{"type":"string"},"recordedAt":{"type":"integer","minimum":0},"isPinned":{"type":"boolean"},"updatedAt":{"type":"integer","minimum":0},"recordingSource":{"type":"string"},"recordingDevice":{"type":"object","properties":{"typeId":{"type":"string"},"deviceId":{"type":"string"},"modelId":{"type":"string"},"hardwareRevision":{"type":"string"}},"required":["typeId","deviceId"]},"location":{"type":"object","properties":{"latitude":{"type":"number"},"longitude":{"type":"number"},"label":{"type":"string"}},"required":["latitude","longitude"]}},"required":["kind","title","transcript","summary","recordedAt","isPinned"]},"processing":{"type":"object","properties":{"status":{"enum":["pending","transcribing","ready","no_speech","failed"]},"revision":{"type":"integer","minimum":0},"kind":{"enum":["clip","memo"]},"recordedAt":{"type":"integer","minimum":0},"captureInput":{"anyOf":[{"type":"string"},{"type":"null"}]},"mappingRevision":{"anyOf":[{"type":"string"},{"type":"null"}]},"language":{"anyOf":[{"type":"string"},{"type":"null"}]},"durationMs":{"anyOf":[{"type":"integer","minimum":0},{"type":"null"}]},"updatedAt":{"type":"integer","minimum":0}},"required":["status","revision"]},"source":{"anyOf":[{"type":"object","properties":{"applicationId":{"type":"string"},"externalId":{"type":"string"}},"required":["applicationId","externalId"]},{"type":"null"}]},"audio":{"type":"object","properties":{"retention":{"enum":["delete_after_transcription","local"]},"assets":{"type":"array","items":{"type":"object","properties":{"clientId":{"type":"string"},"assetId":{"type":"string"},"clientName":{"type":"string"},"state":{"enum":["available","pending_deletion","missing","deleted"]},"revision":{"type":"integer","minimum":0},"reportedAt":{"type":"integer","minimum":0}},"required":["clientId","assetId","clientName","state","revision","reportedAt"]}}},"required":["retention","assets"]}},"required":["id","revision","updatedAt","content","processing","source","audio"]},"RecordingResponse":{"type":"object","properties":{"ok":{"const":true},"requestId":{"type":"string"},"recording":{"$ref":"#/components/schemas/Recording"}},"required":["ok","requestId","recording"]},"WriteRecordingResponse":{"type":"object","properties":{"ok":{"const":true},"requestId":{"type":"string"},"recording":{"oneOf":[{"$ref":"#/components/schemas/Recording"},{"type":"object","properties":{"id":{"type":"string"},"revision":{"type":"integer","minimum":0}},"required":["id","revision"],"additionalProperties":false}]}},"required":["ok","requestId","recording"]},"ProcessingResponse":{"type":"object","properties":{"ok":{"const":true},"requestId":{"type":"string"},"recording":{"oneOf":[{"$ref":"#/components/schemas/Recording"},{"type":"object","properties":{"id":{"type":"string"},"revision":{"type":"integer","minimum":0}},"required":["id","revision"],"additionalProperties":false}]},"processingRevision":{"type":"integer","minimum":0}},"required":["ok","requestId","recording","processingRevision"]},"DevicesResponse":{"type":"object","properties":{"ok":{"const":true},"requestId":{"type":"string"},"devices":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string"},"typeId":{"type":"string"},"defaultName":{"type":"string"},"customName":{"anyOf":[{"type":"string"},{"type":"null"}]},"hardwareId":{"anyOf":[{"type":"string"},{"type":"null"}]},"revision":{"type":"integer","minimum":0},"deleted":{"type":"boolean"},"updatedAt":{"type":"integer","minimum":0}},"required":["id","typeId","defaultName","customName","hardwareId","revision","deleted","updatedAt"]}}},"required":["ok","requestId","devices"]},"ImportResponse":{"type":"object","properties":{"ok":{"const":true},"requestId":{"type":"string"},"recording":{"oneOf":[{"$ref":"#/components/schemas/Recording"},{"type":"object","properties":{"id":{"type":"string"},"revision":{"type":"integer","minimum":0}},"required":["id","revision"],"additionalProperties":false}]},"replayed":{"type":"boolean"}},"required":["ok","requestId","recording","replayed"]},"RecordingsResponse":{"type":"object","properties":{"ok":{"const":true},"requestId":{"type":"string"},"recordings":{"type":"array","items":{"$ref":"#/components/schemas/Recording"}},"nextCursor":{"anyOf":[{"type":"string"},{"type":"null"}]}},"required":["ok","requestId","recordings","nextCursor"]},"DeleteRecordingResponse":{"type":"object","properties":{"ok":{"const":true},"requestId":{"type":"string"},"deleted":{"const":true},"id":{"type":"string"}},"required":["ok","requestId","deleted","id"]},"AssetResponse":{"type":"object","properties":{"ok":{"const":true},"requestId":{"type":"string"},"revision":{"type":"integer","minimum":0}},"required":["ok","requestId","revision"]},"MappingsResponse":{"type":"object","properties":{"ok":{"const":true},"requestId":{"type":"string"},"revisions":{"type":"array","items":{"$ref":"#/components/schemas/InputRevision"}}},"required":["ok","requestId","revisions"]},"EventsResponse":{"type":"object","properties":{"ok":{"const":true},"requestId":{"type":"string"},"events":{"type":"array","items":{"type":"object","properties":{"id":{"type":"integer","minimum":0},"type":{"enum":["recording.created","recording.updated","recording.transcript_ready","recording.deleted"]},"recordingId":{"type":"string"},"revision":{"type":"integer","minimum":0},"createdAt":{"type":"integer","minimum":0}},"required":["id","type","recordingId","revision","createdAt"]}},"cursor":{"type":"integer","minimum":0},"hasMore":{"type":"boolean"}},"required":["ok","requestId","events","cursor","hasMore"]},"TokensResponse":{"type":"object","properties":{"ok":{"const":true},"requestId":{"type":"string"},"tokens":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string"},"name":{"type":"string"},"applicationId":{"type":"string"},"scopes":{"type":"array","items":{"type":"string"}},"expiresAt":{"type":"integer","minimum":0},"createdAt":{"type":"integer","minimum":0},"revokedAt":{"anyOf":[{"type":"integer","minimum":0},{"type":"null"}]},"lastUsedAt":{"anyOf":[{"type":"integer","minimum":0},{"type":"null"}]}},"required":["id","name","applicationId","scopes","expiresAt","createdAt","revokedAt","lastUsedAt"]}}},"required":["ok","requestId","tokens"]},"CreateTokenResponse":{"type":"object","properties":{"ok":{"const":true},"requestId":{"type":"string"},"id":{"type":"string"},"token":{"type":"string"},"applicationId":{"type":"string"},"name":{"type":"string"},"scopes":{"type":"array","items":{"type":"string"}},"expiresAt":{"type":"integer","minimum":0}},"required":["ok","requestId","id","token","applicationId","name","scopes","expiresAt"]},"RevokeTokenResponse":{"type":"object","properties":{"ok":{"const":true},"requestId":{"type":"string"},"revoked":{"const":true}},"required":["ok","requestId","revoked"]},"WebhooksResponse":{"type":"object","properties":{"ok":{"const":true},"requestId":{"type":"string"},"webhooks":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string"},"url":{"type":"string"},"events":{"type":"array","items":{"type":"string"}},"createdAt":{"type":"integer","minimum":0},"disabledAt":{"anyOf":[{"type":"integer","minimum":0},{"type":"null"}]},"payloadMode":{"enum":["event","text"]},"rules":{"anyOf":[{"type":"object","properties":{"prefix":{"anyOf":[{"type":"string"},{"type":"null"}]},"captureInput":{"anyOf":[{"type":"string"},{"type":"null"}]},"kind":{"anyOf":[{"type":"string"},{"type":"null"}]}},"required":[]},{"type":"null"}]},"deliveredCount":{"type":"integer","minimum":0},"queuedCount":{"type":"integer","minimum":0},"failedCount":{"type":"integer","minimum":0}},"required":["id","url","events","createdAt","disabledAt","payloadMode","rules","deliveredCount","queuedCount","failedCount"]}}},"required":["ok","requestId","webhooks"]},"CreateWebhookResponse":{"type":"object","properties":{"ok":{"const":true},"requestId":{"type":"string"},"id":{"type":"string"},"url":{"type":"string"},"events":{"type":"array","items":{"type":"string"}},"secret":{"type":"string"},"payloadMode":{"enum":["event","text"]},"rules":{"anyOf":[{"type":"object","properties":{"prefix":{"anyOf":[{"type":"string"},{"type":"null"}]},"captureInput":{"anyOf":[{"type":"string"},{"type":"null"}]},"kind":{"anyOf":[{"type":"string"},{"type":"null"}]}},"required":[]},{"type":"null"}]}},"required":["ok","requestId","id","url","events","secret","payloadMode","rules"]},"DisableWebhookResponse":{"type":"object","properties":{"ok":{"const":true},"requestId":{"type":"string"},"disabled":{"const":true}},"required":["ok","requestId","disabled"]},"DeliveriesResponse":{"type":"object","properties":{"ok":{"const":true},"requestId":{"type":"string"},"deliveries":{"type":"array","items":{"type":"object","properties":{"id":{"type":"integer","minimum":0},"webhookId":{"type":"string"},"url":{"type":"string"},"revision":{"type":"integer","minimum":0},"origin":{"enum":["event","capture","manual"]},"attempts":{"type":"integer","minimum":0},"deliveredAt":{"anyOf":[{"type":"integer","minimum":0},{"type":"null"}]},"lastStatus":{"anyOf":[{"type":"integer","minimum":0},{"type":"null"}]},"status":{"enum":["queued","delivered","failed","disabled"]}},"required":["id","webhookId","url","revision","status"]}},"pending":{"type":"array","items":{"type":"object","properties":{"webhookId":{"type":"string"},"url":{"type":"string"},"status":{"enum":["pending_transcription","pending_capture_input","queued"]}},"required":["webhookId","url","status"]}}},"required":["ok","requestId","deliveries","pending"]},"SendDeliveryResponse":{"type":"object","properties":{"ok":{"const":true},"requestId":{"type":"string"},"deliveryId":{"type":"integer","minimum":0},"replayed":{"type":"boolean"}},"required":["ok","requestId","deliveryId","replayed"]},"OAuthAppsResponse":{"type":"object","properties":{"ok":{"const":true},"requestId":{"type":"string"},"apps":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string"},"name":{"anyOf":[{"type":"string"},{"type":"null"}]},"scopes":{"type":"array","items":{"type":"string"}},"createdAt":{"anyOf":[{"type":"string"},{"type":"null"}]},"updatedAt":{"anyOf":[{"type":"string"},{"type":"null"}]}},"required":["id","name","scopes","createdAt","updatedAt"]}}},"required":["ok","requestId","apps"]},"Error":{"type":"object","properties":{"ok":{"const":false},"requestId":{"type":"string"},"error":{"type":"object","properties":{"code":{"type":"string"},"message":{"type":"string"}},"required":["code","message"]}},"required":["ok","requestId","error"]}}}}