{"openapi":"3.1.0","info":{"title":"Interloom REST API","version":"preview"},"paths":{"/api/v1/public/spaces":{"get":{"tags":["Spaces"],"summary":"List Spaces Endpoint","operationId":"listSpaces","parameters":[{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":100,"minimum":1,"description":"Maximum number of spaces to return.","default":30,"title":"Limit"},"description":"Maximum number of spaces to return."},{"name":"cursor","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Opaque pagination cursor from next_cursor in a previous response.","title":"Cursor"},"description":"Opaque pagination cursor from next_cursor in a previous response."},{"name":"authorization","in":"header","required":false,"schema":{"type":"string","default":"","title":"Authorization"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ListSpacesResponse"}}}},"401":{"description":"Missing or invalid authentication token.","content":{"application/json":{"schema":{"title":"ApiError","type":"object","required":["error"],"properties":{"error":{"title":"ApiErrorDetail","type":"object","required":["code","message"],"properties":{"code":{"type":"string","description":"Stable machine-readable error code."},"message":{"type":"string","description":"Human-readable error message."}}}}},"example":{"error":{"code":"unauthorized","message":"Missing or invalid authentication token."}}}}},"429":{"description":"Too many requests. Try again later.","content":{"application/json":{"schema":{"title":"ApiError","type":"object","required":["error"],"properties":{"error":{"title":"ApiErrorDetail","type":"object","required":["code","message"],"properties":{"code":{"type":"string","description":"Stable machine-readable error code."},"message":{"type":"string","description":"Human-readable error message."}}}}},"example":{"error":{"code":"rate_limit_exceeded","message":"Too many requests. Try again later."}}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"400":{"description":"Cursor is invalid.","content":{"application/json":{"schema":{"title":"ApiError","type":"object","required":["error"],"properties":{"error":{"title":"ApiErrorDetail","type":"object","required":["code","message"],"properties":{"code":{"type":"string","description":"Stable machine-readable error code."},"message":{"type":"string","description":"Human-readable error message."}}}}},"example":{"error":{"code":"invalid_cursor","message":"Cursor is invalid."}}}}}}},"post":{"tags":["Spaces"],"summary":"Create Space Endpoint","operationId":"createSpace","parameters":[{"name":"authorization","in":"header","required":false,"schema":{"type":"string","default":"","title":"Authorization"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateSpaceRequest"}}}},"responses":{"201":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Space"}}}},"401":{"description":"Missing or invalid authentication token.","content":{"application/json":{"schema":{"title":"ApiError","type":"object","required":["error"],"properties":{"error":{"title":"ApiErrorDetail","type":"object","required":["code","message"],"properties":{"code":{"type":"string","description":"Stable machine-readable error code."},"message":{"type":"string","description":"Human-readable error message."}}}}},"example":{"error":{"code":"unauthorized","message":"Missing or invalid authentication token."}}}}},"429":{"description":"Too many requests. Try again later.","content":{"application/json":{"schema":{"title":"ApiError","type":"object","required":["error"],"properties":{"error":{"title":"ApiErrorDetail","type":"object","required":["code","message"],"properties":{"code":{"type":"string","description":"Stable machine-readable error code."},"message":{"type":"string","description":"Human-readable error message."}}}}},"example":{"error":{"code":"rate_limit_exceeded","message":"Too many requests. Try again later."}}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"404":{"description":"Space not found.","content":{"application/json":{"schema":{"title":"ApiError","type":"object","required":["error"],"properties":{"error":{"title":"ApiErrorDetail","type":"object","required":["code","message"],"properties":{"code":{"type":"string","description":"Stable machine-readable error code."},"message":{"type":"string","description":"Human-readable error message."}}}}},"example":{"error":{"code":"space_not_found","message":"Space not found."}}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"title":"ApiError","type":"object","required":["error"],"properties":{"error":{"title":"ApiErrorDetail","type":"object","required":["code","message"],"properties":{"code":{"type":"string","description":"Stable machine-readable error code."},"message":{"type":"string","description":"Human-readable error message."}}}}},"examples":{"empty_space_name":{"summary":"Name cannot be empty string.","value":{"error":{"code":"empty_space_name","message":"Name cannot be empty string."}}},"invalid_space_request":{"summary":"The space request is invalid.","value":{"error":{"code":"invalid_space_request","message":"The space request is invalid."}}}}}}}}}},"/api/v1/public/spaces/{space_id}":{"get":{"tags":["Spaces"],"summary":"Space Endpoint","operationId":"getSpace","parameters":[{"name":"space_id","in":"path","required":true,"schema":{"type":"string","title":"Space Id"}},{"name":"authorization","in":"header","required":false,"schema":{"type":"string","default":"","title":"Authorization"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Space"}}}},"401":{"description":"Missing or invalid authentication token.","content":{"application/json":{"schema":{"title":"ApiError","type":"object","required":["error"],"properties":{"error":{"title":"ApiErrorDetail","type":"object","required":["code","message"],"properties":{"code":{"type":"string","description":"Stable machine-readable error code."},"message":{"type":"string","description":"Human-readable error message."}}}}},"example":{"error":{"code":"unauthorized","message":"Missing or invalid authentication token."}}}}},"429":{"description":"Too many requests. Try again later.","content":{"application/json":{"schema":{"title":"ApiError","type":"object","required":["error"],"properties":{"error":{"title":"ApiErrorDetail","type":"object","required":["code","message"],"properties":{"code":{"type":"string","description":"Stable machine-readable error code."},"message":{"type":"string","description":"Human-readable error message."}}}}},"example":{"error":{"code":"rate_limit_exceeded","message":"Too many requests. Try again later."}}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"404":{"description":"Space not found.","content":{"application/json":{"schema":{"title":"ApiError","type":"object","required":["error"],"properties":{"error":{"title":"ApiErrorDetail","type":"object","required":["code","message"],"properties":{"code":{"type":"string","description":"Stable machine-readable error code."},"message":{"type":"string","description":"Human-readable error message."}}}}},"example":{"error":{"code":"space_not_found","message":"Space not found."}}}}}}},"patch":{"tags":["Spaces"],"summary":"Update Space Endpoint","operationId":"updateSpace","parameters":[{"name":"space_id","in":"path","required":true,"schema":{"type":"string","title":"Space Id"}},{"name":"authorization","in":"header","required":false,"schema":{"type":"string","default":"","title":"Authorization"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateSpaceRequest"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Space"}}}},"401":{"description":"Missing or invalid authentication token.","content":{"application/json":{"schema":{"title":"ApiError","type":"object","required":["error"],"properties":{"error":{"title":"ApiErrorDetail","type":"object","required":["code","message"],"properties":{"code":{"type":"string","description":"Stable machine-readable error code."},"message":{"type":"string","description":"Human-readable error message."}}}}},"example":{"error":{"code":"unauthorized","message":"Missing or invalid authentication token."}}}}},"429":{"description":"Too many requests. Try again later.","content":{"application/json":{"schema":{"title":"ApiError","type":"object","required":["error"],"properties":{"error":{"title":"ApiErrorDetail","type":"object","required":["code","message"],"properties":{"code":{"type":"string","description":"Stable machine-readable error code."},"message":{"type":"string","description":"Human-readable error message."}}}}},"example":{"error":{"code":"rate_limit_exceeded","message":"Too many requests. Try again later."}}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"404":{"description":"Space not found.","content":{"application/json":{"schema":{"title":"ApiError","type":"object","required":["error"],"properties":{"error":{"title":"ApiErrorDetail","type":"object","required":["code","message"],"properties":{"code":{"type":"string","description":"Stable machine-readable error code."},"message":{"type":"string","description":"Human-readable error message."}}}}},"example":{"error":{"code":"space_not_found","message":"Space not found."}}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"title":"ApiError","type":"object","required":["error"],"properties":{"error":{"title":"ApiErrorDetail","type":"object","required":["code","message"],"properties":{"code":{"type":"string","description":"Stable machine-readable error code."},"message":{"type":"string","description":"Human-readable error message."}}}}},"examples":{"empty_space_name":{"summary":"Name cannot be empty string.","value":{"error":{"code":"empty_space_name","message":"Name cannot be empty string."}}},"invalid_space_request":{"summary":"The space request is invalid.","value":{"error":{"code":"invalid_space_request","message":"The space request is invalid."}}}}}}}}},"delete":{"tags":["Spaces"],"summary":"Delete Space Endpoint","operationId":"deleteSpace","parameters":[{"name":"space_id","in":"path","required":true,"schema":{"type":"string","title":"Space Id"}},{"name":"authorization","in":"header","required":false,"schema":{"type":"string","default":"","title":"Authorization"}}],"responses":{"204":{"description":"Successful Response"},"401":{"description":"Missing or invalid authentication token.","content":{"application/json":{"schema":{"title":"ApiError","type":"object","required":["error"],"properties":{"error":{"title":"ApiErrorDetail","type":"object","required":["code","message"],"properties":{"code":{"type":"string","description":"Stable machine-readable error code."},"message":{"type":"string","description":"Human-readable error message."}}}}},"example":{"error":{"code":"unauthorized","message":"Missing or invalid authentication token."}}}}},"429":{"description":"Too many requests. Try again later.","content":{"application/json":{"schema":{"title":"ApiError","type":"object","required":["error"],"properties":{"error":{"title":"ApiErrorDetail","type":"object","required":["code","message"],"properties":{"code":{"type":"string","description":"Stable machine-readable error code."},"message":{"type":"string","description":"Human-readable error message."}}}}},"example":{"error":{"code":"rate_limit_exceeded","message":"Too many requests. Try again later."}}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"404":{"description":"Space not found.","content":{"application/json":{"schema":{"title":"ApiError","type":"object","required":["error"],"properties":{"error":{"title":"ApiErrorDetail","type":"object","required":["code","message"],"properties":{"code":{"type":"string","description":"Stable machine-readable error code."},"message":{"type":"string","description":"Human-readable error message."}}}}},"example":{"error":{"code":"space_not_found","message":"Space not found."}}}}}}}},"/api/v1/public/cases":{"get":{"tags":["Cases"],"summary":"List Cases Endpoint","operationId":"listCases","parameters":[{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":100,"minimum":1,"description":"Maximum number of cases to return.","default":30,"title":"Limit"},"description":"Maximum number of cases to return."},{"name":"cursor","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Opaque pagination cursor from next_cursor in a previous response. Use it with the same filters and sort options as the request that returned it.","title":"Cursor"},"description":"Opaque pagination cursor from next_cursor in a previous response. Use it with the same filters and sort options as the request that returned it."},{"name":"space_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}],"description":"Return root cases directly under this Space.","title":"Space Id"},"description":"Return root cases directly under this Space."},{"name":"parent_case_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}],"description":"Return child cases directly under this parent Case.","title":"Parent Case Id"},"description":"Return child cases directly under this parent Case."},{"name":"assignee_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}],"description":"Return cases assigned to this User.","title":"Assignee Id"},"description":"Return cases assigned to this User."},{"name":"status","in":"query","required":false,"schema":{"anyOf":[{"type":"array","items":{"type":"string"}},{"type":"null"}],"description":"Return cases with any of these statuses. Repeat status for multiple values. Supported values are open, started, completed, cancelled, and blocked; unsupported values match no cases.","title":"Status"},"description":"Return cases with any of these statuses. Repeat status for multiple values. Supported values are open, started, completed, cancelled, and blocked; unsupported values match no cases."},{"name":"sort","in":"query","required":false,"schema":{"enum":["position","created_at","updated_at"],"type":"string","description":"Field to sort by. Use position, created_at, or updated_at.","default":"created_at","title":"Sort"},"description":"Field to sort by. Use position, created_at, or updated_at."},{"name":"direction","in":"query","required":false,"schema":{"enum":["asc","desc"],"type":"string","description":"Sort direction. Use asc or desc.","default":"desc","title":"Direction"},"description":"Sort direction. Use asc or desc."},{"name":"authorization","in":"header","required":false,"schema":{"type":"string","default":"","title":"Authorization"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ListCasesResponse"}}}},"401":{"description":"Missing or invalid authentication token.","content":{"application/json":{"schema":{"title":"ApiError","type":"object","required":["error"],"properties":{"error":{"title":"ApiErrorDetail","type":"object","required":["code","message"],"properties":{"code":{"type":"string","description":"Stable machine-readable error code."},"message":{"type":"string","description":"Human-readable error message."}}}}},"example":{"error":{"code":"unauthorized","message":"Missing or invalid authentication token."}}}}},"429":{"description":"Too many requests. Try again later.","content":{"application/json":{"schema":{"title":"ApiError","type":"object","required":["error"],"properties":{"error":{"title":"ApiErrorDetail","type":"object","required":["code","message"],"properties":{"code":{"type":"string","description":"Stable machine-readable error code."},"message":{"type":"string","description":"Human-readable error message."}}}}},"example":{"error":{"code":"rate_limit_exceeded","message":"Too many requests. Try again later."}}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"title":"ApiError","type":"object","required":["error"],"properties":{"error":{"title":"ApiErrorDetail","type":"object","required":["code","message"],"properties":{"code":{"type":"string","description":"Stable machine-readable error code."},"message":{"type":"string","description":"Human-readable error message."}}}}},"examples":{"invalid_case_filters":{"summary":"The case filters are invalid.","value":{"error":{"code":"invalid_case_filters","message":"The case filters are invalid."}}},"invalid_cursor":{"summary":"Cursor is invalid.","value":{"error":{"code":"invalid_cursor","message":"Cursor is invalid."}}}}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"title":"ApiError","type":"object","required":["error"],"properties":{"error":{"title":"ApiErrorDetail","type":"object","required":["code","message"],"properties":{"code":{"type":"string","description":"Stable machine-readable error code."},"message":{"type":"string","description":"Human-readable error message."}}}}},"examples":{"parent_case_not_found":{"summary":"Parent case not found.","value":{"error":{"code":"parent_case_not_found","message":"Parent case not found."}}},"space_not_found":{"summary":"Space not found.","value":{"error":{"code":"space_not_found","message":"Space not found."}}},"user_not_found":{"summary":"User not found.","value":{"error":{"code":"user_not_found","message":"User not found."}}}}}}}}},"post":{"tags":["Cases"],"summary":"Create Case Endpoint","operationId":"createCase","parameters":[{"name":"authorization","in":"header","required":false,"schema":{"type":"string","default":"","title":"Authorization"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateCaseRequest"}}}},"responses":{"201":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Case"}}}},"401":{"description":"Missing or invalid authentication token.","content":{"application/json":{"schema":{"title":"ApiError","type":"object","required":["error"],"properties":{"error":{"title":"ApiErrorDetail","type":"object","required":["code","message"],"properties":{"code":{"type":"string","description":"Stable machine-readable error code."},"message":{"type":"string","description":"Human-readable error message."}}}}},"example":{"error":{"code":"unauthorized","message":"Missing or invalid authentication token."}}}}},"429":{"description":"Too many requests. Try again later.","content":{"application/json":{"schema":{"title":"ApiError","type":"object","required":["error"],"properties":{"error":{"title":"ApiErrorDetail","type":"object","required":["code","message"],"properties":{"code":{"type":"string","description":"Stable machine-readable error code."},"message":{"type":"string","description":"Human-readable error message."}}}}},"example":{"error":{"code":"rate_limit_exceeded","message":"Too many requests. Try again later."}}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"title":"ApiError","type":"object","required":["error"],"properties":{"error":{"title":"ApiErrorDetail","type":"object","required":["code","message"],"properties":{"code":{"type":"string","description":"Stable machine-readable error code."},"message":{"type":"string","description":"Human-readable error message."}}}}},"examples":{"attached_files_not_found":{"summary":"One or more attached files were not found.","value":{"error":{"code":"attached_files_not_found","message":"One or more attached files were not found."}}},"case_not_found":{"summary":"Case not found.","value":{"error":{"code":"case_not_found","message":"Case not found."}}},"parent_case_not_found":{"summary":"Parent case not found.","value":{"error":{"code":"parent_case_not_found","message":"Parent case not found."}}},"space_not_found":{"summary":"Space not found.","value":{"error":{"code":"space_not_found","message":"Space not found."}}},"user_not_found":{"summary":"User not found.","value":{"error":{"code":"user_not_found","message":"User not found."}}}}}}},"409":{"description":"A case with this external_id already exists in the space.","content":{"application/json":{"schema":{"title":"ApiError","type":"object","required":["error"],"properties":{"error":{"title":"ApiErrorDetail","type":"object","required":["code","message"],"properties":{"code":{"type":"string","description":"Stable machine-readable error code."},"message":{"type":"string","description":"Human-readable error message."}}}}},"example":{"error":{"code":"case_external_id_conflict","message":"A case with this external_id already exists in the space."}}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"title":"ApiError","type":"object","required":["error"],"properties":{"error":{"title":"ApiErrorDetail","type":"object","required":["code","message"],"properties":{"code":{"type":"string","description":"Stable machine-readable error code."},"message":{"type":"string","description":"Human-readable error message."}}}}},"examples":{"invalid_case_parent":{"summary":"Exactly one of space_id or parent_case_id must be provided.","value":{"error":{"code":"invalid_case_parent","message":"Exactly one of space_id or parent_case_id must be provided."}}},"empty_case_tag_name":{"summary":"Tag name cannot be empty.","value":{"error":{"code":"empty_case_tag_name","message":"Tag name cannot be empty."}}},"empty_case_title":{"summary":"Title cannot be empty string.","value":{"error":{"code":"empty_case_title","message":"Title cannot be empty string."}}},"invalid_case_request":{"summary":"The case request is invalid.","value":{"error":{"code":"invalid_case_request","message":"The case request is invalid."}}},"file_thread_mismatch":{"summary":"File belongs to another thread.","value":{"error":{"code":"file_thread_mismatch","message":"File belongs to another thread."}}}}}}}}}},"/api/v1/public/cases/{case_id}":{"get":{"tags":["Cases"],"summary":"Case Endpoint","operationId":"getCase","parameters":[{"name":"case_id","in":"path","required":true,"schema":{"type":"string","title":"Case Id"}},{"name":"authorization","in":"header","required":false,"schema":{"type":"string","default":"","title":"Authorization"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Case"}}}},"401":{"description":"Missing or invalid authentication token.","content":{"application/json":{"schema":{"title":"ApiError","type":"object","required":["error"],"properties":{"error":{"title":"ApiErrorDetail","type":"object","required":["code","message"],"properties":{"code":{"type":"string","description":"Stable machine-readable error code."},"message":{"type":"string","description":"Human-readable error message."}}}}},"example":{"error":{"code":"unauthorized","message":"Missing or invalid authentication token."}}}}},"429":{"description":"Too many requests. Try again later.","content":{"application/json":{"schema":{"title":"ApiError","type":"object","required":["error"],"properties":{"error":{"title":"ApiErrorDetail","type":"object","required":["code","message"],"properties":{"code":{"type":"string","description":"Stable machine-readable error code."},"message":{"type":"string","description":"Human-readable error message."}}}}},"example":{"error":{"code":"rate_limit_exceeded","message":"Too many requests. Try again later."}}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"404":{"description":"Case not found.","content":{"application/json":{"schema":{"title":"ApiError","type":"object","required":["error"],"properties":{"error":{"title":"ApiErrorDetail","type":"object","required":["code","message"],"properties":{"code":{"type":"string","description":"Stable machine-readable error code."},"message":{"type":"string","description":"Human-readable error message."}}}}},"example":{"error":{"code":"case_not_found","message":"Case not found."}}}}}}},"patch":{"tags":["Cases"],"summary":"Update Case Endpoint","operationId":"updateCase","parameters":[{"name":"case_id","in":"path","required":true,"schema":{"type":"string","title":"Case Id"}},{"name":"authorization","in":"header","required":false,"schema":{"type":"string","default":"","title":"Authorization"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateCaseRequest"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Case"}}}},"401":{"description":"Missing or invalid authentication token.","content":{"application/json":{"schema":{"title":"ApiError","type":"object","required":["error"],"properties":{"error":{"title":"ApiErrorDetail","type":"object","required":["code","message"],"properties":{"code":{"type":"string","description":"Stable machine-readable error code."},"message":{"type":"string","description":"Human-readable error message."}}}}},"example":{"error":{"code":"unauthorized","message":"Missing or invalid authentication token."}}}}},"429":{"description":"Too many requests. Try again later.","content":{"application/json":{"schema":{"title":"ApiError","type":"object","required":["error"],"properties":{"error":{"title":"ApiErrorDetail","type":"object","required":["code","message"],"properties":{"code":{"type":"string","description":"Stable machine-readable error code."},"message":{"type":"string","description":"Human-readable error message."}}}}},"example":{"error":{"code":"rate_limit_exceeded","message":"Too many requests. Try again later."}}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"title":"ApiError","type":"object","required":["error"],"properties":{"error":{"title":"ApiErrorDetail","type":"object","required":["code","message"],"properties":{"code":{"type":"string","description":"Stable machine-readable error code."},"message":{"type":"string","description":"Human-readable error message."}}}}},"examples":{"case_not_found":{"summary":"Case not found.","value":{"error":{"code":"case_not_found","message":"Case not found."}}},"parent_case_not_found":{"summary":"Parent case not found.","value":{"error":{"code":"parent_case_not_found","message":"Parent case not found."}}},"space_not_found":{"summary":"Space not found.","value":{"error":{"code":"space_not_found","message":"Space not found."}}},"user_not_found":{"summary":"User not found.","value":{"error":{"code":"user_not_found","message":"User not found."}}}}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"title":"ApiError","type":"object","required":["error"],"properties":{"error":{"title":"ApiErrorDetail","type":"object","required":["code","message"],"properties":{"code":{"type":"string","description":"Stable machine-readable error code."},"message":{"type":"string","description":"Human-readable error message."}}}}},"examples":{"invalid_case_parent":{"summary":"Exactly one of space_id or parent_case_id must be provided.","value":{"error":{"code":"invalid_case_parent","message":"Exactly one of space_id or parent_case_id must be provided."}}},"case_cannot_parent_itself":{"summary":"A case cannot be its own parent.","value":{"error":{"code":"case_cannot_parent_itself","message":"A case cannot be its own parent."}}},"case_parent_cycle":{"summary":"Cannot move a case under one of its descendants.","value":{"error":{"code":"case_parent_cycle","message":"Cannot move a case under one of its descendants."}}},"empty_case_tag_name":{"summary":"Tag name cannot be empty.","value":{"error":{"code":"empty_case_tag_name","message":"Tag name cannot be empty."}}},"empty_case_title":{"summary":"Title cannot be empty string.","value":{"error":{"code":"empty_case_title","message":"Title cannot be empty string."}}},"invalid_case_request":{"summary":"The case request is invalid.","value":{"error":{"code":"invalid_case_request","message":"The case request is invalid."}}}}}}}}},"delete":{"tags":["Cases"],"summary":"Delete Case Endpoint","operationId":"deleteCase","parameters":[{"name":"case_id","in":"path","required":true,"schema":{"type":"string","title":"Case Id"}},{"name":"authorization","in":"header","required":false,"schema":{"type":"string","default":"","title":"Authorization"}}],"responses":{"204":{"description":"Successful Response"},"401":{"description":"Missing or invalid authentication token.","content":{"application/json":{"schema":{"title":"ApiError","type":"object","required":["error"],"properties":{"error":{"title":"ApiErrorDetail","type":"object","required":["code","message"],"properties":{"code":{"type":"string","description":"Stable machine-readable error code."},"message":{"type":"string","description":"Human-readable error message."}}}}},"example":{"error":{"code":"unauthorized","message":"Missing or invalid authentication token."}}}}},"429":{"description":"Too many requests. Try again later.","content":{"application/json":{"schema":{"title":"ApiError","type":"object","required":["error"],"properties":{"error":{"title":"ApiErrorDetail","type":"object","required":["code","message"],"properties":{"code":{"type":"string","description":"Stable machine-readable error code."},"message":{"type":"string","description":"Human-readable error message."}}}}},"example":{"error":{"code":"rate_limit_exceeded","message":"Too many requests. Try again later."}}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"404":{"description":"Case not found.","content":{"application/json":{"schema":{"title":"ApiError","type":"object","required":["error"],"properties":{"error":{"title":"ApiErrorDetail","type":"object","required":["code","message"],"properties":{"code":{"type":"string","description":"Stable machine-readable error code."},"message":{"type":"string","description":"Human-readable error message."}}}}},"example":{"error":{"code":"case_not_found","message":"Case not found."}}}}}}}},"/api/v1/public/case-ingestions":{"post":{"tags":["Case Ingestion"],"summary":"Create Case Ingestion Batch Endpoint","operationId":"createCaseIngestion","parameters":[{"name":"authorization","in":"header","required":false,"schema":{"type":"string","default":"","title":"Authorization"}}],"requestBody":{"required":true,"content":{"multipart/form-data":{"schema":{"$ref":"#/components/schemas/CreateCaseIngestionRequest"}}}},"responses":{"201":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CaseIngestion"}}}},"401":{"description":"Missing or invalid authentication token.","content":{"application/json":{"schema":{"title":"ApiError","type":"object","required":["error"],"properties":{"error":{"title":"ApiErrorDetail","type":"object","required":["code","message"],"properties":{"code":{"type":"string","description":"Stable machine-readable error code."},"message":{"type":"string","description":"Human-readable error message."}}}}},"example":{"error":{"code":"unauthorized","message":"Missing or invalid authentication token."}}}}},"429":{"description":"Too many requests. Try again later.","content":{"application/json":{"schema":{"title":"ApiError","type":"object","required":["error"],"properties":{"error":{"title":"ApiErrorDetail","type":"object","required":["code","message"],"properties":{"code":{"type":"string","description":"Stable machine-readable error code."},"message":{"type":"string","description":"Human-readable error message."}}}}},"example":{"error":{"code":"rate_limit_exceeded","message":"Too many requests. Try again later."}}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"400":{"description":"Manifest validation failed.","content":{"application/json":{"schema":{"title":"ApiError","type":"object","required":["error"],"properties":{"error":{"title":"ApiErrorDetail","type":"object","required":["code","message"],"properties":{"code":{"type":"string","description":"Stable machine-readable error code."},"message":{"type":"string","description":"Human-readable error message."}}}}},"example":{"error":{"code":"invalid_case_ingestion_manifest","message":"Manifest validation failed."}}}}},"404":{"description":"Space not found.","content":{"application/json":{"schema":{"title":"ApiError","type":"object","required":["error"],"properties":{"error":{"title":"ApiErrorDetail","type":"object","required":["code","message"],"properties":{"code":{"type":"string","description":"Stable machine-readable error code."},"message":{"type":"string","description":"Human-readable error message."}}}}},"example":{"error":{"code":"space_not_found","message":"Space not found."}}}}},"503":{"description":"Failed to start case ingestion workflow.","content":{"application/json":{"schema":{"title":"ApiError","type":"object","required":["error"],"properties":{"error":{"title":"ApiErrorDetail","type":"object","required":["code","message"],"properties":{"code":{"type":"string","description":"Stable machine-readable error code."},"message":{"type":"string","description":"Human-readable error message."}}}}},"example":{"error":{"code":"case_ingestion_workflow_unavailable","message":"Failed to start case ingestion workflow."}}}}}}}},"/api/v1/public/case-ingestions/{case_ingestion_id}":{"get":{"tags":["Case Ingestion"],"summary":"Case Ingestion Batch Endpoint","operationId":"getCaseIngestion","parameters":[{"name":"case_ingestion_id","in":"path","required":true,"schema":{"type":"string","title":"Case Ingestion Id"}},{"name":"authorization","in":"header","required":false,"schema":{"type":"string","default":"","title":"Authorization"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CaseIngestion"}}}},"401":{"description":"Missing or invalid authentication token.","content":{"application/json":{"schema":{"title":"ApiError","type":"object","required":["error"],"properties":{"error":{"title":"ApiErrorDetail","type":"object","required":["code","message"],"properties":{"code":{"type":"string","description":"Stable machine-readable error code."},"message":{"type":"string","description":"Human-readable error message."}}}}},"example":{"error":{"code":"unauthorized","message":"Missing or invalid authentication token."}}}}},"429":{"description":"Too many requests. Try again later.","content":{"application/json":{"schema":{"title":"ApiError","type":"object","required":["error"],"properties":{"error":{"title":"ApiErrorDetail","type":"object","required":["code","message"],"properties":{"code":{"type":"string","description":"Stable machine-readable error code."},"message":{"type":"string","description":"Human-readable error message."}}}}},"example":{"error":{"code":"rate_limit_exceeded","message":"Too many requests. Try again later."}}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"404":{"description":"Case ingestion not found.","content":{"application/json":{"schema":{"title":"ApiError","type":"object","required":["error"],"properties":{"error":{"title":"ApiErrorDetail","type":"object","required":["code","message"],"properties":{"code":{"type":"string","description":"Stable machine-readable error code."},"message":{"type":"string","description":"Human-readable error message."}}}}},"example":{"error":{"code":"case_ingestion_not_found","message":"Case ingestion not found."}}}}}}}},"/api/v1/public/case-ingestions/{case_ingestion_id}/errors":{"get":{"tags":["Case Ingestion"],"summary":"List Case Ingestion Batch Errors Endpoint","operationId":"listCaseIngestionErrors","parameters":[{"name":"case_ingestion_id","in":"path","required":true,"schema":{"type":"string","title":"Case Ingestion Id"}},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":100,"minimum":1,"description":"Maximum number of failed entries to return.","default":30,"title":"Limit"},"description":"Maximum number of failed entries to return."},{"name":"cursor","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Opaque pagination cursor from next_cursor in a previous response.","title":"Cursor"},"description":"Opaque pagination cursor from next_cursor in a previous response."},{"name":"authorization","in":"header","required":false,"schema":{"type":"string","default":"","title":"Authorization"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ListCaseIngestionErrorsResponse"}}}},"401":{"description":"Missing or invalid authentication token.","content":{"application/json":{"schema":{"title":"ApiError","type":"object","required":["error"],"properties":{"error":{"title":"ApiErrorDetail","type":"object","required":["code","message"],"properties":{"code":{"type":"string","description":"Stable machine-readable error code."},"message":{"type":"string","description":"Human-readable error message."}}}}},"example":{"error":{"code":"unauthorized","message":"Missing or invalid authentication token."}}}}},"429":{"description":"Too many requests. Try again later.","content":{"application/json":{"schema":{"title":"ApiError","type":"object","required":["error"],"properties":{"error":{"title":"ApiErrorDetail","type":"object","required":["code","message"],"properties":{"code":{"type":"string","description":"Stable machine-readable error code."},"message":{"type":"string","description":"Human-readable error message."}}}}},"example":{"error":{"code":"rate_limit_exceeded","message":"Too many requests. Try again later."}}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"404":{"description":"Case ingestion not found.","content":{"application/json":{"schema":{"title":"ApiError","type":"object","required":["error"],"properties":{"error":{"title":"ApiErrorDetail","type":"object","required":["code","message"],"properties":{"code":{"type":"string","description":"Stable machine-readable error code."},"message":{"type":"string","description":"Human-readable error message."}}}}},"example":{"error":{"code":"case_ingestion_not_found","message":"Case ingestion not found."}}}}},"400":{"description":"Cursor is invalid.","content":{"application/json":{"schema":{"title":"ApiError","type":"object","required":["error"],"properties":{"error":{"title":"ApiErrorDetail","type":"object","required":["code","message"],"properties":{"code":{"type":"string","description":"Stable machine-readable error code."},"message":{"type":"string","description":"Human-readable error message."}}}}},"example":{"error":{"code":"invalid_cursor","message":"Cursor is invalid."}}}}}}}},"/api/v1/public/models":{"get":{"tags":["Models"],"summary":"List Models Endpoint","operationId":"listModels","parameters":[{"name":"authorization","in":"header","required":false,"schema":{"type":"string","default":"","title":"Authorization"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ListModelsResponse"}}}},"401":{"description":"Missing or invalid authentication token.","content":{"application/json":{"schema":{"title":"ApiError","type":"object","required":["error"],"properties":{"error":{"title":"ApiErrorDetail","type":"object","required":["code","message"],"properties":{"code":{"type":"string","description":"Stable machine-readable error code."},"message":{"type":"string","description":"Human-readable error message."}}}}},"example":{"error":{"code":"unauthorized","message":"Missing or invalid authentication token."}}}}},"429":{"description":"Too many requests. Try again later.","content":{"application/json":{"schema":{"title":"ApiError","type":"object","required":["error"],"properties":{"error":{"title":"ApiErrorDetail","type":"object","required":["code","message"],"properties":{"code":{"type":"string","description":"Stable machine-readable error code."},"message":{"type":"string","description":"Human-readable error message."}}}}},"example":{"error":{"code":"rate_limit_exceeded","message":"Too many requests. Try again later."}}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}}}}},"/api/v1/public/agents":{"get":{"tags":["Agents"],"summary":"List Agents Endpoint","operationId":"listAgents","parameters":[{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":100,"minimum":1,"description":"Maximum number of agents to return.","default":30,"title":"Limit"},"description":"Maximum number of agents to return."},{"name":"cursor","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Opaque pagination cursor from next_cursor in a previous response.","title":"Cursor"},"description":"Opaque pagination cursor from next_cursor in a previous response."},{"name":"authorization","in":"header","required":false,"schema":{"type":"string","default":"","title":"Authorization"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ListAgentsResponse"}}}},"401":{"description":"Missing or invalid authentication token.","content":{"application/json":{"schema":{"title":"ApiError","type":"object","required":["error"],"properties":{"error":{"title":"ApiErrorDetail","type":"object","required":["code","message"],"properties":{"code":{"type":"string","description":"Stable machine-readable error code."},"message":{"type":"string","description":"Human-readable error message."}}}}},"example":{"error":{"code":"unauthorized","message":"Missing or invalid authentication token."}}}}},"429":{"description":"Too many requests. Try again later.","content":{"application/json":{"schema":{"title":"ApiError","type":"object","required":["error"],"properties":{"error":{"title":"ApiErrorDetail","type":"object","required":["code","message"],"properties":{"code":{"type":"string","description":"Stable machine-readable error code."},"message":{"type":"string","description":"Human-readable error message."}}}}},"example":{"error":{"code":"rate_limit_exceeded","message":"Too many requests. Try again later."}}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"400":{"description":"Cursor is invalid.","content":{"application/json":{"schema":{"title":"ApiError","type":"object","required":["error"],"properties":{"error":{"title":"ApiErrorDetail","type":"object","required":["code","message"],"properties":{"code":{"type":"string","description":"Stable machine-readable error code."},"message":{"type":"string","description":"Human-readable error message."}}}}},"example":{"error":{"code":"invalid_cursor","message":"Cursor is invalid."}}}}}}},"post":{"tags":["Agents"],"summary":"Create Agent Endpoint","operationId":"createAgent","parameters":[{"name":"authorization","in":"header","required":false,"schema":{"type":"string","default":"","title":"Authorization"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateAgentRequest"}}}},"responses":{"201":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Agent"}}}},"401":{"description":"Missing or invalid authentication token.","content":{"application/json":{"schema":{"title":"ApiError","type":"object","required":["error"],"properties":{"error":{"title":"ApiErrorDetail","type":"object","required":["code","message"],"properties":{"code":{"type":"string","description":"Stable machine-readable error code."},"message":{"type":"string","description":"Human-readable error message."}}}}},"example":{"error":{"code":"unauthorized","message":"Missing or invalid authentication token."}}}}},"429":{"description":"Too many requests. Try again later.","content":{"application/json":{"schema":{"title":"ApiError","type":"object","required":["error"],"properties":{"error":{"title":"ApiErrorDetail","type":"object","required":["code","message"],"properties":{"code":{"type":"string","description":"Stable machine-readable error code."},"message":{"type":"string","description":"Human-readable error message."}}}}},"example":{"error":{"code":"rate_limit_exceeded","message":"Too many requests. Try again later."}}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"404":{"description":"Agent not found.","content":{"application/json":{"schema":{"title":"ApiError","type":"object","required":["error"],"properties":{"error":{"title":"ApiErrorDetail","type":"object","required":["code","message"],"properties":{"code":{"type":"string","description":"Stable machine-readable error code."},"message":{"type":"string","description":"Human-readable error message."}}}}},"example":{"error":{"code":"agent_not_found","message":"Agent not found."}}}}},"400":{"description":"The agent request is invalid.","content":{"application/json":{"schema":{"title":"ApiError","type":"object","required":["error"],"properties":{"error":{"title":"ApiErrorDetail","type":"object","required":["code","message"],"properties":{"code":{"type":"string","description":"Stable machine-readable error code."},"message":{"type":"string","description":"Human-readable error message."}}}}},"example":{"error":{"code":"invalid_agent_request","message":"The agent request is invalid."}}}}}}}},"/api/v1/public/agents/{agent_id}":{"get":{"tags":["Agents"],"summary":"Agent Endpoint","operationId":"getAgent","parameters":[{"name":"agent_id","in":"path","required":true,"schema":{"type":"string","title":"Agent Id"}},{"name":"authorization","in":"header","required":false,"schema":{"type":"string","default":"","title":"Authorization"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Agent"}}}},"401":{"description":"Missing or invalid authentication token.","content":{"application/json":{"schema":{"title":"ApiError","type":"object","required":["error"],"properties":{"error":{"title":"ApiErrorDetail","type":"object","required":["code","message"],"properties":{"code":{"type":"string","description":"Stable machine-readable error code."},"message":{"type":"string","description":"Human-readable error message."}}}}},"example":{"error":{"code":"unauthorized","message":"Missing or invalid authentication token."}}}}},"429":{"description":"Too many requests. Try again later.","content":{"application/json":{"schema":{"title":"ApiError","type":"object","required":["error"],"properties":{"error":{"title":"ApiErrorDetail","type":"object","required":["code","message"],"properties":{"code":{"type":"string","description":"Stable machine-readable error code."},"message":{"type":"string","description":"Human-readable error message."}}}}},"example":{"error":{"code":"rate_limit_exceeded","message":"Too many requests. Try again later."}}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"404":{"description":"Agent not found.","content":{"application/json":{"schema":{"title":"ApiError","type":"object","required":["error"],"properties":{"error":{"title":"ApiErrorDetail","type":"object","required":["code","message"],"properties":{"code":{"type":"string","description":"Stable machine-readable error code."},"message":{"type":"string","description":"Human-readable error message."}}}}},"example":{"error":{"code":"agent_not_found","message":"Agent not found."}}}}}}},"patch":{"tags":["Agents"],"summary":"Update Agent Endpoint","operationId":"updateAgent","parameters":[{"name":"agent_id","in":"path","required":true,"schema":{"type":"string","title":"Agent Id"}},{"name":"authorization","in":"header","required":false,"schema":{"type":"string","default":"","title":"Authorization"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateAgentRequest"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Agent"}}}},"401":{"description":"Missing or invalid authentication token.","content":{"application/json":{"schema":{"title":"ApiError","type":"object","required":["error"],"properties":{"error":{"title":"ApiErrorDetail","type":"object","required":["code","message"],"properties":{"code":{"type":"string","description":"Stable machine-readable error code."},"message":{"type":"string","description":"Human-readable error message."}}}}},"example":{"error":{"code":"unauthorized","message":"Missing or invalid authentication token."}}}}},"429":{"description":"Too many requests. Try again later.","content":{"application/json":{"schema":{"title":"ApiError","type":"object","required":["error"],"properties":{"error":{"title":"ApiErrorDetail","type":"object","required":["code","message"],"properties":{"code":{"type":"string","description":"Stable machine-readable error code."},"message":{"type":"string","description":"Human-readable error message."}}}}},"example":{"error":{"code":"rate_limit_exceeded","message":"Too many requests. Try again later."}}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"404":{"description":"Agent not found.","content":{"application/json":{"schema":{"title":"ApiError","type":"object","required":["error"],"properties":{"error":{"title":"ApiErrorDetail","type":"object","required":["code","message"],"properties":{"code":{"type":"string","description":"Stable machine-readable error code."},"message":{"type":"string","description":"Human-readable error message."}}}}},"example":{"error":{"code":"agent_not_found","message":"Agent not found."}}}}},"400":{"description":"The agent request is invalid.","content":{"application/json":{"schema":{"title":"ApiError","type":"object","required":["error"],"properties":{"error":{"title":"ApiErrorDetail","type":"object","required":["code","message"],"properties":{"code":{"type":"string","description":"Stable machine-readable error code."},"message":{"type":"string","description":"Human-readable error message."}}}}},"example":{"error":{"code":"invalid_agent_request","message":"The agent request is invalid."}}}}}}}},"/api/v1/public/files":{"get":{"tags":["Files"],"summary":"List Files Endpoint","operationId":"listFiles","parameters":[{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":100,"minimum":1,"description":"Maximum number of files to return.","default":30,"title":"Limit"},"description":"Maximum number of files to return."},{"name":"cursor","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Opaque pagination cursor from next_cursor in a previous response. Use it with the same filters and sort options as the request that returned it.","title":"Cursor"},"description":"Opaque pagination cursor from next_cursor in a previous response. Use it with the same filters and sort options as the request that returned it."},{"name":"space_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}],"description":"Return files directly under this Space.","title":"Space Id"},"description":"Return files directly under this Space."},{"name":"case_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}],"description":"Return files directly attached to this Case.","title":"Case Id"},"description":"Return files directly attached to this Case."},{"name":"sort","in":"query","required":false,"schema":{"enum":["created_at","updated_at"],"type":"string","description":"Field to sort by. Use created_at or updated_at.","default":"created_at","title":"Sort"},"description":"Field to sort by. Use created_at or updated_at."},{"name":"direction","in":"query","required":false,"schema":{"enum":["asc","desc"],"type":"string","description":"Sort direction. Use asc or desc.","default":"desc","title":"Direction"},"description":"Sort direction. Use asc or desc."},{"name":"authorization","in":"header","required":false,"schema":{"type":"string","default":"","title":"Authorization"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ListFilesResponse"}}}},"401":{"description":"Missing or invalid authentication token.","content":{"application/json":{"schema":{"title":"ApiError","type":"object","required":["error"],"properties":{"error":{"title":"ApiErrorDetail","type":"object","required":["code","message"],"properties":{"code":{"type":"string","description":"Stable machine-readable error code."},"message":{"type":"string","description":"Human-readable error message."}}}}},"example":{"error":{"code":"unauthorized","message":"Missing or invalid authentication token."}}}}},"429":{"description":"Too many requests. Try again later.","content":{"application/json":{"schema":{"title":"ApiError","type":"object","required":["error"],"properties":{"error":{"title":"ApiErrorDetail","type":"object","required":["code","message"],"properties":{"code":{"type":"string","description":"Stable machine-readable error code."},"message":{"type":"string","description":"Human-readable error message."}}}}},"example":{"error":{"code":"rate_limit_exceeded","message":"Too many requests. Try again later."}}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"title":"ApiError","type":"object","required":["error"],"properties":{"error":{"title":"ApiErrorDetail","type":"object","required":["code","message"],"properties":{"code":{"type":"string","description":"Stable machine-readable error code."},"message":{"type":"string","description":"Human-readable error message."}}}}},"examples":{"invalid_cursor":{"summary":"Cursor is invalid.","value":{"error":{"code":"invalid_cursor","message":"Cursor is invalid."}}},"invalid_file_parent":{"summary":"Provide at most one of space_id or case_id.","value":{"error":{"code":"invalid_file_parent","message":"Provide at most one of space_id or case_id."}}}}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"title":"ApiError","type":"object","required":["error"],"properties":{"error":{"title":"ApiErrorDetail","type":"object","required":["code","message"],"properties":{"code":{"type":"string","description":"Stable machine-readable error code."},"message":{"type":"string","description":"Human-readable error message."}}}}},"examples":{"space_not_found":{"summary":"Space not found.","value":{"error":{"code":"space_not_found","message":"Space not found."}}},"case_not_found":{"summary":"Case not found.","value":{"error":{"code":"case_not_found","message":"Case not found."}}}}}}}}},"post":{"tags":["Files"],"summary":"Upload File Endpoint","operationId":"createFile","parameters":[{"name":"authorization","in":"header","required":false,"schema":{"type":"string","default":"","title":"Authorization"}}],"requestBody":{"required":true,"content":{"multipart/form-data":{"schema":{"$ref":"#/components/schemas/CreateFileRequest"}}}},"responses":{"201":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/File"}}}},"401":{"description":"Missing or invalid authentication token.","content":{"application/json":{"schema":{"title":"ApiError","type":"object","required":["error"],"properties":{"error":{"title":"ApiErrorDetail","type":"object","required":["code","message"],"properties":{"code":{"type":"string","description":"Stable machine-readable error code."},"message":{"type":"string","description":"Human-readable error message."}}}}},"example":{"error":{"code":"unauthorized","message":"Missing or invalid authentication token."}}}}},"429":{"description":"Too many requests. Try again later.","content":{"application/json":{"schema":{"title":"ApiError","type":"object","required":["error"],"properties":{"error":{"title":"ApiErrorDetail","type":"object","required":["code","message"],"properties":{"code":{"type":"string","description":"Stable machine-readable error code."},"message":{"type":"string","description":"Human-readable error message."}}}}},"example":{"error":{"code":"rate_limit_exceeded","message":"Too many requests. Try again later."}}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"title":"ApiError","type":"object","required":["error"],"properties":{"error":{"title":"ApiErrorDetail","type":"object","required":["code","message"],"properties":{"code":{"type":"string","description":"Stable machine-readable error code."},"message":{"type":"string","description":"Human-readable error message."}}}}},"examples":{"file_too_large":{"summary":"File size exceeds maximum limit.","value":{"error":{"code":"file_too_large","message":"File size exceeds maximum limit."}}},"invalid_file_parent":{"summary":"Provide at most one of space_id or case_id.","value":{"error":{"code":"invalid_file_parent","message":"Provide at most one of space_id or case_id."}}},"invalid_file_request":{"summary":"The file request is invalid.","value":{"error":{"code":"invalid_file_request","message":"The file request is invalid."}}}}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"title":"ApiError","type":"object","required":["error"],"properties":{"error":{"title":"ApiErrorDetail","type":"object","required":["code","message"],"properties":{"code":{"type":"string","description":"Stable machine-readable error code."},"message":{"type":"string","description":"Human-readable error message."}}}}},"examples":{"space_not_found":{"summary":"Space not found.","value":{"error":{"code":"space_not_found","message":"Space not found."}}},"case_not_found":{"summary":"Case not found.","value":{"error":{"code":"case_not_found","message":"Case not found."}}}}}}}}}},"/api/v1/public/files/{file_id}":{"get":{"tags":["Files"],"summary":"File Endpoint","operationId":"getFile","parameters":[{"name":"file_id","in":"path","required":true,"schema":{"type":"string","title":"File Id"}},{"name":"authorization","in":"header","required":false,"schema":{"type":"string","default":"","title":"Authorization"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/File"}}}},"401":{"description":"Missing or invalid authentication token.","content":{"application/json":{"schema":{"title":"ApiError","type":"object","required":["error"],"properties":{"error":{"title":"ApiErrorDetail","type":"object","required":["code","message"],"properties":{"code":{"type":"string","description":"Stable machine-readable error code."},"message":{"type":"string","description":"Human-readable error message."}}}}},"example":{"error":{"code":"unauthorized","message":"Missing or invalid authentication token."}}}}},"429":{"description":"Too many requests. Try again later.","content":{"application/json":{"schema":{"title":"ApiError","type":"object","required":["error"],"properties":{"error":{"title":"ApiErrorDetail","type":"object","required":["code","message"],"properties":{"code":{"type":"string","description":"Stable machine-readable error code."},"message":{"type":"string","description":"Human-readable error message."}}}}},"example":{"error":{"code":"rate_limit_exceeded","message":"Too many requests. Try again later."}}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"404":{"description":"File not found.","content":{"application/json":{"schema":{"title":"ApiError","type":"object","required":["error"],"properties":{"error":{"title":"ApiErrorDetail","type":"object","required":["code","message"],"properties":{"code":{"type":"string","description":"Stable machine-readable error code."},"message":{"type":"string","description":"Human-readable error message."}}}}},"example":{"error":{"code":"file_not_found","message":"File not found."}}}}}}},"patch":{"tags":["Files"],"summary":"Update File Endpoint","operationId":"updateFile","parameters":[{"name":"file_id","in":"path","required":true,"schema":{"type":"string","title":"File Id"}},{"name":"authorization","in":"header","required":false,"schema":{"type":"string","default":"","title":"Authorization"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateFileRequest"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/File"}}}},"401":{"description":"Missing or invalid authentication token.","content":{"application/json":{"schema":{"title":"ApiError","type":"object","required":["error"],"properties":{"error":{"title":"ApiErrorDetail","type":"object","required":["code","message"],"properties":{"code":{"type":"string","description":"Stable machine-readable error code."},"message":{"type":"string","description":"Human-readable error message."}}}}},"example":{"error":{"code":"unauthorized","message":"Missing or invalid authentication token."}}}}},"429":{"description":"Too many requests. Try again later.","content":{"application/json":{"schema":{"title":"ApiError","type":"object","required":["error"],"properties":{"error":{"title":"ApiErrorDetail","type":"object","required":["code","message"],"properties":{"code":{"type":"string","description":"Stable machine-readable error code."},"message":{"type":"string","description":"Human-readable error message."}}}}},"example":{"error":{"code":"rate_limit_exceeded","message":"Too many requests. Try again later."}}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"title":"ApiError","type":"object","required":["error"],"properties":{"error":{"title":"ApiErrorDetail","type":"object","required":["code","message"],"properties":{"code":{"type":"string","description":"Stable machine-readable error code."},"message":{"type":"string","description":"Human-readable error message."}}}}},"examples":{"file_not_found":{"summary":"File not found.","value":{"error":{"code":"file_not_found","message":"File not found."}}},"space_not_found":{"summary":"Space not found.","value":{"error":{"code":"space_not_found","message":"Space not found."}}},"case_not_found":{"summary":"Case not found.","value":{"error":{"code":"case_not_found","message":"Case not found."}}}}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"title":"ApiError","type":"object","required":["error"],"properties":{"error":{"title":"ApiErrorDetail","type":"object","required":["code","message"],"properties":{"code":{"type":"string","description":"Stable machine-readable error code."},"message":{"type":"string","description":"Human-readable error message."}}}}},"examples":{"invalid_file_parent":{"summary":"Provide at most one of space_id or case_id.","value":{"error":{"code":"invalid_file_parent","message":"Provide at most one of space_id or case_id."}}},"invalid_file_request":{"summary":"The file request is invalid.","value":{"error":{"code":"invalid_file_request","message":"The file request is invalid."}}},"invalid_tag_name":{"summary":"Tag name cannot be empty.","value":{"error":{"code":"invalid_tag_name","message":"Tag name cannot be empty."}}}}}}}}},"delete":{"tags":["Files"],"summary":"Delete File Endpoint","operationId":"deleteFile","parameters":[{"name":"file_id","in":"path","required":true,"schema":{"type":"string","title":"File Id"}},{"name":"authorization","in":"header","required":false,"schema":{"type":"string","default":"","title":"Authorization"}}],"responses":{"204":{"description":"Successful Response"},"401":{"description":"Missing or invalid authentication token.","content":{"application/json":{"schema":{"title":"ApiError","type":"object","required":["error"],"properties":{"error":{"title":"ApiErrorDetail","type":"object","required":["code","message"],"properties":{"code":{"type":"string","description":"Stable machine-readable error code."},"message":{"type":"string","description":"Human-readable error message."}}}}},"example":{"error":{"code":"unauthorized","message":"Missing or invalid authentication token."}}}}},"429":{"description":"Too many requests. Try again later.","content":{"application/json":{"schema":{"title":"ApiError","type":"object","required":["error"],"properties":{"error":{"title":"ApiErrorDetail","type":"object","required":["code","message"],"properties":{"code":{"type":"string","description":"Stable machine-readable error code."},"message":{"type":"string","description":"Human-readable error message."}}}}},"example":{"error":{"code":"rate_limit_exceeded","message":"Too many requests. Try again later."}}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"404":{"description":"File not found.","content":{"application/json":{"schema":{"title":"ApiError","type":"object","required":["error"],"properties":{"error":{"title":"ApiErrorDetail","type":"object","required":["code","message"],"properties":{"code":{"type":"string","description":"Stable machine-readable error code."},"message":{"type":"string","description":"Human-readable error message."}}}}},"example":{"error":{"code":"file_not_found","message":"File not found."}}}}}}}},"/api/v1/public/procedures":{"get":{"tags":["Procedures"],"summary":"List Procedures Endpoint","operationId":"listProcedures","parameters":[{"name":"space_id","in":"query","required":true,"schema":{"type":"string","format":"uuid","description":"Return procedures owned by this Space.","title":"Space Id"},"description":"Return procedures owned by this Space."},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":100,"minimum":1,"description":"Maximum number of procedures to return.","default":30,"title":"Limit"},"description":"Maximum number of procedures to return."},{"name":"cursor","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Opaque pagination cursor from next_cursor in a previous response. Use it with the same space_id as the request that returned it.","title":"Cursor"},"description":"Opaque pagination cursor from next_cursor in a previous response. Use it with the same space_id as the request that returned it."},{"name":"authorization","in":"header","required":false,"schema":{"type":"string","default":"","title":"Authorization"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ListProceduresResponse"}}}},"401":{"description":"Missing or invalid authentication token.","content":{"application/json":{"schema":{"title":"ApiError","type":"object","required":["error"],"properties":{"error":{"title":"ApiErrorDetail","type":"object","required":["code","message"],"properties":{"code":{"type":"string","description":"Stable machine-readable error code."},"message":{"type":"string","description":"Human-readable error message."}}}}},"example":{"error":{"code":"unauthorized","message":"Missing or invalid authentication token."}}}}},"429":{"description":"Too many requests. Try again later.","content":{"application/json":{"schema":{"title":"ApiError","type":"object","required":["error"],"properties":{"error":{"title":"ApiErrorDetail","type":"object","required":["code","message"],"properties":{"code":{"type":"string","description":"Stable machine-readable error code."},"message":{"type":"string","description":"Human-readable error message."}}}}},"example":{"error":{"code":"rate_limit_exceeded","message":"Too many requests. Try again later."}}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"400":{"description":"Cursor is invalid.","content":{"application/json":{"schema":{"title":"ApiError","type":"object","required":["error"],"properties":{"error":{"title":"ApiErrorDetail","type":"object","required":["code","message"],"properties":{"code":{"type":"string","description":"Stable machine-readable error code."},"message":{"type":"string","description":"Human-readable error message."}}}}},"example":{"error":{"code":"invalid_cursor","message":"Cursor is invalid."}}}}},"404":{"description":"Space not found.","content":{"application/json":{"schema":{"title":"ApiError","type":"object","required":["error"],"properties":{"error":{"title":"ApiErrorDetail","type":"object","required":["code","message"],"properties":{"code":{"type":"string","description":"Stable machine-readable error code."},"message":{"type":"string","description":"Human-readable error message."}}}}},"example":{"error":{"code":"space_not_found","message":"Space not found."}}}}}}},"post":{"tags":["Procedures"],"summary":"Create Procedure Endpoint","operationId":"createProcedure","parameters":[{"name":"authorization","in":"header","required":false,"schema":{"type":"string","default":"","title":"Authorization"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateProcedureRequest"}}}},"responses":{"201":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Procedure"}}}},"401":{"description":"Missing or invalid authentication token.","content":{"application/json":{"schema":{"title":"ApiError","type":"object","required":["error"],"properties":{"error":{"title":"ApiErrorDetail","type":"object","required":["code","message"],"properties":{"code":{"type":"string","description":"Stable machine-readable error code."},"message":{"type":"string","description":"Human-readable error message."}}}}},"example":{"error":{"code":"unauthorized","message":"Missing or invalid authentication token."}}}}},"429":{"description":"Too many requests. Try again later.","content":{"application/json":{"schema":{"title":"ApiError","type":"object","required":["error"],"properties":{"error":{"title":"ApiErrorDetail","type":"object","required":["code","message"],"properties":{"code":{"type":"string","description":"Stable machine-readable error code."},"message":{"type":"string","description":"Human-readable error message."}}}}},"example":{"error":{"code":"rate_limit_exceeded","message":"Too many requests. Try again later."}}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"404":{"description":"Space not found.","content":{"application/json":{"schema":{"title":"ApiError","type":"object","required":["error"],"properties":{"error":{"title":"ApiErrorDetail","type":"object","required":["code","message"],"properties":{"code":{"type":"string","description":"Stable machine-readable error code."},"message":{"type":"string","description":"Human-readable error message."}}}}},"example":{"error":{"code":"space_not_found","message":"Space not found."}}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"title":"ApiError","type":"object","required":["error"],"properties":{"error":{"title":"ApiErrorDetail","type":"object","required":["code","message"],"properties":{"code":{"type":"string","description":"Stable machine-readable error code."},"message":{"type":"string","description":"Human-readable error message."}}}}},"examples":{"empty_procedure_title":{"summary":"Title cannot be empty string.","value":{"error":{"code":"empty_procedure_title","message":"Title cannot be empty string."}}},"invalid_procedure_request":{"summary":"The procedure request is invalid.","value":{"error":{"code":"invalid_procedure_request","message":"The procedure request is invalid."}}}}}}}}}},"/api/v1/public/procedures/{procedure_id}":{"get":{"tags":["Procedures"],"summary":"Procedure Endpoint","operationId":"getProcedure","parameters":[{"name":"procedure_id","in":"path","required":true,"schema":{"type":"string","title":"Procedure Id"}},{"name":"authorization","in":"header","required":false,"schema":{"type":"string","default":"","title":"Authorization"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Procedure"}}}},"401":{"description":"Missing or invalid authentication token.","content":{"application/json":{"schema":{"title":"ApiError","type":"object","required":["error"],"properties":{"error":{"title":"ApiErrorDetail","type":"object","required":["code","message"],"properties":{"code":{"type":"string","description":"Stable machine-readable error code."},"message":{"type":"string","description":"Human-readable error message."}}}}},"example":{"error":{"code":"unauthorized","message":"Missing or invalid authentication token."}}}}},"429":{"description":"Too many requests. Try again later.","content":{"application/json":{"schema":{"title":"ApiError","type":"object","required":["error"],"properties":{"error":{"title":"ApiErrorDetail","type":"object","required":["code","message"],"properties":{"code":{"type":"string","description":"Stable machine-readable error code."},"message":{"type":"string","description":"Human-readable error message."}}}}},"example":{"error":{"code":"rate_limit_exceeded","message":"Too many requests. Try again later."}}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"404":{"description":"Procedure not found.","content":{"application/json":{"schema":{"title":"ApiError","type":"object","required":["error"],"properties":{"error":{"title":"ApiErrorDetail","type":"object","required":["code","message"],"properties":{"code":{"type":"string","description":"Stable machine-readable error code."},"message":{"type":"string","description":"Human-readable error message."}}}}},"example":{"error":{"code":"procedure_not_found","message":"Procedure not found."}}}}}}},"patch":{"tags":["Procedures"],"summary":"Update Procedure Endpoint","operationId":"updateProcedure","parameters":[{"name":"procedure_id","in":"path","required":true,"schema":{"type":"string","title":"Procedure Id"}},{"name":"authorization","in":"header","required":false,"schema":{"type":"string","default":"","title":"Authorization"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateProcedureRequest"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Procedure"}}}},"401":{"description":"Missing or invalid authentication token.","content":{"application/json":{"schema":{"title":"ApiError","type":"object","required":["error"],"properties":{"error":{"title":"ApiErrorDetail","type":"object","required":["code","message"],"properties":{"code":{"type":"string","description":"Stable machine-readable error code."},"message":{"type":"string","description":"Human-readable error message."}}}}},"example":{"error":{"code":"unauthorized","message":"Missing or invalid authentication token."}}}}},"429":{"description":"Too many requests. Try again later.","content":{"application/json":{"schema":{"title":"ApiError","type":"object","required":["error"],"properties":{"error":{"title":"ApiErrorDetail","type":"object","required":["code","message"],"properties":{"code":{"type":"string","description":"Stable machine-readable error code."},"message":{"type":"string","description":"Human-readable error message."}}}}},"example":{"error":{"code":"rate_limit_exceeded","message":"Too many requests. Try again later."}}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"404":{"description":"Procedure not found.","content":{"application/json":{"schema":{"title":"ApiError","type":"object","required":["error"],"properties":{"error":{"title":"ApiErrorDetail","type":"object","required":["code","message"],"properties":{"code":{"type":"string","description":"Stable machine-readable error code."},"message":{"type":"string","description":"Human-readable error message."}}}}},"example":{"error":{"code":"procedure_not_found","message":"Procedure not found."}}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"title":"ApiError","type":"object","required":["error"],"properties":{"error":{"title":"ApiErrorDetail","type":"object","required":["code","message"],"properties":{"code":{"type":"string","description":"Stable machine-readable error code."},"message":{"type":"string","description":"Human-readable error message."}}}}},"examples":{"empty_procedure_title":{"summary":"Title cannot be empty string.","value":{"error":{"code":"empty_procedure_title","message":"Title cannot be empty string."}}},"invalid_procedure_request":{"summary":"The procedure request is invalid.","value":{"error":{"code":"invalid_procedure_request","message":"The procedure request is invalid."}}}}}}}}},"delete":{"tags":["Procedures"],"summary":"Delete Procedure Endpoint","operationId":"deleteProcedure","parameters":[{"name":"procedure_id","in":"path","required":true,"schema":{"type":"string","title":"Procedure Id"}},{"name":"authorization","in":"header","required":false,"schema":{"type":"string","default":"","title":"Authorization"}}],"responses":{"204":{"description":"Successful Response"},"401":{"description":"Missing or invalid authentication token.","content":{"application/json":{"schema":{"title":"ApiError","type":"object","required":["error"],"properties":{"error":{"title":"ApiErrorDetail","type":"object","required":["code","message"],"properties":{"code":{"type":"string","description":"Stable machine-readable error code."},"message":{"type":"string","description":"Human-readable error message."}}}}},"example":{"error":{"code":"unauthorized","message":"Missing or invalid authentication token."}}}}},"429":{"description":"Too many requests. Try again later.","content":{"application/json":{"schema":{"title":"ApiError","type":"object","required":["error"],"properties":{"error":{"title":"ApiErrorDetail","type":"object","required":["code","message"],"properties":{"code":{"type":"string","description":"Stable machine-readable error code."},"message":{"type":"string","description":"Human-readable error message."}}}}},"example":{"error":{"code":"rate_limit_exceeded","message":"Too many requests. Try again later."}}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"404":{"description":"Procedure not found.","content":{"application/json":{"schema":{"title":"ApiError","type":"object","required":["error"],"properties":{"error":{"title":"ApiErrorDetail","type":"object","required":["code","message"],"properties":{"code":{"type":"string","description":"Stable machine-readable error code."},"message":{"type":"string","description":"Human-readable error message."}}}}},"example":{"error":{"code":"procedure_not_found","message":"Procedure not found."}}}}}}}},"/api/v1/public/notes":{"get":{"tags":["Notes"],"summary":"List Notes Endpoint","operationId":"listNotes","parameters":[{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":100,"minimum":1,"description":"Maximum number of notes to return.","default":30,"title":"Limit"},"description":"Maximum number of notes to return."},{"name":"cursor","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Opaque pagination cursor from next_cursor in a previous response. Use it with the same filters as the request that returned it.","title":"Cursor"},"description":"Opaque pagination cursor from next_cursor in a previous response. Use it with the same filters as the request that returned it."},{"name":"space_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}],"description":"Return notes directly under this Space.","title":"Space Id"},"description":"Return notes directly under this Space."},{"name":"case_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}],"description":"Return notes directly under this Case.","title":"Case Id"},"description":"Return notes directly under this Case."},{"name":"thread_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}],"description":"Return notes directly under this Thread.","title":"Thread Id"},"description":"Return notes directly under this Thread."},{"name":"sort","in":"query","required":false,"schema":{"enum":["created_at","updated_at"],"type":"string","description":"Field to sort by. Use created_at or updated_at.","default":"created_at","title":"Sort"},"description":"Field to sort by. Use created_at or updated_at."},{"name":"direction","in":"query","required":false,"schema":{"enum":["asc","desc"],"type":"string","description":"Sort direction. Use asc or desc.","default":"desc","title":"Direction"},"description":"Sort direction. Use asc or desc."},{"name":"authorization","in":"header","required":false,"schema":{"type":"string","default":"","title":"Authorization"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ListNotesResponse"}}}},"401":{"description":"Missing or invalid authentication token.","content":{"application/json":{"schema":{"title":"ApiError","type":"object","required":["error"],"properties":{"error":{"title":"ApiErrorDetail","type":"object","required":["code","message"],"properties":{"code":{"type":"string","description":"Stable machine-readable error code."},"message":{"type":"string","description":"Human-readable error message."}}}}},"example":{"error":{"code":"unauthorized","message":"Missing or invalid authentication token."}}}}},"429":{"description":"Too many requests. Try again later.","content":{"application/json":{"schema":{"title":"ApiError","type":"object","required":["error"],"properties":{"error":{"title":"ApiErrorDetail","type":"object","required":["code","message"],"properties":{"code":{"type":"string","description":"Stable machine-readable error code."},"message":{"type":"string","description":"Human-readable error message."}}}}},"example":{"error":{"code":"rate_limit_exceeded","message":"Too many requests. Try again later."}}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"title":"ApiError","type":"object","required":["error"],"properties":{"error":{"title":"ApiErrorDetail","type":"object","required":["code","message"],"properties":{"code":{"type":"string","description":"Stable machine-readable error code."},"message":{"type":"string","description":"Human-readable error message."}}}}},"examples":{"invalid_cursor":{"summary":"Cursor is invalid.","value":{"error":{"code":"invalid_cursor","message":"Cursor is invalid."}}},"invalid_note_filters":{"summary":"The note filters are invalid.","value":{"error":{"code":"invalid_note_filters","message":"The note filters are invalid."}}}}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"title":"ApiError","type":"object","required":["error"],"properties":{"error":{"title":"ApiErrorDetail","type":"object","required":["code","message"],"properties":{"code":{"type":"string","description":"Stable machine-readable error code."},"message":{"type":"string","description":"Human-readable error message."}}}}},"examples":{"space_not_found":{"summary":"Space not found.","value":{"error":{"code":"space_not_found","message":"Space not found."}}},"case_not_found":{"summary":"Case not found.","value":{"error":{"code":"case_not_found","message":"Case not found."}}}}}}}}},"post":{"tags":["Notes"],"summary":"Create Note Endpoint","operationId":"createNote","parameters":[{"name":"authorization","in":"header","required":false,"schema":{"type":"string","default":"","title":"Authorization"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateNoteRequest"}}}},"responses":{"201":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Note"}}}},"401":{"description":"Missing or invalid authentication token.","content":{"application/json":{"schema":{"title":"ApiError","type":"object","required":["error"],"properties":{"error":{"title":"ApiErrorDetail","type":"object","required":["code","message"],"properties":{"code":{"type":"string","description":"Stable machine-readable error code."},"message":{"type":"string","description":"Human-readable error message."}}}}},"example":{"error":{"code":"unauthorized","message":"Missing or invalid authentication token."}}}}},"429":{"description":"Too many requests. Try again later.","content":{"application/json":{"schema":{"title":"ApiError","type":"object","required":["error"],"properties":{"error":{"title":"ApiErrorDetail","type":"object","required":["code","message"],"properties":{"code":{"type":"string","description":"Stable machine-readable error code."},"message":{"type":"string","description":"Human-readable error message."}}}}},"example":{"error":{"code":"rate_limit_exceeded","message":"Too many requests. Try again later."}}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"title":"ApiError","type":"object","required":["error"],"properties":{"error":{"title":"ApiErrorDetail","type":"object","required":["code","message"],"properties":{"code":{"type":"string","description":"Stable machine-readable error code."},"message":{"type":"string","description":"Human-readable error message."}}}}},"examples":{"case_not_found":{"summary":"Case not found.","value":{"error":{"code":"case_not_found","message":"Case not found."}}},"space_not_found":{"summary":"Space not found.","value":{"error":{"code":"space_not_found","message":"Space not found."}}}}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"title":"ApiError","type":"object","required":["error"],"properties":{"error":{"title":"ApiErrorDetail","type":"object","required":["code","message"],"properties":{"code":{"type":"string","description":"Stable machine-readable error code."},"message":{"type":"string","description":"Human-readable error message."}}}}},"examples":{"invalid_note_parent":{"summary":"Exactly one of space_id or case_id must be provided.","value":{"error":{"code":"invalid_note_parent","message":"Exactly one of space_id or case_id must be provided."}}},"invalid_tag_name":{"summary":"Tag name cannot be empty.","value":{"error":{"code":"invalid_tag_name","message":"Tag name cannot be empty."}}},"empty_note_title":{"summary":"Title cannot be empty string.","value":{"error":{"code":"empty_note_title","message":"Title cannot be empty string."}}},"invalid_note_request":{"summary":"The note request is invalid.","value":{"error":{"code":"invalid_note_request","message":"The note request is invalid."}}}}}}}}}},"/api/v1/public/notes/{note_id}":{"get":{"tags":["Notes"],"summary":"Note Endpoint","operationId":"getNote","parameters":[{"name":"note_id","in":"path","required":true,"schema":{"type":"string","title":"Note Id"}},{"name":"authorization","in":"header","required":false,"schema":{"type":"string","default":"","title":"Authorization"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Note"}}}},"401":{"description":"Missing or invalid authentication token.","content":{"application/json":{"schema":{"title":"ApiError","type":"object","required":["error"],"properties":{"error":{"title":"ApiErrorDetail","type":"object","required":["code","message"],"properties":{"code":{"type":"string","description":"Stable machine-readable error code."},"message":{"type":"string","description":"Human-readable error message."}}}}},"example":{"error":{"code":"unauthorized","message":"Missing or invalid authentication token."}}}}},"429":{"description":"Too many requests. Try again later.","content":{"application/json":{"schema":{"title":"ApiError","type":"object","required":["error"],"properties":{"error":{"title":"ApiErrorDetail","type":"object","required":["code","message"],"properties":{"code":{"type":"string","description":"Stable machine-readable error code."},"message":{"type":"string","description":"Human-readable error message."}}}}},"example":{"error":{"code":"rate_limit_exceeded","message":"Too many requests. Try again later."}}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"404":{"description":"Note not found.","content":{"application/json":{"schema":{"title":"ApiError","type":"object","required":["error"],"properties":{"error":{"title":"ApiErrorDetail","type":"object","required":["code","message"],"properties":{"code":{"type":"string","description":"Stable machine-readable error code."},"message":{"type":"string","description":"Human-readable error message."}}}}},"example":{"error":{"code":"note_not_found","message":"Note not found."}}}}}}},"patch":{"tags":["Notes"],"summary":"Update Note Endpoint","operationId":"updateNote","parameters":[{"name":"note_id","in":"path","required":true,"schema":{"type":"string","title":"Note Id"}},{"name":"authorization","in":"header","required":false,"schema":{"type":"string","default":"","title":"Authorization"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateNoteRequest"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Note"}}}},"401":{"description":"Missing or invalid authentication token.","content":{"application/json":{"schema":{"title":"ApiError","type":"object","required":["error"],"properties":{"error":{"title":"ApiErrorDetail","type":"object","required":["code","message"],"properties":{"code":{"type":"string","description":"Stable machine-readable error code."},"message":{"type":"string","description":"Human-readable error message."}}}}},"example":{"error":{"code":"unauthorized","message":"Missing or invalid authentication token."}}}}},"429":{"description":"Too many requests. Try again later.","content":{"application/json":{"schema":{"title":"ApiError","type":"object","required":["error"],"properties":{"error":{"title":"ApiErrorDetail","type":"object","required":["code","message"],"properties":{"code":{"type":"string","description":"Stable machine-readable error code."},"message":{"type":"string","description":"Human-readable error message."}}}}},"example":{"error":{"code":"rate_limit_exceeded","message":"Too many requests. Try again later."}}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"title":"ApiError","type":"object","required":["error"],"properties":{"error":{"title":"ApiErrorDetail","type":"object","required":["code","message"],"properties":{"code":{"type":"string","description":"Stable machine-readable error code."},"message":{"type":"string","description":"Human-readable error message."}}}}},"examples":{"note_not_found":{"summary":"Note not found.","value":{"error":{"code":"note_not_found","message":"Note not found."}}},"case_not_found":{"summary":"Case not found.","value":{"error":{"code":"case_not_found","message":"Case not found."}}},"space_not_found":{"summary":"Space not found.","value":{"error":{"code":"space_not_found","message":"Space not found."}}}}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"title":"ApiError","type":"object","required":["error"],"properties":{"error":{"title":"ApiErrorDetail","type":"object","required":["code","message"],"properties":{"code":{"type":"string","description":"Stable machine-readable error code."},"message":{"type":"string","description":"Human-readable error message."}}}}},"examples":{"invalid_note_parent":{"summary":"Exactly one of space_id or case_id must be provided.","value":{"error":{"code":"invalid_note_parent","message":"Exactly one of space_id or case_id must be provided."}}},"invalid_tag_name":{"summary":"Tag name cannot be empty.","value":{"error":{"code":"invalid_tag_name","message":"Tag name cannot be empty."}}},"empty_note_title":{"summary":"Title cannot be empty string.","value":{"error":{"code":"empty_note_title","message":"Title cannot be empty string."}}},"invalid_note_request":{"summary":"The note request is invalid.","value":{"error":{"code":"invalid_note_request","message":"The note request is invalid."}}}}}}}}},"delete":{"tags":["Notes"],"summary":"Delete Note Endpoint","operationId":"deleteNote","parameters":[{"name":"note_id","in":"path","required":true,"schema":{"type":"string","title":"Note Id"}},{"name":"authorization","in":"header","required":false,"schema":{"type":"string","default":"","title":"Authorization"}}],"responses":{"204":{"description":"Successful Response"},"401":{"description":"Missing or invalid authentication token.","content":{"application/json":{"schema":{"title":"ApiError","type":"object","required":["error"],"properties":{"error":{"title":"ApiErrorDetail","type":"object","required":["code","message"],"properties":{"code":{"type":"string","description":"Stable machine-readable error code."},"message":{"type":"string","description":"Human-readable error message."}}}}},"example":{"error":{"code":"unauthorized","message":"Missing or invalid authentication token."}}}}},"429":{"description":"Too many requests. Try again later.","content":{"application/json":{"schema":{"title":"ApiError","type":"object","required":["error"],"properties":{"error":{"title":"ApiErrorDetail","type":"object","required":["code","message"],"properties":{"code":{"type":"string","description":"Stable machine-readable error code."},"message":{"type":"string","description":"Human-readable error message."}}}}},"example":{"error":{"code":"rate_limit_exceeded","message":"Too many requests. Try again later."}}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"404":{"description":"Note not found.","content":{"application/json":{"schema":{"title":"ApiError","type":"object","required":["error"],"properties":{"error":{"title":"ApiErrorDetail","type":"object","required":["code","message"],"properties":{"code":{"type":"string","description":"Stable machine-readable error code."},"message":{"type":"string","description":"Human-readable error message."}}}}},"example":{"error":{"code":"note_not_found","message":"Note not found."}}}}}}}},"/api/v1/public/users":{"get":{"tags":["Users"],"summary":"List Users Endpoint","operationId":"listUsers","parameters":[{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":100,"minimum":1,"description":"Maximum number of users to return.","default":30,"title":"Limit"},"description":"Maximum number of users to return."},{"name":"cursor","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Opaque pagination cursor from next_cursor in a previous response.","title":"Cursor"},"description":"Opaque pagination cursor from next_cursor in a previous response."},{"name":"authorization","in":"header","required":false,"schema":{"type":"string","default":"","title":"Authorization"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ListUsersResponse"}}}},"401":{"description":"Missing or invalid authentication token.","content":{"application/json":{"schema":{"title":"ApiError","type":"object","required":["error"],"properties":{"error":{"title":"ApiErrorDetail","type":"object","required":["code","message"],"properties":{"code":{"type":"string","description":"Stable machine-readable error code."},"message":{"type":"string","description":"Human-readable error message."}}}}},"example":{"error":{"code":"unauthorized","message":"Missing or invalid authentication token."}}}}},"429":{"description":"Too many requests. Try again later.","content":{"application/json":{"schema":{"title":"ApiError","type":"object","required":["error"],"properties":{"error":{"title":"ApiErrorDetail","type":"object","required":["code","message"],"properties":{"code":{"type":"string","description":"Stable machine-readable error code."},"message":{"type":"string","description":"Human-readable error message."}}}}},"example":{"error":{"code":"rate_limit_exceeded","message":"Too many requests. Try again later."}}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"400":{"description":"Cursor is invalid.","content":{"application/json":{"schema":{"title":"ApiError","type":"object","required":["error"],"properties":{"error":{"title":"ApiErrorDetail","type":"object","required":["code","message"],"properties":{"code":{"type":"string","description":"Stable machine-readable error code."},"message":{"type":"string","description":"Human-readable error message."}}}}},"example":{"error":{"code":"invalid_cursor","message":"Cursor is invalid."}}}}}}}},"/api/v1/public/users/me":{"get":{"tags":["Users"],"summary":"Current User Endpoint","operationId":"getCurrentUser","parameters":[{"name":"authorization","in":"header","required":false,"schema":{"type":"string","default":"","title":"Authorization"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CurrentUser"}}}},"401":{"description":"Missing or invalid authentication token.","content":{"application/json":{"schema":{"title":"ApiError","type":"object","required":["error"],"properties":{"error":{"title":"ApiErrorDetail","type":"object","required":["code","message"],"properties":{"code":{"type":"string","description":"Stable machine-readable error code."},"message":{"type":"string","description":"Human-readable error message."}}}}},"example":{"error":{"code":"unauthorized","message":"Missing or invalid authentication token."}}}}},"429":{"description":"Too many requests. Try again later.","content":{"application/json":{"schema":{"title":"ApiError","type":"object","required":["error"],"properties":{"error":{"title":"ApiErrorDetail","type":"object","required":["code","message"],"properties":{"code":{"type":"string","description":"Stable machine-readable error code."},"message":{"type":"string","description":"Human-readable error message."}}}}},"example":{"error":{"code":"rate_limit_exceeded","message":"Too many requests. Try again later."}}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}}}}},"/api/v1/public/users/{user_id}":{"get":{"tags":["Users"],"summary":"User Endpoint","operationId":"getUser","parameters":[{"name":"user_id","in":"path","required":true,"schema":{"type":"string","title":"User Id"}},{"name":"authorization","in":"header","required":false,"schema":{"type":"string","default":"","title":"Authorization"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/User"}}}},"401":{"description":"Missing or invalid authentication token.","content":{"application/json":{"schema":{"title":"ApiError","type":"object","required":["error"],"properties":{"error":{"title":"ApiErrorDetail","type":"object","required":["code","message"],"properties":{"code":{"type":"string","description":"Stable machine-readable error code."},"message":{"type":"string","description":"Human-readable error message."}}}}},"example":{"error":{"code":"unauthorized","message":"Missing or invalid authentication token."}}}}},"429":{"description":"Too many requests. Try again later.","content":{"application/json":{"schema":{"title":"ApiError","type":"object","required":["error"],"properties":{"error":{"title":"ApiErrorDetail","type":"object","required":["code","message"],"properties":{"code":{"type":"string","description":"Stable machine-readable error code."},"message":{"type":"string","description":"Human-readable error message."}}}}},"example":{"error":{"code":"rate_limit_exceeded","message":"Too many requests. Try again later."}}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"404":{"description":"User not found.","content":{"application/json":{"schema":{"title":"ApiError","type":"object","required":["error"],"properties":{"error":{"title":"ApiErrorDetail","type":"object","required":["code","message"],"properties":{"code":{"type":"string","description":"Stable machine-readable error code."},"message":{"type":"string","description":"Human-readable error message."}}}}},"example":{"error":{"code":"user_not_found","message":"User not found."}}}}}}}},"/api/v1/public/threads/{thread_id}":{"get":{"tags":["Threads"],"summary":"Thread Endpoint","operationId":"getThread","parameters":[{"name":"thread_id","in":"path","required":true,"schema":{"type":"string","title":"Thread Id"}},{"name":"authorization","in":"header","required":false,"schema":{"type":"string","default":"","title":"Authorization"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Thread"}}}},"401":{"description":"Missing or invalid authentication token.","content":{"application/json":{"schema":{"title":"ApiError","type":"object","required":["error"],"properties":{"error":{"title":"ApiErrorDetail","type":"object","required":["code","message"],"properties":{"code":{"type":"string","description":"Stable machine-readable error code."},"message":{"type":"string","description":"Human-readable error message."}}}}},"example":{"error":{"code":"unauthorized","message":"Missing or invalid authentication token."}}}}},"429":{"description":"Too many requests. Try again later.","content":{"application/json":{"schema":{"title":"ApiError","type":"object","required":["error"],"properties":{"error":{"title":"ApiErrorDetail","type":"object","required":["code","message"],"properties":{"code":{"type":"string","description":"Stable machine-readable error code."},"message":{"type":"string","description":"Human-readable error message."}}}}},"example":{"error":{"code":"rate_limit_exceeded","message":"Too many requests. Try again later."}}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"404":{"description":"Thread not found.","content":{"application/json":{"schema":{"title":"ApiError","type":"object","required":["error"],"properties":{"error":{"title":"ApiErrorDetail","type":"object","required":["code","message"],"properties":{"code":{"type":"string","description":"Stable machine-readable error code."},"message":{"type":"string","description":"Human-readable error message."}}}}},"example":{"error":{"code":"thread_not_found","message":"Thread not found."}}}}}}}},"/api/v1/public/threads/{thread_id}/messages":{"post":{"tags":["Threads"],"summary":"Create Thread Message Endpoint","operationId":"createThreadMessage","parameters":[{"name":"thread_id","in":"path","required":true,"schema":{"type":"string","title":"Thread Id"}},{"name":"authorization","in":"header","required":false,"schema":{"type":"string","default":"","title":"Authorization"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateMessageRequest"}}}},"responses":{"201":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ThreadEvent"}}}},"401":{"description":"Missing or invalid authentication token.","content":{"application/json":{"schema":{"title":"ApiError","type":"object","required":["error"],"properties":{"error":{"title":"ApiErrorDetail","type":"object","required":["code","message"],"properties":{"code":{"type":"string","description":"Stable machine-readable error code."},"message":{"type":"string","description":"Human-readable error message."}}}}},"example":{"error":{"code":"unauthorized","message":"Missing or invalid authentication token."}}}}},"429":{"description":"Too many requests. Try again later.","content":{"application/json":{"schema":{"title":"ApiError","type":"object","required":["error"],"properties":{"error":{"title":"ApiErrorDetail","type":"object","required":["code","message"],"properties":{"code":{"type":"string","description":"Stable machine-readable error code."},"message":{"type":"string","description":"Human-readable error message."}}}}},"example":{"error":{"code":"rate_limit_exceeded","message":"Too many requests. Try again later."}}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"title":"ApiError","type":"object","required":["error"],"properties":{"error":{"title":"ApiErrorDetail","type":"object","required":["code","message"],"properties":{"code":{"type":"string","description":"Stable machine-readable error code."},"message":{"type":"string","description":"Human-readable error message."}}}}},"examples":{"thread_not_found":{"summary":"Thread not found.","value":{"error":{"code":"thread_not_found","message":"Thread not found."}}},"attached_files_not_found":{"summary":"One or more attached files were not found.","value":{"error":{"code":"attached_files_not_found","message":"One or more attached files were not found."}}}}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"title":"ApiError","type":"object","required":["error"],"properties":{"error":{"title":"ApiErrorDetail","type":"object","required":["code","message"],"properties":{"code":{"type":"string","description":"Stable machine-readable error code."},"message":{"type":"string","description":"Human-readable error message."}}}}},"examples":{"file_thread_mismatch":{"summary":"File belongs to another thread.","value":{"error":{"code":"file_thread_mismatch","message":"File belongs to another thread."}}},"invalid_message_request":{"summary":"The message request is invalid.","value":{"error":{"code":"invalid_message_request","message":"The message request is invalid."}}}}}}}}}},"/api/v1/public/threads/{thread_id}/events":{"get":{"tags":["Threads"],"summary":"List Thread Events Endpoint","operationId":"listThreadEvents","parameters":[{"name":"thread_id","in":"path","required":true,"schema":{"type":"string","title":"Thread Id"}},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":100,"minimum":1,"description":"Maximum number of thread events to return.","default":30,"title":"Limit"},"description":"Maximum number of thread events to return."},{"name":"cursor","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Opaque pagination cursor from next_cursor in a previous response.","title":"Cursor"},"description":"Opaque pagination cursor from next_cursor in a previous response."},{"name":"direction","in":"query","required":false,"schema":{"enum":["asc","desc"],"type":"string","description":"Sort direction by event creation time. Use asc or desc.","default":"asc","title":"Direction"},"description":"Sort direction by event creation time. Use asc or desc."},{"name":"authorization","in":"header","required":false,"schema":{"type":"string","default":"","title":"Authorization"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ListThreadEventsResponse"}}}},"401":{"description":"Missing or invalid authentication token.","content":{"application/json":{"schema":{"title":"ApiError","type":"object","required":["error"],"properties":{"error":{"title":"ApiErrorDetail","type":"object","required":["code","message"],"properties":{"code":{"type":"string","description":"Stable machine-readable error code."},"message":{"type":"string","description":"Human-readable error message."}}}}},"example":{"error":{"code":"unauthorized","message":"Missing or invalid authentication token."}}}}},"429":{"description":"Too many requests. Try again later.","content":{"application/json":{"schema":{"title":"ApiError","type":"object","required":["error"],"properties":{"error":{"title":"ApiErrorDetail","type":"object","required":["code","message"],"properties":{"code":{"type":"string","description":"Stable machine-readable error code."},"message":{"type":"string","description":"Human-readable error message."}}}}},"example":{"error":{"code":"rate_limit_exceeded","message":"Too many requests. Try again later."}}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"404":{"description":"Thread not found.","content":{"application/json":{"schema":{"title":"ApiError","type":"object","required":["error"],"properties":{"error":{"title":"ApiErrorDetail","type":"object","required":["code","message"],"properties":{"code":{"type":"string","description":"Stable machine-readable error code."},"message":{"type":"string","description":"Human-readable error message."}}}}},"example":{"error":{"code":"thread_not_found","message":"Thread not found."}}}}},"400":{"description":"Cursor is invalid.","content":{"application/json":{"schema":{"title":"ApiError","type":"object","required":["error"],"properties":{"error":{"title":"ApiErrorDetail","type":"object","required":["code","message"],"properties":{"code":{"type":"string","description":"Stable machine-readable error code."},"message":{"type":"string","description":"Human-readable error message."}}}}},"example":{"error":{"code":"invalid_cursor","message":"Cursor is invalid."}}}}}}}}},"components":{"schemas":{"AdditionalMetadata":{"properties":{},"additionalProperties":true,"type":"object","title":"AdditionalMetadata"},"Agent":{"properties":{"id":{"type":"string","format":"uuid","title":"Id","description":"Unique identifier for the object."},"type":{"type":"string","const":"AGENT","title":"Type","description":"Public resource type for the agent.","default":"AGENT"},"created_at":{"type":"string","format":"date-time","title":"Created At","description":"Timestamp when the object was created."},"updated_at":{"type":"string","format":"date-time","title":"Updated At","description":"Timestamp when the object was last updated."},"parent":{"anyOf":[{"$ref":"#/components/schemas/ResourceLink"},{"type":"null"}],"description":"Parent object link, or null when the object has no public parent."},"name":{"type":"string","title":"Name","description":"Human-readable agent name."},"job_description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Job Description","description":"Optional job description used when the agent acts."},"model":{"type":"string","title":"Model","description":"Effective model used by the agent. If the stored model is null, the configured default model is used."},"reasoning_effort":{"anyOf":[{"$ref":"#/components/schemas/ReasoningEffort"},{"type":"null"}],"description":"Stored reasoning effort for the agent, or null when unset or unsupported by the model."}},"type":"object","required":["id","created_at","updated_at","name","model"],"title":"Agent","example":{"created_at":"2026-06-02T12:32:17.908Z","id":"0196d3b9-0c9d-7cf2-9c36-2a8f0bb0f3ab","job_description":"Review uploaded contracts for missing clauses.","model":"openaieu/gpt-5.4","name":"Contract Review Agent","reasoning_effort":"MEDIUM","type":"AGENT","updated_at":"2026-06-02T12:32:17.908Z"}},"AgentListItem":{"properties":{"id":{"type":"string","format":"uuid","title":"Id","description":"Unique identifier for the object."},"type":{"type":"string","const":"AGENT","title":"Type","description":"Public resource type for the agent.","default":"AGENT"},"created_at":{"type":"string","format":"date-time","title":"Created At","description":"Timestamp when the object was created."},"updated_at":{"type":"string","format":"date-time","title":"Updated At","description":"Timestamp when the object was last updated."},"parent":{"anyOf":[{"$ref":"#/components/schemas/ResourceLink"},{"type":"null"}],"description":"Parent object link, or null when the object has no public parent."},"name":{"type":"string","title":"Name","description":"Human-readable agent name."},"model":{"type":"string","title":"Model","description":"Effective model used by the agent. If the stored model is null, the configured default model is used."},"reasoning_effort":{"anyOf":[{"$ref":"#/components/schemas/ReasoningEffort"},{"type":"null"}],"description":"Stored reasoning effort for the agent, or null when unset or unsupported by the model."}},"type":"object","required":["id","created_at","updated_at","name","model"],"title":"AgentListItem","example":{"created_at":"2026-06-02T12:32:17.908Z","id":"0196d3b9-0c9d-7cf2-9c36-2a8f0bb0f3ab","model":"openaieu/gpt-5.4","name":"Contract Review Agent","reasoning_effort":"MEDIUM","type":"AGENT","updated_at":"2026-06-02T12:32:17.908Z"}},"Case":{"properties":{"id":{"type":"string","format":"uuid","title":"Id","description":"Unique identifier for the object."},"type":{"type":"string","const":"CASE","title":"Type","description":"Public resource type for the case.","default":"CASE"},"created_at":{"type":"string","format":"date-time","title":"Created At","description":"Timestamp when the object was created."},"updated_at":{"type":"string","format":"date-time","title":"Updated At","description":"Timestamp when the object was last updated."},"parent":{"anyOf":[{"$ref":"#/components/schemas/ResourceLink"},{"type":"null"}],"description":"Parent object link, or null when the object has no public parent."},"title":{"type":"string","title":"Title","description":"Human-readable case name."},"status":{"$ref":"#/components/schemas/CaseStatus","description":"Current lifecycle status of the case."},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description","description":"Optional detailed description or instructions for the case."},"completed_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Completed At","description":"Timestamp when the case was completed, if completed."},"due_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Due At","description":"Optional deadline for the case."},"summary":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Summary","description":"Optional generated or user-provided case summary."},"external_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"External Id","description":"Optional caller-provided identifier for linking to an external system."},"tags":{"items":{"type":"string"},"type":"array","title":"Tags","description":"Tags assigned to the case, represented as simple names."},"assignee":{"anyOf":[{"$ref":"#/components/schemas/ResourceLink"},{"type":"null"}],"description":"User assigned to the case, or null when unassigned."},"files":{"items":{"$ref":"#/components/schemas/ResourceLink"},"type":"array","title":"Files","description":"Files attached to the case, represented as public File links."},"thread":{"$ref":"#/components/schemas/ResourceLink","description":"Thread associated with the case."}},"type":"object","required":["id","created_at","updated_at","title","status","thread"],"title":"Case","example":{"assignee":{"id":"0196d3ba-2d25-71f2-8940-5828391ad888","type":"USER","url":"/api/v1/public/users/0196d3ba-2d25-71f2-8940-5828391ad888"},"created_at":"2026-06-02T12:32:17.908Z","description":"The ship's coffee machine started brewing decaf during lightspeed.","due_at":"2026-06-09T12:32:17.908Z","external_id":"case-42","files":[{"id":"0196d3bb-4e10-7bc4-b852-8e38aab931b6","type":"FILE","url":"/api/v1/public/files/0196d3bb-4e10-7bc4-b852-8e38aab931b6"}],"id":"3fa85f64-5717-4562-b3fc-2c963f66afa6","parent":{"id":"0196d3b9-0c9d-7cf2-9c36-2a8f0bb0f3aa","type":"SPACE","url":"/api/v1/public/spaces/0196d3b9-0c9d-7cf2-9c36-2a8f0bb0f3aa"},"status":"open","summary":"Engineering is checking whether the motivator or beans are at fault.","tags":["urgent"],"thread":{"id":"0197f1bc-7369-7343-ae04-31dc04cb204d","type":"THREAD","url":"/api/v1/public/threads/0197f1bc-7369-7343-ae04-31dc04cb204d"},"title":"Investigate hyperspace coffee machine","type":"CASE","updated_at":"2026-06-02T12:32:17.908Z"}},"CaseIngestion":{"properties":{"id":{"type":"string","format":"uuid","title":"Id","description":"Unique identifier for the case ingestion."},"space":{"$ref":"#/components/schemas/ResourceLink","description":"Target Space for imported cases."},"status":{"type":"string","enum":["pending","processing","completed","failed"],"title":"Status","description":"Case ingestion processing status."},"total_count":{"type":"integer","title":"Total Count","description":"Total manifest entries accepted for import."},"processed_count":{"type":"integer","title":"Processed Count","description":"Manifest entries processed so far."},"success_count":{"type":"integer","title":"Success Count","description":"Manifest entries that created cases."},"error_count":{"type":"integer","title":"Error Count","description":"Manifest entries that failed processing."},"started_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Started At","description":"Timestamp when processing started, or null before processing."},"ended_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Ended At","description":"Timestamp when processing ended, or null while unfinished."},"created_at":{"type":"string","format":"date-time","title":"Created At","description":"Timestamp when the batch was created."}},"type":"object","required":["id","space","status","total_count","processed_count","success_count","error_count","created_at"],"title":"CaseIngestion","example":{"created_at":"2026-06-02T12:32:17.908Z","error_count":4,"id":"0196d3b9-0c9d-7cf2-9c36-2a8f0bb0f3aa","processed_count":100,"space":{"id":"0196d3b9-0c9d-7cf2-9c36-2a8f0bb0f3ab","type":"SPACE","url":"/api/v1/public/spaces/0196d3b9-0c9d-7cf2-9c36-2a8f0bb0f3ab"},"started_at":"2026-06-02T12:33:17.908Z","status":"processing","success_count":96,"total_count":250}},"CaseIngestionEntryError":{"properties":{"id":{"type":"string","format":"uuid","title":"Id","description":"Unique identifier for this entry error."},"error":{"type":"string","title":"Error","description":"Human-readable failure message."},"created_at":{"type":"string","format":"date-time","title":"Created At","description":"Timestamp when the error was recorded."}},"type":"object","required":["id","error","created_at"],"title":"CaseIngestionEntryError"},"CaseIngestionFailedEntry":{"properties":{"id":{"type":"string","format":"uuid","title":"Id","description":"Unique identifier for this manifest entry result."},"line_number":{"type":"integer","title":"Line Number","description":"1-indexed line number in the manifest."},"external_id":{"type":"string","title":"External Id","description":"Manifest external_id for the failed case."},"status":{"type":"string","enum":["success","skipped","failed"],"title":"Status","description":"Entry processing status."},"created_at":{"type":"string","format":"date-time","title":"Created At","description":"Timestamp when the entry was recorded."},"errors":{"items":{"$ref":"#/components/schemas/CaseIngestionEntryError"},"type":"array","title":"Errors","description":"Errors recorded for this manifest entry."}},"type":"object","required":["id","line_number","external_id","status","created_at","errors"],"title":"CaseIngestionFailedEntry","example":{"created_at":"2026-06-02T12:34:17.908Z","errors":[{"created_at":"2026-06-02T12:34:18.908Z","error":"Failed to fetch file https://example.com/private.pdf: blocked","id":"0196d3bc-63de-7f02-8df9-27d395c13df2"}],"external_id":"crm-123","id":"0196d3bb-4e10-7bc4-b852-8e38aab931b6","line_number":12,"status":"failed"}},"CaseListItem":{"properties":{"id":{"type":"string","format":"uuid","title":"Id","description":"Unique identifier for the object."},"type":{"type":"string","const":"CASE","title":"Type","description":"Public resource type for the case.","default":"CASE"},"created_at":{"type":"string","format":"date-time","title":"Created At","description":"Timestamp when the object was created."},"updated_at":{"type":"string","format":"date-time","title":"Updated At","description":"Timestamp when the object was last updated."},"parent":{"anyOf":[{"$ref":"#/components/schemas/ResourceLink"},{"type":"null"}],"description":"Parent object link, or null when the object has no public parent."},"title":{"type":"string","title":"Title","description":"Human-readable case name."},"status":{"$ref":"#/components/schemas/CaseStatus","description":"Current lifecycle status of the case."},"completed_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Completed At","description":"Timestamp when the case was completed, if completed."},"due_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Due At","description":"Optional deadline for the case."},"external_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"External Id","description":"Optional caller-provided identifier for linking to an external system."},"tags":{"items":{"type":"string"},"type":"array","title":"Tags","description":"Tags assigned to the case, represented as simple names."},"assignee":{"anyOf":[{"$ref":"#/components/schemas/ResourceLink"},{"type":"null"}],"description":"User assigned to the case, or null when unassigned."}},"type":"object","required":["id","created_at","updated_at","title","status"],"title":"CaseListItem","example":{"assignee":{"id":"0196d3ba-2d25-71f2-8940-5828391ad888","type":"USER","url":"/api/v1/public/users/0196d3ba-2d25-71f2-8940-5828391ad888"},"created_at":"2026-06-02T12:32:17.908Z","due_at":"2026-06-09T12:32:17.908Z","external_id":"case-42","id":"3fa85f64-5717-4562-b3fc-2c963f66afa6","parent":{"id":"0196d3b9-0c9d-7cf2-9c36-2a8f0bb0f3aa","type":"SPACE","url":"/api/v1/public/spaces/0196d3b9-0c9d-7cf2-9c36-2a8f0bb0f3aa"},"status":"open","tags":["urgent"],"title":"Investigate hyperspace coffee machine","type":"CASE","updated_at":"2026-06-02T12:32:17.908Z"}},"CaseStatus":{"type":"string","enum":["open","started","completed","cancelled","blocked"],"title":"TaskStatus"},"CreateAgentRequest":{"properties":{"name":{"type":"string","title":"Name"},"job_description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Job Description"},"model":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Model","description":"Optional model used by the agent. Set to null or omit to use the configured default model. Use GET /models to discover available model ids."},"reasoning_effort":{"anyOf":[{"$ref":"#/components/schemas/ReasoningEffort"},{"type":"null"}],"description":"Optional reasoning effort stored for the agent. Rejected when unsupported by the selected model."}},"additionalProperties":false,"type":"object","required":["name"],"title":"CreateAgentRequest"},"CreateCaseIngestionRequest":{"properties":{"space_id":{"type":"string","format":"uuid","title":"Space Id","description":"Target Space ID for imported root cases."},"manifest":{"type":"string","contentMediaType":"application/octet-stream","title":"Manifest","description":"JSONL manifest file. Each non-blank line describes one case."}},"type":"object","required":["space_id","manifest"],"title":"CreateCaseIngestionRequest"},"CreateCaseRequest":{"properties":{"space_id":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}],"title":"Space Id","description":"Target Space ID for a root case. Provide exactly one of space_id or parent_case_id."},"parent_case_id":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}],"title":"Parent Case Id","description":"Parent Case ID for a child case. Provide exactly one of space_id or parent_case_id."},"title":{"type":"string","title":"Title"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description"},"external_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"External Id"},"assignee_id":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}],"title":"Assignee Id"},"due_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Due At"},"tags":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Tags"},"attached_file_ids":{"anyOf":[{"items":{"type":"string","format":"uuid"},"type":"array"},{"type":"null"}],"title":"Attached File Ids"}},"type":"object","required":["title"],"title":"CreateCaseRequest"},"CreateFileRequest":{"properties":{"file":{"type":"string","contentMediaType":"application/octet-stream","title":"File","description":"File to upload."},"space_id":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}],"title":"Space Id","description":"Target Space ID for a space-owned file. Provide at most one of space_id or case_id."},"case_id":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}],"title":"Case Id","description":"Target Case ID for a case-owned file. Provide at most one of space_id or case_id."}},"type":"object","required":["file"],"title":"CreateFileRequest"},"CreateMessageRequest":{"properties":{"text":{"type":"string","title":"Text"},"file_ids":{"anyOf":[{"items":{"type":"string","format":"uuid"},"type":"array","maxItems":100},{"type":"null"}],"title":"File Ids","description":"Optional File IDs to attach to the created thread event."}},"type":"object","required":["text"],"title":"CreateMessageRequest","example":{"file_ids":["0197f1bd-1917-72db-a52d-e459e6a85acc"],"text":"Please review the attached contract."}},"CreateNoteRequest":{"properties":{"space_id":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}],"title":"Space Id","description":"Target Space ID. Provide exactly one of space_id or case_id."},"case_id":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}],"title":"Case Id","description":"Target Case ID. Provide exactly one of space_id or case_id."},"title":{"type":"string","title":"Title"},"body":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Body"},"tags":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Tags"}},"type":"object","required":["title"],"title":"CreateNoteRequest"},"CreateProcedureRequest":{"properties":{"space_id":{"type":"string","format":"uuid","title":"Space Id","description":"Space ID that owns the procedure."},"title":{"type":"string","title":"Title","description":"Human-readable procedure name."}},"type":"object","required":["space_id","title"],"title":"CreateProcedureRequest"},"CreateSpaceRequest":{"properties":{"name":{"type":"string","title":"Name"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description"}},"type":"object","required":["name"],"title":"CreateSpaceRequest"},"CurrentUser":{"properties":{"id":{"type":"string","format":"uuid","title":"Id","description":"Unique identifier for the user."},"type":{"type":"string","const":"USER","title":"Type","description":"Public resource type for the user.","default":"USER"},"created_at":{"type":"string","format":"date-time","title":"Created At","description":"Timestamp when the user was created."},"updated_at":{"type":"string","format":"date-time","title":"Updated At","description":"Timestamp when the user was last updated."},"name":{"type":"string","title":"Name","description":"Display name for the user."},"is_pending":{"type":"boolean","title":"Is Pending","description":"True when the user has been invited but has not yet signed in via Zitadel."},"is_deactivated":{"type":"boolean","title":"Is Deactivated","description":"True when the user's organization membership is archived."},"organization":{"$ref":"#/components/schemas/Organization","description":"Current organization for the API key."}},"type":"object","required":["id","created_at","updated_at","name","is_pending","is_deactivated","organization"],"title":"CurrentUser","example":{"created_at":"2026-06-02T12:32:17.908Z","id":"0196d3b9-0c9d-7cf2-9c36-2a8f0bb0f3ad","is_deactivated":false,"is_pending":false,"name":"Ada Lovelace","organization":{"id":"0196d3b8-b2cf-75f7-bf36-8fe6b4da1b19","name":"Acme Inc.","slug":"acme-inc"},"type":"USER","updated_at":"2026-06-02T12:32:17.908Z"}},"File":{"properties":{"id":{"type":"string","format":"uuid","title":"Id","description":"Unique identifier for the object."},"type":{"type":"string","const":"FILE","title":"Type","description":"Public resource type for the file.","default":"FILE"},"created_at":{"type":"string","format":"date-time","title":"Created At","description":"Timestamp when the file was created."},"updated_at":{"type":"string","format":"date-time","title":"Updated At","description":"Timestamp when the file was last updated."},"parent":{"anyOf":[{"$ref":"#/components/schemas/ResourceLink"},{"type":"null"}],"description":"Parent object link, or null when the object has no public parent."},"name":{"type":"string","title":"Name","description":"Original or generated display name for the file."},"size":{"type":"integer","title":"Size","description":"File size in bytes."},"mime_type":{"type":"string","title":"Mime Type","description":"Detected MIME type for the file."},"additional_metadata":{"anyOf":[{"$ref":"#/components/schemas/AdditionalMetadata"},{"type":"null"}],"description":"Optional metadata extracted from supported file types, such as image dimensions or email headers."},"download_url":{"type":"string","title":"Download Url","description":"Short-lived signed URL for downloading the file bytes."},"tags":{"items":{"type":"string"},"type":"array","title":"Tags","description":"Tags assigned to the file, represented as simple names."}},"type":"object","required":["id","created_at","updated_at","name","size","mime_type","download_url"],"title":"File","example":{"created_at":"2026-06-02T12:32:17.908Z","download_url":"https://default.loomcdn.com/0196d3b9-0c9d-7cf2-9c36-2a8f0bb0f3aa?token=...","id":"0196d3b9-0c9d-7cf2-9c36-2a8f0bb0f3aa","mime_type":"application/pdf","name":"quarterly-report.pdf","parent":{"id":"0196d3b9-0c9d-7cf2-9c36-2a8f0bb0f3ab","type":"SPACE","url":"/api/v1/public/spaces/0196d3b9-0c9d-7cf2-9c36-2a8f0bb0f3ab"},"size":248391,"tags":["finance"],"type":"FILE","updated_at":"2026-06-02T12:32:17.908Z"}},"FilePayload":{"properties":{"payload_type":{"type":"string","const":"file","title":"Payload Type","default":"file"},"file":{"$ref":"#/components/schemas/ResourceLink"}},"type":"object","required":["file"],"title":"FilePayload","example":{"file":{"id":"0197f1bd-1917-72db-a52d-e459e6a85acc","type":"FILE","url":"/api/v1/public/files/0197f1bd-1917-72db-a52d-e459e6a85acc"},"payload_type":"file"}},"ListAgentsResponse":{"properties":{"data":{"items":{"$ref":"#/components/schemas/AgentListItem"},"type":"array","title":"Data","description":"Items in the current page."},"has_more":{"type":"boolean","title":"Has More","description":"Whether more items are available after this page."},"next_cursor":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Next Cursor","description":"Opaque cursor for the next page. Pass this value as cursor on the next request with the same filters and sort options."}},"type":"object","required":["data","has_more"],"title":"ListAgentsResponse","example":{"data":[{"created_at":"2026-06-02T12:32:17.908Z","id":"0196d3b9-0c9d-7cf2-9c36-2a8f0bb0f3ab","model":"openaieu/gpt-5.4","name":"Contract Review Agent","reasoning_effort":"MEDIUM","type":"AGENT","updated_at":"2026-06-02T12:32:17.908Z"}],"has_more":true,"next_cursor":"P6hfZFcXRWKz_CyWP2avpg"}},"ListCaseIngestionErrorsResponse":{"properties":{"data":{"items":{"$ref":"#/components/schemas/CaseIngestionFailedEntry"},"type":"array","title":"Data","description":"Items in the current page."},"has_more":{"type":"boolean","title":"Has More","description":"Whether more items are available after this page."},"next_cursor":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Next Cursor","description":"Opaque cursor for the next page. Pass this value as cursor on the next request with the same filters and sort options."}},"type":"object","required":["data","has_more"],"title":"ListCaseIngestionErrorsResponse","example":{"data":[{"created_at":"2026-06-02T12:34:17.908Z","errors":[{"created_at":"2026-06-02T12:34:18.908Z","error":"Failed to fetch file https://example.com/private.pdf: blocked","id":"0196d3bc-63de-7f02-8df9-27d395c13df2"}],"external_id":"crm-123","id":"0196d3bb-4e10-7bc4-b852-8e38aab931b6","line_number":12,"status":"failed"}],"has_more":true,"next_cursor":"P6hfZFcXRWKz_CyWP2avpg"}},"ListCasesResponse":{"properties":{"data":{"items":{"$ref":"#/components/schemas/CaseListItem"},"type":"array","title":"Data","description":"Items in the current page."},"has_more":{"type":"boolean","title":"Has More","description":"Whether more items are available after this page."},"next_cursor":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Next Cursor","description":"Opaque cursor for the next page. Pass this value as cursor on the next request with the same filters and sort options."}},"type":"object","required":["data","has_more"],"title":"ListCasesResponse","example":{"data":[{"assignee":{"id":"0196d3ba-2d25-71f2-8940-5828391ad888","type":"USER","url":"/api/v1/public/users/0196d3ba-2d25-71f2-8940-5828391ad888"},"created_at":"2026-06-02T12:32:17.908Z","due_at":"2026-06-09T12:32:17.908Z","external_id":"case-42","id":"3fa85f64-5717-4562-b3fc-2c963f66afa6","parent":{"id":"0196d3b9-0c9d-7cf2-9c36-2a8f0bb0f3aa","type":"SPACE","url":"/api/v1/public/spaces/0196d3b9-0c9d-7cf2-9c36-2a8f0bb0f3aa"},"status":"open","tags":["urgent"],"title":"Investigate hyperspace coffee machine","type":"CASE","updated_at":"2026-06-02T12:32:17.908Z"}],"has_more":true,"next_cursor":"P6hfZFcXRWKz_CyWP2avpg"}},"ListFilesResponse":{"properties":{"data":{"items":{"$ref":"#/components/schemas/File"},"type":"array","title":"Data","description":"Items in the current page."},"has_more":{"type":"boolean","title":"Has More","description":"Whether more items are available after this page."},"next_cursor":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Next Cursor","description":"Opaque cursor for the next page. Pass this value as cursor on the next request with the same filters and sort options."}},"type":"object","required":["data","has_more"],"title":"ListFilesResponse","example":{"data":[{"created_at":"2026-06-02T12:32:17.908Z","download_url":"https://default.loomcdn.com/0196d3b9-0c9d-7cf2-9c36-2a8f0bb0f3aa?token=...","id":"0196d3b9-0c9d-7cf2-9c36-2a8f0bb0f3aa","mime_type":"application/pdf","name":"quarterly-report.pdf","parent":{"id":"0196d3b9-0c9d-7cf2-9c36-2a8f0bb0f3ab","type":"SPACE","url":"/api/v1/public/spaces/0196d3b9-0c9d-7cf2-9c36-2a8f0bb0f3ab"},"size":248391,"tags":["finance"],"type":"FILE","updated_at":"2026-06-02T12:32:17.908Z"}],"has_more":true,"next_cursor":"P6hfZFcXRWKz_CyWP2avpg"}},"ListModelsResponse":{"properties":{"data":{"items":{"$ref":"#/components/schemas/Model"},"type":"array","title":"Data","description":"Supported models in display order."}},"type":"object","required":["data"],"title":"ListModelsResponse"},"ListNotesResponse":{"properties":{"data":{"items":{"$ref":"#/components/schemas/NoteListItem"},"type":"array","title":"Data","description":"Items in the current page."},"has_more":{"type":"boolean","title":"Has More","description":"Whether more items are available after this page."},"next_cursor":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Next Cursor","description":"Opaque cursor for the next page. Pass this value as cursor on the next request with the same filters and sort options."}},"type":"object","required":["data","has_more"],"title":"ListNotesResponse","example":{"data":[{"created_at":"2026-06-02T12:32:17.908Z","id":"3fa85f64-5717-4562-b3fc-2c963f66afa6","parent":{"id":"0196d3b9-0c9d-7cf2-9c36-2a8f0bb0f3aa","type":"SPACE","url":"/api/v1/public/spaces/0196d3b9-0c9d-7cf2-9c36-2a8f0bb0f3aa"},"tags":["customer"],"title":"Meeting notes","type":"NOTE","updated_at":"2026-06-02T12:32:17.908Z"}],"has_more":true,"next_cursor":"P6hfZFcXRWKz_CyWP2avpg"}},"ListProceduresResponse":{"properties":{"data":{"items":{"$ref":"#/components/schemas/ProcedureSummary"},"type":"array","title":"Data","description":"Items in the current page."},"has_more":{"type":"boolean","title":"Has More","description":"Whether more items are available after this page."},"next_cursor":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Next Cursor","description":"Opaque cursor for the next page. Pass this value as cursor on the next request with the same filters and sort options."}},"type":"object","required":["data","has_more"],"title":"ListProceduresResponse","example":{"data":[{"created_at":"2026-06-02T12:32:17.908Z","id":"3fa85f64-5717-4562-b3fc-2c963f66afa6","parent":{"id":"0196d3b9-0c9d-7cf2-9c36-2a8f0bb0f3aa","type":"SPACE","url":"/api/v1/public/spaces/0196d3b9-0c9d-7cf2-9c36-2a8f0bb0f3aa"},"title":"Customer escalation procedure","type":"PROCEDURE","updated_at":"2026-06-02T12:32:17.908Z"}],"has_more":true,"next_cursor":"cHJvY2VkdXJlX2lkOjNmYTg1ZjY0LTU3MTctNDU2Mi1iM2ZjLTJjOTYzZjY2YWZhNg"}},"ListSpacesResponse":{"properties":{"data":{"items":{"$ref":"#/components/schemas/SpaceListItem"},"type":"array","title":"Data","description":"Items in the current page."},"has_more":{"type":"boolean","title":"Has More","description":"Whether more items are available after this page."},"next_cursor":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Next Cursor","description":"Opaque cursor for the next page. Pass this value as cursor on the next request with the same filters and sort options."}},"type":"object","required":["data","has_more"],"title":"ListSpacesResponse","example":{"data":[{"created_at":"2026-06-02T12:32:17.908Z","id":"0196d3b9-0c9d-7cf2-9c36-2a8f0bb0f3aa","is_public":true,"is_system":false,"name":"Engineering","type":"SPACE","updated_at":"2026-06-02T12:32:17.908Z"}],"has_more":true,"next_cursor":"P6hfZFcXRWKz_CyWP2avpg"}},"ListThreadEventsResponse":{"properties":{"data":{"items":{"$ref":"#/components/schemas/ThreadEvent"},"type":"array","title":"Data","description":"Items in the current page."},"has_more":{"type":"boolean","title":"Has More","description":"Whether more items are available after this page."},"next_cursor":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Next Cursor","description":"Opaque cursor for the next page. Pass this value as cursor on the next request with the same filters and sort options."}},"type":"object","required":["data","has_more"],"title":"ListThreadEventsResponse","example":{"data":[{"author":{"id":"0197f1bf-caa1-70b8-aed4-bca3ab2ff110","type":"USER","url":"/api/v1/public/users/0197f1bf-caa1-70b8-aed4-bca3ab2ff110"},"created_at":"2026-06-18T09:14:22.184Z","id":"0197f1c2-8b01-771d-ba97-35679a72639a","payloads":[{"payload_type":"message","text":"Check whether the signed contract includes the renewal clause."},{"file":{"id":"0197f1bd-1917-72db-a52d-e459e6a85acc","type":"FILE","url":"/api/v1/public/files/0197f1bd-1917-72db-a52d-e459e6a85acc"},"payload_type":"file"}],"updated_at":"2026-06-18T09:14:22.184Z"}],"has_more":true,"next_cursor":"AZfxwosBdQd0NtkDeMju7A"}},"ListUsersResponse":{"properties":{"data":{"items":{"$ref":"#/components/schemas/User"},"type":"array","title":"Data","description":"Items in the current page."},"has_more":{"type":"boolean","title":"Has More","description":"Whether more items are available after this page."},"next_cursor":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Next Cursor","description":"Opaque cursor for the next page. Pass this value as cursor on the next request with the same filters and sort options."}},"type":"object","required":["data","has_more"],"title":"ListUsersResponse","example":{"data":[{"created_at":"2026-06-02T12:32:17.908Z","id":"0196d3b9-0c9d-7cf2-9c36-2a8f0bb0f3ad","is_deactivated":false,"is_pending":false,"name":"Ada Lovelace","type":"USER","updated_at":"2026-06-02T12:32:17.908Z"}],"has_more":true,"next_cursor":"P6hfZFcXRWKz_CyWP2avpg"}},"MessagePayload":{"properties":{"payload_type":{"type":"string","const":"message","title":"Payload Type","default":"message"},"text":{"type":"string","title":"Text"}},"type":"object","required":["text"],"title":"MessagePayload","example":{"payload_type":"message","text":"Check whether the signed contract includes the renewal clause."}},"Model":{"properties":{"id":{"type":"string","title":"Id","description":"Stable model id sent back when selecting a model."},"provider":{"type":"string","title":"Provider","description":"Provider or proxy namespace for the model."},"name":{"type":"string","title":"Name","description":"Provider-local model name."},"display_name":{"type":"string","title":"Display Name","description":"Human-readable model name."},"description":{"type":"string","title":"Description","description":"Short model description."},"is_default":{"type":"boolean","title":"Is Default","description":"Whether this catalog entry is the deployment default agent model."},"is_enabled":{"type":"boolean","title":"Is Enabled","description":"Whether this catalog entry is enabled for agent selection in the organization."},"deployment_location":{"$ref":"#/components/schemas/ModelDeploymentLocation","description":"Where this catalog entry is routed for deployment."},"context_window":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Context Window","description":"Maximum input context window in tokens from the model metadata snapshot."},"max_output_tokens":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Max Output Tokens","description":"Maximum output tokens from the model metadata snapshot."},"capabilities":{"$ref":"#/components/schemas/ModelCapabilities","description":"Model capabilities from the model metadata snapshot."}},"type":"object","required":["id","provider","name","display_name","description","is_default","is_enabled","deployment_location","capabilities"],"title":"Model","example":{"capabilities":{"reasoning":{"default_effort":"MEDIUM","efforts":["LOW","MEDIUM","HIGH","XHIGH"],"supported":true}},"context_window":1050000,"deployment_location":"EUROPE","description":"OpenAI's balanced GPT-5 model with a large context window and XHIGH reasoning. Strong default for coding, analysis, and complex task-solving at lower cost than GPT-5.5.","display_name":"GPT-5.4","id":"openaieu/gpt-5.4","is_default":false,"is_enabled":true,"max_output_tokens":128000,"name":"gpt-5.4","provider":"openai"}},"ModelCapabilities":{"properties":{"reasoning":{"anyOf":[{"$ref":"#/components/schemas/ModelReasoningCapability"},{"type":"null"}],"description":"Reasoning capability metadata, or null when reasoning is unsupported."}},"type":"object","title":"ModelCapabilities"},"ModelDeploymentLocation":{"type":"string","enum":["EUROPE","UNITED_STATES","GLOBAL","UNKNOWN"],"title":"ModelDeploymentLocation"},"ModelReasoningCapability":{"properties":{"supported":{"type":"boolean","title":"Supported","description":"Whether reasoning is supported by this model.","default":true},"efforts":{"items":{"$ref":"#/components/schemas/ReasoningEffort"},"type":"array","title":"Efforts","description":"Supported reasoning effort values for this model."},"default_effort":{"$ref":"#/components/schemas/ReasoningEffort","description":"Default reasoning effort used when no override is stored."}},"type":"object","required":["efforts","default_effort"],"title":"ModelReasoningCapability"},"Note":{"properties":{"id":{"type":"string","format":"uuid","title":"Id","description":"Unique identifier for the object."},"type":{"type":"string","const":"NOTE","title":"Type","description":"Public resource type for the note.","default":"NOTE"},"created_at":{"type":"string","format":"date-time","title":"Created At","description":"Timestamp when the object was created."},"updated_at":{"type":"string","format":"date-time","title":"Updated At","description":"Timestamp when the object was last updated."},"parent":{"anyOf":[{"$ref":"#/components/schemas/ResourceLink"},{"type":"null"}],"description":"Parent object link, or null when the object has no public parent."},"title":{"type":"string","title":"Title","description":"Human-readable note title."},"body":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Body","description":"Optional note body."},"tags":{"items":{"type":"string"},"type":"array","title":"Tags","description":"Tags assigned to the note, represented as simple names."}},"type":"object","required":["id","created_at","updated_at","title"],"title":"Note","example":{"body":"Customer wants an implementation plan.","created_at":"2026-06-02T12:32:17.908Z","id":"3fa85f64-5717-4562-b3fc-2c963f66afa6","parent":{"id":"0196d3b9-0c9d-7cf2-9c36-2a8f0bb0f3aa","type":"SPACE","url":"/api/v1/public/spaces/0196d3b9-0c9d-7cf2-9c36-2a8f0bb0f3aa"},"tags":["customer"],"title":"Meeting notes","type":"NOTE","updated_at":"2026-06-02T12:32:17.908Z"}},"NoteListItem":{"properties":{"id":{"type":"string","format":"uuid","title":"Id","description":"Unique identifier for the object."},"type":{"type":"string","const":"NOTE","title":"Type","description":"Public resource type for the note.","default":"NOTE"},"created_at":{"type":"string","format":"date-time","title":"Created At","description":"Timestamp when the object was created."},"updated_at":{"type":"string","format":"date-time","title":"Updated At","description":"Timestamp when the object was last updated."},"parent":{"anyOf":[{"$ref":"#/components/schemas/ResourceLink"},{"type":"null"}],"description":"Parent object link, or null when the object has no public parent."},"title":{"type":"string","title":"Title","description":"Human-readable note title."},"tags":{"items":{"type":"string"},"type":"array","title":"Tags","description":"Tags assigned to the note, represented as simple names."}},"type":"object","required":["id","created_at","updated_at","title"],"title":"NoteListItem","example":{"created_at":"2026-06-02T12:32:17.908Z","id":"3fa85f64-5717-4562-b3fc-2c963f66afa6","parent":{"id":"0196d3b9-0c9d-7cf2-9c36-2a8f0bb0f3aa","type":"SPACE","url":"/api/v1/public/spaces/0196d3b9-0c9d-7cf2-9c36-2a8f0bb0f3aa"},"tags":["customer"],"title":"Meeting notes","type":"NOTE","updated_at":"2026-06-02T12:32:17.908Z"}},"Organization":{"properties":{"id":{"type":"string","format":"uuid","title":"Id","description":"Unique identifier for the organization."},"name":{"type":"string","title":"Name","description":"Display name for the organization."},"slug":{"type":"string","title":"Slug","description":"URL-safe slug for the organization."}},"type":"object","required":["id","name","slug"],"title":"Organization","example":{"id":"0196d3b8-b2cf-75f7-bf36-8fe6b4da1b19","name":"Acme Inc.","slug":"acme-inc"}},"Procedure":{"properties":{"id":{"type":"string","format":"uuid","title":"Id","description":"Unique identifier for the object."},"type":{"type":"string","const":"PROCEDURE","title":"Type","description":"Public resource type for the procedure.","default":"PROCEDURE"},"created_at":{"type":"string","format":"date-time","title":"Created At","description":"Timestamp when the object was created."},"updated_at":{"type":"string","format":"date-time","title":"Updated At","description":"Timestamp when the object was last updated."},"parent":{"anyOf":[{"$ref":"#/components/schemas/ResourceLink"},{"type":"null"}],"description":"Parent object link, or null when the object has no public parent."},"title":{"type":"string","title":"Title","description":"Human-readable procedure name."},"stages":{"items":{"$ref":"#/components/schemas/ProcedureStage"},"type":"array","title":"Stages","description":"Procedure stages, in procedure order."}},"type":"object","required":["id","created_at","updated_at","title"],"title":"Procedure","example":{"created_at":"2026-06-02T12:32:17.908Z","id":"3fa85f64-5717-4562-b3fc-2c963f66afa6","parent":{"id":"0196d3b9-0c9d-7cf2-9c36-2a8f0bb0f3aa","type":"SPACE","url":"/api/v1/public/spaces/0196d3b9-0c9d-7cf2-9c36-2a8f0bb0f3aa"},"stages":[{"assignee":{"id":"0196d3ba-2d25-71f2-8940-5828391ad889","type":"USER","url":"/api/v1/public/users/0196d3ba-2d25-71f2-8940-5828391ad889"},"created_at":"2026-06-02T12:32:17.908Z","id":"0196d3ba-2d25-71f2-8940-5828391ad888","instructions":"Review the case notes and attached files.","title":"Collect context","updated_at":"2026-06-02T12:32:17.908Z"}],"title":"Customer escalation procedure","type":"PROCEDURE","updated_at":"2026-06-02T12:32:17.908Z"}},"ProcedureStage":{"properties":{"id":{"type":"string","format":"uuid","title":"Id","description":"Unique identifier for the procedure stage."},"created_at":{"type":"string","format":"date-time","title":"Created At","description":"Timestamp when the stage was created."},"updated_at":{"type":"string","format":"date-time","title":"Updated At","description":"Timestamp when the stage was last updated."},"title":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Title","description":"Optional human-readable stage title."},"instructions":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Instructions","description":"Optional instructions for the stage."},"assignee":{"anyOf":[{"$ref":"#/components/schemas/ResourceLink"},{"type":"null"}],"description":"User assigned to the stage, when assigned."}},"type":"object","required":["id","created_at","updated_at"],"title":"ProcedureStage","example":{"assignee":{"id":"0196d3ba-2d25-71f2-8940-5828391ad889","type":"USER","url":"/api/v1/public/users/0196d3ba-2d25-71f2-8940-5828391ad889"},"created_at":"2026-06-02T12:32:17.908Z","id":"0196d3ba-2d25-71f2-8940-5828391ad888","instructions":"Review the case notes and attached files.","title":"Collect context","updated_at":"2026-06-02T12:32:17.908Z"}},"ProcedureStagePatchRequest":{"properties":{"id":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}],"title":"Id","description":"Existing stage ID. Omit to create a new stage."},"title":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Title","description":"Stage title, or null for no title."},"instructions":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Instructions","description":"Stage instructions, or null for no instructions."},"assignee_id":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}],"title":"Assignee Id","description":"User ID assigned to the stage, or null for no assignee."}},"additionalProperties":false,"type":"object","required":["title","instructions","assignee_id"],"title":"ProcedureStagePatchRequest"},"ProcedureSummary":{"properties":{"id":{"type":"string","format":"uuid","title":"Id","description":"Unique identifier for the object."},"type":{"type":"string","const":"PROCEDURE","title":"Type","description":"Public resource type for the procedure.","default":"PROCEDURE"},"created_at":{"type":"string","format":"date-time","title":"Created At","description":"Timestamp when the object was created."},"updated_at":{"type":"string","format":"date-time","title":"Updated At","description":"Timestamp when the object was last updated."},"parent":{"anyOf":[{"$ref":"#/components/schemas/ResourceLink"},{"type":"null"}],"description":"Parent object link, or null when the object has no public parent."},"title":{"type":"string","title":"Title","description":"Human-readable procedure name."}},"type":"object","required":["id","created_at","updated_at","title"],"title":"ProcedureSummary","example":{"created_at":"2026-06-02T12:32:17.908Z","id":"3fa85f64-5717-4562-b3fc-2c963f66afa6","parent":{"id":"0196d3b9-0c9d-7cf2-9c36-2a8f0bb0f3aa","type":"SPACE","url":"/api/v1/public/spaces/0196d3b9-0c9d-7cf2-9c36-2a8f0bb0f3aa"},"title":"Customer escalation procedure","type":"PROCEDURE","updated_at":"2026-06-02T12:32:17.908Z"}},"ReasoningEffort":{"type":"string","enum":["LOW","MEDIUM","HIGH","XHIGH"],"title":"ReasoningEffort"},"ResourceLink":{"properties":{"id":{"type":"string","format":"uuid","title":"Id","description":"Unique identifier for the linked object."},"type":{"$ref":"#/components/schemas/ResourceType","description":"Public resource type for the linked object."},"url":{"type":"string","title":"Url","description":"Canonical public REST URL for the linked resource.","readOnly":true}},"type":"object","required":["id","type","url"],"title":"ResourceLink"},"ResourceType":{"type":"string","enum":["SPACE","CASE","AGENT","PROCEDURE","NOTE","FILE","USER","THREAD"],"title":"ResourceType"},"Space":{"properties":{"id":{"type":"string","format":"uuid","title":"Id","description":"Unique identifier for the object."},"type":{"type":"string","const":"SPACE","title":"Type","description":"Public resource type for the space.","default":"SPACE"},"created_at":{"type":"string","format":"date-time","title":"Created At","description":"Timestamp when the object was created."},"updated_at":{"type":"string","format":"date-time","title":"Updated At","description":"Timestamp when the object was last updated."},"parent":{"anyOf":[{"$ref":"#/components/schemas/ResourceLink"},{"type":"null"}],"description":"Parent object link, or null when the object has no public parent."},"name":{"type":"string","title":"Name","description":"Human-readable space name."},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description","description":"Optional detailed description for the space."},"is_system":{"type":"boolean","title":"Is System","description":"Whether this is a permanent system space."},"is_public":{"type":"boolean","title":"Is Public","description":"Whether the space is visible to the organization."}},"type":"object","required":["id","created_at","updated_at","name","is_system","is_public"],"title":"Space","example":{"created_at":"2026-06-02T12:32:17.908Z","description":"Engineering cases and procedures.","id":"0196d3b9-0c9d-7cf2-9c36-2a8f0bb0f3aa","is_public":true,"is_system":false,"name":"Engineering","type":"SPACE","updated_at":"2026-06-02T12:32:17.908Z"}},"SpaceListItem":{"properties":{"id":{"type":"string","format":"uuid","title":"Id","description":"Unique identifier for the object."},"type":{"type":"string","const":"SPACE","title":"Type","description":"Public resource type for the space.","default":"SPACE"},"created_at":{"type":"string","format":"date-time","title":"Created At","description":"Timestamp when the object was created."},"updated_at":{"type":"string","format":"date-time","title":"Updated At","description":"Timestamp when the object was last updated."},"parent":{"anyOf":[{"$ref":"#/components/schemas/ResourceLink"},{"type":"null"}],"description":"Parent object link, or null when the object has no public parent."},"name":{"type":"string","title":"Name","description":"Human-readable space name."},"is_system":{"type":"boolean","title":"Is System","description":"Whether this is a permanent system space."},"is_public":{"type":"boolean","title":"Is Public","description":"Whether the space is visible to the organization."}},"type":"object","required":["id","created_at","updated_at","name","is_system","is_public"],"title":"SpaceListItem","example":{"created_at":"2026-06-02T12:32:17.908Z","id":"0196d3b9-0c9d-7cf2-9c36-2a8f0bb0f3aa","is_public":true,"is_system":false,"name":"Engineering","type":"SPACE","updated_at":"2026-06-02T12:32:17.908Z"}},"Thread":{"properties":{"id":{"type":"string","format":"uuid","title":"Id"},"created_at":{"type":"string","format":"date-time","title":"Created At"},"last_thread_event_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Last Thread Event At"},"events_url":{"type":"string","title":"Events Url","description":"Canonical public REST URL for this thread's paginated events.","readOnly":true}},"type":"object","required":["id","created_at","last_thread_event_at","events_url"],"title":"Thread","example":{"created_at":"2026-06-18T09:12:03.512Z","events_url":"/api/v1/public/threads/0197f1bc-7369-7343-ae04-31dc04cb204d/events","id":"0197f1bc-7369-7343-ae04-31dc04cb204d","last_thread_event_at":"2026-06-18T09:14:22.184Z"}},"ThreadEvent":{"properties":{"id":{"type":"string","format":"uuid","title":"Id"},"created_at":{"type":"string","format":"date-time","title":"Created At"},"updated_at":{"type":"string","format":"date-time","title":"Updated At"},"author":{"$ref":"#/components/schemas/ResourceLink"},"payloads":{"items":{"oneOf":[{"$ref":"#/components/schemas/MessagePayload"},{"$ref":"#/components/schemas/FilePayload"}],"discriminator":{"propertyName":"payload_type","mapping":{"file":"#/components/schemas/FilePayload","message":"#/components/schemas/MessagePayload"}}},"type":"array","title":"Payloads"}},"type":"object","required":["id","created_at","updated_at","author","payloads"],"title":"ThreadEvent","example":{"author":{"id":"0197f1bf-caa1-70b8-aed4-bca3ab2ff110","type":"USER","url":"/api/v1/public/users/0197f1bf-caa1-70b8-aed4-bca3ab2ff110"},"created_at":"2026-06-18T09:14:22.184Z","id":"0197f1c2-8b01-771d-ba97-35679a72639a","payloads":[{"payload_type":"message","text":"Check whether the signed contract includes the renewal clause."},{"file":{"id":"0197f1bd-1917-72db-a52d-e459e6a85acc","type":"FILE","url":"/api/v1/public/files/0197f1bd-1917-72db-a52d-e459e6a85acc"},"payload_type":"file"}],"updated_at":"2026-06-18T09:14:22.184Z"}},"UpdateAgentRequest":{"properties":{"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name"},"job_description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Job Description"},"model":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Model","description":"Optional model used by the agent. Set to null to use the configured default model. Omit to leave the current model setting unchanged. Use GET /models to discover available model ids."},"reasoning_effort":{"anyOf":[{"$ref":"#/components/schemas/ReasoningEffort"},{"type":"null"}],"description":"Optional reasoning effort stored for the agent. Rejected when unsupported by the selected model. Set to null to clear it."}},"additionalProperties":false,"type":"object","title":"UpdateAgentRequest"},"UpdateCaseRequest":{"properties":{"title":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Title"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description"},"status":{"anyOf":[{"$ref":"#/components/schemas/CaseStatus"},{"type":"null"}]},"assignee_id":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}],"title":"Assignee Id"},"due_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Due At"},"tags":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Tags"},"space_id":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}],"title":"Space Id","description":"Move the case to a Space. Provide exactly one of space_id or parent_case_id when moving a case."},"parent_case_id":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}],"title":"Parent Case Id","description":"Move the case under a parent Case. Provide exactly one of space_id or parent_case_id when moving a case."}},"type":"object","title":"UpdateCaseRequest"},"UpdateFileRequest":{"properties":{"tags":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Tags"},"space_id":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}],"title":"Space Id","description":"Move the file to a Space, or clear the parent when null. Provide at most one of space_id or case_id."},"case_id":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}],"title":"Case Id","description":"Move the file to a Case, or clear the parent when null. Provide at most one of space_id or case_id."}},"type":"object","title":"UpdateFileRequest"},"UpdateNoteRequest":{"properties":{"title":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Title"},"body":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Body"},"tags":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Tags"},"space_id":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}],"title":"Space Id","description":"Move the note to a Space. Provide exactly one of space_id or case_id when moving a note."},"case_id":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}],"title":"Case Id","description":"Move the note to a Case. Provide exactly one of space_id or case_id when moving a note."}},"type":"object","title":"UpdateNoteRequest"},"UpdateProcedureRequest":{"properties":{"title":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Title","description":"Human-readable procedure name."},"stages":{"anyOf":[{"items":{"$ref":"#/components/schemas/ProcedureStagePatchRequest"},"type":"array"},{"type":"null"}],"title":"Stages","description":"Complete replacement list of procedure stages, in desired order. Existing procedure stages omitted from this list are deleted."}},"type":"object","title":"UpdateProcedureRequest","example":{"stages":[{"assignee_id":"0196d3ba-2d25-71f2-8940-5828391ad889","id":"0196d3ba-2d25-71f2-8940-5828391ad888","instructions":"Review the case notes and attached files before drafting a response.","title":"Collect context"},{"assignee_id":"0196d3ba-2d25-71f2-8940-5828391ad88a","instructions":"Create a concise response with next steps and any open questions.","title":"Draft customer response"}],"title":"Customer escalation procedure"}},"UpdateSpaceRequest":{"properties":{"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description"}},"type":"object","title":"UpdateSpaceRequest"},"User":{"properties":{"id":{"type":"string","format":"uuid","title":"Id","description":"Unique identifier for the user."},"type":{"type":"string","const":"USER","title":"Type","description":"Public resource type for the user.","default":"USER"},"created_at":{"type":"string","format":"date-time","title":"Created At","description":"Timestamp when the user was created."},"updated_at":{"type":"string","format":"date-time","title":"Updated At","description":"Timestamp when the user was last updated."},"name":{"type":"string","title":"Name","description":"Display name for the user."},"is_pending":{"type":"boolean","title":"Is Pending","description":"True when the user has been invited but has not yet signed in via Zitadel."},"is_deactivated":{"type":"boolean","title":"Is Deactivated","description":"True when the user's organization membership is archived."}},"type":"object","required":["id","created_at","updated_at","name","is_pending","is_deactivated"],"title":"User","example":{"created_at":"2026-06-02T12:32:17.908Z","id":"0196d3b9-0c9d-7cf2-9c36-2a8f0bb0f3ad","is_deactivated":false,"is_pending":false,"name":"Ada Lovelace","type":"USER","updated_at":"2026-06-02T12:32:17.908Z"}},"ValidationErrorBody":{"properties":{"code":{"type":"string","const":"validation_error","title":"Code","description":"Stable machine-readable error code."},"message":{"type":"string","title":"Message","description":"Human-readable error message."},"fields":{"anyOf":[{"items":{"$ref":"#/components/schemas/ValidationErrorField"},"type":"array"},{"type":"null"}],"title":"Fields","description":"Field-specific validation errors, when available."}},"type":"object","required":["code","message"],"title":"ValidationErrorBody"},"ValidationErrorField":{"properties":{"path":{"type":"string","title":"Path","description":"Request field path where the validation error occurred."},"message":{"type":"string","title":"Message","description":"Human-readable validation error message."},"type":{"type":"string","title":"Type","description":"Machine-readable validation error type."}},"type":"object","required":["path","message","type"],"title":"ValidationErrorField"},"ValidationErrorResponse":{"properties":{"error":{"$ref":"#/components/schemas/ValidationErrorBody"}},"type":"object","required":["error"],"title":"ValidationErrorResponse","example":{"error":{"code":"validation_error","fields":[{"message":"Field required.","path":"title","type":"missing"}],"message":"The request body is invalid."}}},"GameObject":{"$defs":{"ResourceLink":{"properties":{"id":{"description":"Unique identifier for the linked object.","format":"uuid","title":"Id","type":"string"},"type":{"$ref":"#/components/schemas/ResourceType","description":"Public resource type for the linked object."},"url":{"description":"Canonical public REST URL for the linked resource.","readOnly":true,"title":"Url","type":"string"}},"required":["id","type","url"],"title":"ResourceLink","type":"object"},"ResourceType":{"enum":["SPACE","CASE","AGENT","PROCEDURE","NOTE","FILE","USER","THREAD"],"title":"ResourceType","type":"string"}},"properties":{"id":{"description":"Unique identifier for the object.","format":"uuid","title":"Id","type":"string"},"type":{"$ref":"#/components/schemas/ResourceType","description":"Public resource type for the object."},"created_at":{"description":"Timestamp when the object was created.","format":"date-time","title":"Created At","type":"string"},"updated_at":{"description":"Timestamp when the object was last updated.","format":"date-time","title":"Updated At","type":"string"},"parent":{"anyOf":[{"$ref":"#/components/schemas/ResourceLink"},{"type":"null"}],"default":null,"description":"Parent object link, or null when the object has no public parent."}},"required":["id","type","created_at","updated_at"],"title":"GameObject","type":"object"}},"securitySchemes":{"ApiKeyAuth":{"type":"http","scheme":"bearer","bearerFormat":"API key","description":"Enter an Interloom API key. Swagger UI sends it as an Authorization: Bearer token."}}},"security":[{"ApiKeyAuth":[]}]}