OrganizationsApi¶
Access through client.Organizations.
Read organization¶
Task<Organization> GetAsync(
string organizationId,
OkatanaRequestOptions? options = null,
CancellationToken cancellationToken = default)
Route: GET /organizations/{organization}. Scope: organization:read.
List projects¶
Route: GET /organizations/{organization}/projects. Scope: projects:read. This collection is not paginated by the current contract.
Create project¶
Route: POST /organizations/{organization}/projects. Scope: projects:write.
var project = await client.Organizations.CreateProjectAsync(orgId,
new CreateProjectRequest
{
Name = "Platform",
Key = "PLAT",
Description = "Platform engineering"
});
Name is limited to 180 characters; Key to 12; Description to 5000 when supplied.
List documents¶
Task<OkatanaPage<Document>> ListDocumentsAsync(
string organizationId,
ListDocumentsOptions? filters = null, ...)
Route: GET /organizations/{organization}/documents. Scope: documents:read. Filters include project, status, search query, match-all tag names, and page size 1–200.
EnumerateDocumentsAsync(...) follows all pages as IAsyncEnumerable<Document>.
Create document¶
Route: POST /organizations/{organization}/documents. Scope: documents:write. The request supports project scope, title, caption, HTML content, draft/published status, editor IDs, and tag names.
Send notifications¶
Task<NotificationBatchResult> SendNotificationsAsync(
string organizationId,
SendNotificationRequest request, ...)
Route: POST /organizations/{organization}/notifications. Scope: notifications:write.
The request requires 1–100 organization user IDs, a title up to 180 characters, and body up to 2000 characters. Optional URLs must be internal /app paths or null.