ClientCasa
API

To-dos and project plans

One work identity across project plans, Calendar and day schedules.

Use read:to-dos and write:to-dos (API keys also accept to-dos:read and to-dos:write). Parent project and client access still applies. A milestone is a To-do with kind: milestone.

A title can stay undated. doRule answers when work happens; deadlineRule answers when it must be finished. A timed item also carries its local start, duration and timezone. Preserve seriesId and the full nominalOccurrenceKey for repeating work.

GET /api/v1/to-dos and GET /api/v1/plans share one bounded reader. Global reads default to scope=standalone. Use scope=all&projectId=… for a project's complete work context, including its day work. Follow pagination.nextCursor as after, even when a page is short. complete, coverage.stopped and sources distinguish paging, a stopped read and unavailable sources. An unknown population is never a total of zero.

Every write carries a UUID commandId. Create also carries a stable todoId; edits and lifecycle commands require expectedRevision. Retry the original body and IDs after a lost response. A different change needs a different command ID. The optional Idempotency-Key transport header supplements the domain receipt.

Consequences require review

Complete, reopen, cancel, restore and start use dedicated /to-dos/{id}/… endpoints. A billed checkpoint needs the actor-bound billingReviewId from its consequence review. Without it, completion refuses with plan_billing_review_required. Completion never records payment or sends an invoice.

Template changes use /plans/templates/preview followed by /plans/templates/apply with that exact actor-bound preview. Event-date changes use /plans/dates/preview and /plans/dates/apply. Stale, expired and consumed previews refuse. The existing ClientCasa review sheets are the human review door; an integration must not invent a receipt.

POST /projects/{id}/acts records what happened, with actual-time precision and the current project revision. The existing after-commit worker updates the stage. There is no Move stage action. A direct stage patch returns project_stage_is_derived and the activity endpoint.

SDK and MCP

The committed OpenAPI document is the source for Speakeasy SDK generation. It includes the new To-do models, cursor pagination, command bodies, errors and operation names. Regenerate the SDK from this release's document before using these operations; an older installed SDK cannot acquire new methods automatically. The hosted MCP read_plan tool uses the same reader, scopes and coverage.

Legacy /milestones consumers retain checkpoint identity through a confined adapter. Legacy calendar work resolves only through its evidence map; ordinary appointments keep their calendar policy. These adapters do not grant general To-do access or authorize billing. An incompatible historical result needs a fresh review; it cannot fill the current To-do editor by changing a collection name.

GET
/api/v1/to-dos
x-api-key<token>

In: header

Query Parameters

projectId?string

UUID v4

Formatuuid
clientId?string

UUID v4

Formatuuid
scope?string
Default"standalone"
Value in"standalone" | "day" | "all"
eventDayId?string

UUID v4

Formatuuid
mode?string
Default"records"
Value in"records" | "dated" | "no-date" | "overdue" | "planned-earlier"
start?string
Formatdate
end?string
Formatdate
after?string
Length1 <= length <= 400
limit?integer
Default100
Range1 <= value <= 1000
kind?string
Value in"ordinary" | "milestone"
status?string
Value in"open" | "done" | "cancelled"

Response Body

application/json

application/json

application/json

application/json

application/json

application/json

curl -X GET "https://www.clientcasa.com/api/v1/to-dos"
{
  "data": [
    {
      "id": "550e8400-e29b-41d4-a716-446655440000",
      "persisted": true,
      "mutationPath": "string",
      "businessId": "550e8400-e29b-41d4-a716-446655440000",
      "projectId": "550e8400-e29b-41d4-a716-446655440000",
      "clientId": "550e8400-e29b-41d4-a716-446655440000",
      "title": "string",
      "details": "string",
      "kind": "ordinary",
      "status": "open",
      "revision": 0,
      "doRule": {
        "kind": "none"
      },
      "deadlineRule": {
        "kind": "none"
      },
      "localStart": "string",
      "durationMinutes": 0,
      "scheduleZone": "string",
      "location": "string",
      "assigneeId": "550e8400-e29b-41d4-a716-446655440000",
      "seriesId": "550e8400-e29b-41d4-a716-446655440000",
      "nominalOccurrenceKey": "string",
      "doDate": "2019-08-24",
      "deadlineDay": "2019-08-24",
      "completedAt": "2019-08-24T14:15:22Z",
      "completedOn": "2019-08-24",
      "completionPrecision": "instant",
      "createdAt": "2019-08-24T14:15:22Z",
      "updatedAt": "2019-08-24T14:15:22Z"
    }
  ],
  "items": [
    {
      "property1": null,
      "property2": null
    }
  ],
  "complete": true,
  "pagination": {
    "nextCursor": "string"
  },
  "coverage": {
    "after": "string",
    "next": "string",
    "stopped": true
  },
  "sources": {
    "property1": null,
    "property2": null
  },
  "evaluatedAt": "2019-08-24T14:15:22Z",
  "revisions": {
    "property1": 0,
    "property2": 0
  },
  "nextAction": {
    "property1": null,
    "property2": null
  },
  "notice": "string"
}
{
  "error": {
    "code": "unauthorized",
    "message": "string",
    "requestId": "string",
    "details": {
      "code": "invalid_step_graph",
      "property1": null,
      "property2": null
    }
  }
}
{
  "error": {
    "code": "unauthorized",
    "message": "string",
    "requestId": "string",
    "details": {
      "code": "invalid_step_graph",
      "property1": null,
      "property2": null
    }
  }
}
{
  "error": {
    "code": "unauthorized",
    "message": "string",
    "requestId": "string",
    "details": {
      "code": "invalid_step_graph",
      "property1": null,
      "property2": null
    }
  }
}
{
  "error": {
    "code": "unauthorized",
    "message": "string",
    "requestId": "string",
    "details": {
      "code": "invalid_step_graph",
      "property1": null,
      "property2": null
    }
  }
}
{
  "error": {
    "code": "unauthorized",
    "message": "string",
    "requestId": "string",
    "details": {
      "code": "invalid_step_graph",
      "property1": null,
      "property2": null
    }
  }
}
POST
/api/v1/to-dos
x-api-key<token>

In: header

Header Parameters

Idempotency-Key?string

Optional unique key that makes this request safely retryable. Replaying the same key returns the original response instead of creating a duplicate; reusing a key with a different request body returns 409.

Lengthlength <= 255

Request Body

application/json

TypeScript Definitions

Use the request body type in TypeScript.

Response Body

application/json

application/json

application/json

application/json

application/json

application/json

application/json

curl -X POST "https://www.clientcasa.com/api/v1/to-dos" \  -H "Content-Type: application/json" \  -d '{    "intent": "create",    "commandId": "9e2dd63c-3478-489f-86d3-8c292a65a0aa",    "todoId": "fb0065c9-174d-4e81-9e11-c1b4f674d051",    "businessId": "50092e54-cd12-4059-9828-e8c4ee9a3cf5",    "title": "string"  }'
{
  "todoId": "550e8400-e29b-41d4-a716-446655440000",
  "eventId": "550e8400-e29b-41d4-a716-446655440000",
  "revision": 0,
  "status": "string",
  "billing": "none"
}
{
  "error": {
    "code": "unauthorized",
    "message": "string",
    "requestId": "string",
    "details": {
      "code": "invalid_step_graph",
      "property1": null,
      "property2": null
    }
  }
}
{
  "error": {
    "code": "unauthorized",
    "message": "string",
    "requestId": "string",
    "details": {
      "code": "invalid_step_graph",
      "property1": null,
      "property2": null
    }
  }
}
{
  "error": {
    "code": "unauthorized",
    "message": "string",
    "requestId": "string",
    "details": {
      "code": "invalid_step_graph",
      "property1": null,
      "property2": null
    }
  }
}
{
  "error": {
    "code": "unauthorized",
    "message": "string",
    "requestId": "string",
    "details": {
      "code": "invalid_step_graph",
      "property1": null,
      "property2": null
    }
  }
}
{
  "error": {
    "code": "unauthorized",
    "message": "string",
    "requestId": "string",
    "details": {
      "code": "invalid_step_graph",
      "property1": null,
      "property2": null
    }
  }
}
{
  "error": {
    "code": "unauthorized",
    "message": "string",
    "requestId": "string",
    "details": {
      "code": "invalid_step_graph",
      "property1": null,
      "property2": null
    }
  }
}
GET
/api/v1/to-dos/{id}
x-api-key<token>

In: header

Path Parameters

id*string

UUID v4

Formatuuid

Response Body

application/json

application/json

application/json

application/json

application/json

application/json

curl -X GET "https://www.clientcasa.com/api/v1/to-dos/550e8400-e29b-41d4-a716-446655440000"
{
  "id": "550e8400-e29b-41d4-a716-446655440000",
  "persisted": true,
  "mutationPath": "string",
  "businessId": "550e8400-e29b-41d4-a716-446655440000",
  "projectId": "550e8400-e29b-41d4-a716-446655440000",
  "clientId": "550e8400-e29b-41d4-a716-446655440000",
  "title": "string",
  "details": "string",
  "kind": "ordinary",
  "status": "open",
  "revision": 0,
  "doRule": {
    "kind": "none"
  },
  "deadlineRule": {
    "kind": "none"
  },
  "localStart": "string",
  "durationMinutes": 0,
  "scheduleZone": "string",
  "location": "string",
  "assigneeId": "550e8400-e29b-41d4-a716-446655440000",
  "seriesId": "550e8400-e29b-41d4-a716-446655440000",
  "nominalOccurrenceKey": "string",
  "doDate": "2019-08-24",
  "deadlineDay": "2019-08-24",
  "completedAt": "2019-08-24T14:15:22Z",
  "completedOn": "2019-08-24",
  "completionPrecision": "instant",
  "createdAt": "2019-08-24T14:15:22Z",
  "updatedAt": "2019-08-24T14:15:22Z"
}
{
  "error": {
    "code": "unauthorized",
    "message": "string",
    "requestId": "string",
    "details": {
      "code": "invalid_step_graph",
      "property1": null,
      "property2": null
    }
  }
}
{
  "error": {
    "code": "unauthorized",
    "message": "string",
    "requestId": "string",
    "details": {
      "code": "invalid_step_graph",
      "property1": null,
      "property2": null
    }
  }
}
{
  "error": {
    "code": "unauthorized",
    "message": "string",
    "requestId": "string",
    "details": {
      "code": "invalid_step_graph",
      "property1": null,
      "property2": null
    }
  }
}
{
  "error": {
    "code": "unauthorized",
    "message": "string",
    "requestId": "string",
    "details": {
      "code": "invalid_step_graph",
      "property1": null,
      "property2": null
    }
  }
}
{
  "error": {
    "code": "unauthorized",
    "message": "string",
    "requestId": "string",
    "details": {
      "code": "invalid_step_graph",
      "property1": null,
      "property2": null
    }
  }
}
PATCH
/api/v1/to-dos/{id}
x-api-key<token>

In: header

Path Parameters

id*string

UUID v4

Formatuuid

Header Parameters

Idempotency-Key?string

Optional unique key that makes this request safely retryable. Replaying the same key returns the original response instead of creating a duplicate; reusing a key with a different request body returns 409.

Lengthlength <= 255

Request Body

application/json

TypeScript Definitions

Use the request body type in TypeScript.

Response Body

application/json

application/json

application/json

application/json

application/json

application/json

application/json

application/json

curl -X PATCH "https://www.clientcasa.com/api/v1/to-dos/550e8400-e29b-41d4-a716-446655440000" \  -H "Content-Type: application/json" \  -d '{    "commandId": "550e8400-e29b-41d4-a716-446655440000",    "expectedRevision": 0,    "fields": {}  }'
{
  "todoId": "550e8400-e29b-41d4-a716-446655440000",
  "eventId": "550e8400-e29b-41d4-a716-446655440000",
  "revision": 0,
  "status": "string",
  "billing": "none"
}
{
  "error": {
    "code": "unauthorized",
    "message": "string",
    "requestId": "string",
    "details": {
      "code": "invalid_step_graph",
      "property1": null,
      "property2": null
    }
  }
}
{
  "error": {
    "code": "unauthorized",
    "message": "string",
    "requestId": "string",
    "details": {
      "code": "invalid_step_graph",
      "property1": null,
      "property2": null
    }
  }
}
{
  "error": {
    "code": "unauthorized",
    "message": "string",
    "requestId": "string",
    "details": {
      "code": "invalid_step_graph",
      "property1": null,
      "property2": null
    }
  }
}
{
  "error": {
    "code": "unauthorized",
    "message": "string",
    "requestId": "string",
    "details": {
      "code": "invalid_step_graph",
      "property1": null,
      "property2": null
    }
  }
}
{
  "error": {
    "code": "unauthorized",
    "message": "string",
    "requestId": "string",
    "details": {
      "code": "invalid_step_graph",
      "property1": null,
      "property2": null
    }
  }
}
{
  "error": {
    "code": "unauthorized",
    "message": "string",
    "requestId": "string",
    "details": {
      "code": "invalid_step_graph",
      "property1": null,
      "property2": null
    }
  }
}
{
  "error": {
    "code": "unauthorized",
    "message": "string",
    "requestId": "string",
    "details": {
      "code": "invalid_step_graph",
      "property1": null,
      "property2": null
    }
  }
}
POST
/api/v1/to-dos/{id}/complete
x-api-key<token>

In: header

Path Parameters

id*string

UUID v4

Formatuuid

Header Parameters

Idempotency-Key?string

Optional unique key that makes this request safely retryable. Replaying the same key returns the original response instead of creating a duplicate; reusing a key with a different request body returns 409.

Lengthlength <= 255

Request Body

application/json

TypeScript Definitions

Use the request body type in TypeScript.

Response Body

application/json

application/json

application/json

application/json

application/json

application/json

application/json

application/json

curl -X POST "https://www.clientcasa.com/api/v1/to-dos/550e8400-e29b-41d4-a716-446655440000/complete" \  -H "Content-Type: application/json" \  -d '{    "commandId": "550e8400-e29b-41d4-a716-446655440000",    "expectedRevision": 0  }'
{
  "todoId": "550e8400-e29b-41d4-a716-446655440000",
  "eventId": "550e8400-e29b-41d4-a716-446655440000",
  "revision": 0,
  "status": "string",
  "billing": "none"
}
{
  "error": {
    "code": "unauthorized",
    "message": "string",
    "requestId": "string",
    "details": {
      "code": "invalid_step_graph",
      "property1": null,
      "property2": null
    }
  }
}
{
  "error": {
    "code": "unauthorized",
    "message": "string",
    "requestId": "string",
    "details": {
      "code": "invalid_step_graph",
      "property1": null,
      "property2": null
    }
  }
}
{
  "error": {
    "code": "unauthorized",
    "message": "string",
    "requestId": "string",
    "details": {
      "code": "invalid_step_graph",
      "property1": null,
      "property2": null
    }
  }
}
{
  "error": {
    "code": "unauthorized",
    "message": "string",
    "requestId": "string",
    "details": {
      "code": "invalid_step_graph",
      "property1": null,
      "property2": null
    }
  }
}
{
  "error": {
    "code": "unauthorized",
    "message": "string",
    "requestId": "string",
    "details": {
      "code": "invalid_step_graph",
      "property1": null,
      "property2": null
    }
  }
}
{
  "error": {
    "code": "unauthorized",
    "message": "string",
    "requestId": "string",
    "details": {
      "code": "invalid_step_graph",
      "property1": null,
      "property2": null
    }
  }
}
{
  "error": {
    "code": "unauthorized",
    "message": "string",
    "requestId": "string",
    "details": {
      "code": "invalid_step_graph",
      "property1": null,
      "property2": null
    }
  }
}
POST
/api/v1/to-dos/{id}/reopen
x-api-key<token>

In: header

Path Parameters

id*string

UUID v4

Formatuuid

Header Parameters

Idempotency-Key?string

Optional unique key that makes this request safely retryable. Replaying the same key returns the original response instead of creating a duplicate; reusing a key with a different request body returns 409.

Lengthlength <= 255

Request Body

application/json

TypeScript Definitions

Use the request body type in TypeScript.

Response Body

application/json

application/json

application/json

application/json

application/json

application/json

application/json

application/json

curl -X POST "https://www.clientcasa.com/api/v1/to-dos/550e8400-e29b-41d4-a716-446655440000/reopen" \  -H "Content-Type: application/json" \  -d '{    "commandId": "550e8400-e29b-41d4-a716-446655440000",    "expectedRevision": 0  }'
{
  "todoId": "550e8400-e29b-41d4-a716-446655440000",
  "eventId": "550e8400-e29b-41d4-a716-446655440000",
  "revision": 0,
  "status": "string",
  "billing": "none"
}
{
  "error": {
    "code": "unauthorized",
    "message": "string",
    "requestId": "string",
    "details": {
      "code": "invalid_step_graph",
      "property1": null,
      "property2": null
    }
  }
}
{
  "error": {
    "code": "unauthorized",
    "message": "string",
    "requestId": "string",
    "details": {
      "code": "invalid_step_graph",
      "property1": null,
      "property2": null
    }
  }
}
{
  "error": {
    "code": "unauthorized",
    "message": "string",
    "requestId": "string",
    "details": {
      "code": "invalid_step_graph",
      "property1": null,
      "property2": null
    }
  }
}
{
  "error": {
    "code": "unauthorized",
    "message": "string",
    "requestId": "string",
    "details": {
      "code": "invalid_step_graph",
      "property1": null,
      "property2": null
    }
  }
}
{
  "error": {
    "code": "unauthorized",
    "message": "string",
    "requestId": "string",
    "details": {
      "code": "invalid_step_graph",
      "property1": null,
      "property2": null
    }
  }
}
{
  "error": {
    "code": "unauthorized",
    "message": "string",
    "requestId": "string",
    "details": {
      "code": "invalid_step_graph",
      "property1": null,
      "property2": null
    }
  }
}
{
  "error": {
    "code": "unauthorized",
    "message": "string",
    "requestId": "string",
    "details": {
      "code": "invalid_step_graph",
      "property1": null,
      "property2": null
    }
  }
}
POST
/api/v1/to-dos/{id}/cancel
x-api-key<token>

In: header

Path Parameters

id*string

UUID v4

Formatuuid

Header Parameters

Idempotency-Key?string

Optional unique key that makes this request safely retryable. Replaying the same key returns the original response instead of creating a duplicate; reusing a key with a different request body returns 409.

Lengthlength <= 255

Request Body

application/json

TypeScript Definitions

Use the request body type in TypeScript.

Response Body

application/json

application/json

application/json

application/json

application/json

application/json

application/json

application/json

curl -X POST "https://www.clientcasa.com/api/v1/to-dos/550e8400-e29b-41d4-a716-446655440000/cancel" \  -H "Content-Type: application/json" \  -d '{    "commandId": "550e8400-e29b-41d4-a716-446655440000",    "expectedRevision": 0  }'
{
  "todoId": "550e8400-e29b-41d4-a716-446655440000",
  "eventId": "550e8400-e29b-41d4-a716-446655440000",
  "revision": 0,
  "status": "string",
  "billing": "none"
}
{
  "error": {
    "code": "unauthorized",
    "message": "string",
    "requestId": "string",
    "details": {
      "code": "invalid_step_graph",
      "property1": null,
      "property2": null
    }
  }
}
{
  "error": {
    "code": "unauthorized",
    "message": "string",
    "requestId": "string",
    "details": {
      "code": "invalid_step_graph",
      "property1": null,
      "property2": null
    }
  }
}
{
  "error": {
    "code": "unauthorized",
    "message": "string",
    "requestId": "string",
    "details": {
      "code": "invalid_step_graph",
      "property1": null,
      "property2": null
    }
  }
}
{
  "error": {
    "code": "unauthorized",
    "message": "string",
    "requestId": "string",
    "details": {
      "code": "invalid_step_graph",
      "property1": null,
      "property2": null
    }
  }
}
{
  "error": {
    "code": "unauthorized",
    "message": "string",
    "requestId": "string",
    "details": {
      "code": "invalid_step_graph",
      "property1": null,
      "property2": null
    }
  }
}
{
  "error": {
    "code": "unauthorized",
    "message": "string",
    "requestId": "string",
    "details": {
      "code": "invalid_step_graph",
      "property1": null,
      "property2": null
    }
  }
}
{
  "error": {
    "code": "unauthorized",
    "message": "string",
    "requestId": "string",
    "details": {
      "code": "invalid_step_graph",
      "property1": null,
      "property2": null
    }
  }
}
POST
/api/v1/to-dos/occurrences
x-api-key<token>

In: header

Header Parameters

Idempotency-Key?string

Optional unique key that makes this request safely retryable. Replaying the same key returns the original response instead of creating a duplicate; reusing a key with a different request body returns 409.

Lengthlength <= 255

Request Body

application/json

TypeScript Definitions

Use the request body type in TypeScript.

Response Body

application/json

application/json

application/json

application/json

application/json

application/json

application/json

application/json

curl -X POST "https://www.clientcasa.com/api/v1/to-dos/occurrences" \  -H "Content-Type: application/json" \  -d '{    "intent": "create-series",    "commandId": "9e2dd63c-3478-489f-86d3-8c292a65a0aa",    "seriesId": "9a4d45ee-59e9-44a5-8e84-1878a49320e7",    "businessId": "50092e54-cd12-4059-9828-e8c4ee9a3cf5",    "title": "string",    "rrule": "string",    "day": "string",    "fields": {}  }'
{
  "property1": null,
  "property2": null
}
{
  "error": {
    "code": "unauthorized",
    "message": "string",
    "requestId": "string",
    "details": {
      "code": "invalid_step_graph",
      "property1": null,
      "property2": null
    }
  }
}
{
  "error": {
    "code": "unauthorized",
    "message": "string",
    "requestId": "string",
    "details": {
      "code": "invalid_step_graph",
      "property1": null,
      "property2": null
    }
  }
}
{
  "error": {
    "code": "unauthorized",
    "message": "string",
    "requestId": "string",
    "details": {
      "code": "invalid_step_graph",
      "property1": null,
      "property2": null
    }
  }
}
{
  "error": {
    "code": "unauthorized",
    "message": "string",
    "requestId": "string",
    "details": {
      "code": "invalid_step_graph",
      "property1": null,
      "property2": null
    }
  }
}
{
  "error": {
    "code": "unauthorized",
    "message": "string",
    "requestId": "string",
    "details": {
      "code": "invalid_step_graph",
      "property1": null,
      "property2": null
    }
  }
}
{
  "error": {
    "code": "unauthorized",
    "message": "string",
    "requestId": "string",
    "details": {
      "code": "invalid_step_graph",
      "property1": null,
      "property2": null
    }
  }
}
{
  "error": {
    "code": "unauthorized",
    "message": "string",
    "requestId": "string",
    "details": {
      "code": "invalid_step_graph",
      "property1": null,
      "property2": null
    }
  }
}
GET
/api/v1/plans
x-api-key<token>

In: header

Query Parameters

projectId?string

UUID v4

Formatuuid
clientId?string

UUID v4

Formatuuid
scope?string
Default"standalone"
Value in"standalone" | "day" | "all"
eventDayId?string

UUID v4

Formatuuid
mode?string
Default"records"
Value in"records" | "dated" | "no-date" | "overdue" | "planned-earlier"
start?string
Formatdate
end?string
Formatdate
after?string
Length1 <= length <= 400
limit?integer
Default100
Range1 <= value <= 1000
kind?string
Value in"ordinary" | "milestone"
status?string
Value in"open" | "done" | "cancelled"

Response Body

application/json

application/json

application/json

application/json

application/json

application/json

curl -X GET "https://www.clientcasa.com/api/v1/plans"
{
  "data": [
    {
      "id": "550e8400-e29b-41d4-a716-446655440000",
      "persisted": true,
      "mutationPath": "string",
      "businessId": "550e8400-e29b-41d4-a716-446655440000",
      "projectId": "550e8400-e29b-41d4-a716-446655440000",
      "clientId": "550e8400-e29b-41d4-a716-446655440000",
      "title": "string",
      "details": "string",
      "kind": "ordinary",
      "status": "open",
      "revision": 0,
      "doRule": {
        "kind": "none"
      },
      "deadlineRule": {
        "kind": "none"
      },
      "localStart": "string",
      "durationMinutes": 0,
      "scheduleZone": "string",
      "location": "string",
      "assigneeId": "550e8400-e29b-41d4-a716-446655440000",
      "seriesId": "550e8400-e29b-41d4-a716-446655440000",
      "nominalOccurrenceKey": "string",
      "doDate": "2019-08-24",
      "deadlineDay": "2019-08-24",
      "completedAt": "2019-08-24T14:15:22Z",
      "completedOn": "2019-08-24",
      "completionPrecision": "instant",
      "createdAt": "2019-08-24T14:15:22Z",
      "updatedAt": "2019-08-24T14:15:22Z"
    }
  ],
  "items": [
    {
      "property1": null,
      "property2": null
    }
  ],
  "complete": true,
  "pagination": {
    "nextCursor": "string"
  },
  "coverage": {
    "after": "string",
    "next": "string",
    "stopped": true
  },
  "sources": {
    "property1": null,
    "property2": null
  },
  "evaluatedAt": "2019-08-24T14:15:22Z",
  "revisions": {
    "property1": 0,
    "property2": 0
  },
  "nextAction": {
    "property1": null,
    "property2": null
  },
  "notice": "string"
}
{
  "error": {
    "code": "unauthorized",
    "message": "string",
    "requestId": "string",
    "details": {
      "code": "invalid_step_graph",
      "property1": null,
      "property2": null
    }
  }
}
{
  "error": {
    "code": "unauthorized",
    "message": "string",
    "requestId": "string",
    "details": {
      "code": "invalid_step_graph",
      "property1": null,
      "property2": null
    }
  }
}
{
  "error": {
    "code": "unauthorized",
    "message": "string",
    "requestId": "string",
    "details": {
      "code": "invalid_step_graph",
      "property1": null,
      "property2": null
    }
  }
}
{
  "error": {
    "code": "unauthorized",
    "message": "string",
    "requestId": "string",
    "details": {
      "code": "invalid_step_graph",
      "property1": null,
      "property2": null
    }
  }
}
{
  "error": {
    "code": "unauthorized",
    "message": "string",
    "requestId": "string",
    "details": {
      "code": "invalid_step_graph",
      "property1": null,
      "property2": null
    }
  }
}
POST
/api/v1/plans/templates/preview
x-api-key<token>

In: header

Header Parameters

Idempotency-Key?string

Optional unique key that makes this request safely retryable. Replaying the same key returns the original response instead of creating a duplicate; reusing a key with a different request body returns 409.

Lengthlength <= 255

Request Body

application/json

TypeScript Definitions

Use the request body type in TypeScript.

Response Body

application/json

application/json

application/json

application/json

application/json

application/json

application/json

application/json

curl -X POST "https://www.clientcasa.com/api/v1/plans/templates/preview" \  -H "Content-Type: application/json" \  -d '{    "templateId": "string",    "projectId": "5a8591dd-4039-49df-9202-96385ba3eff8",    "commandId": "9e2dd63c-3478-489f-86d3-8c292a65a0aa"  }'
{
  "property1": null,
  "property2": null
}
{
  "error": {
    "code": "unauthorized",
    "message": "string",
    "requestId": "string",
    "details": {
      "code": "invalid_step_graph",
      "property1": null,
      "property2": null
    }
  }
}
{
  "error": {
    "code": "unauthorized",
    "message": "string",
    "requestId": "string",
    "details": {
      "code": "invalid_step_graph",
      "property1": null,
      "property2": null
    }
  }
}
{
  "error": {
    "code": "unauthorized",
    "message": "string",
    "requestId": "string",
    "details": {
      "code": "invalid_step_graph",
      "property1": null,
      "property2": null
    }
  }
}
{
  "error": {
    "code": "unauthorized",
    "message": "string",
    "requestId": "string",
    "details": {
      "code": "invalid_step_graph",
      "property1": null,
      "property2": null
    }
  }
}
{
  "error": {
    "code": "unauthorized",
    "message": "string",
    "requestId": "string",
    "details": {
      "code": "invalid_step_graph",
      "property1": null,
      "property2": null
    }
  }
}
{
  "error": {
    "code": "unauthorized",
    "message": "string",
    "requestId": "string",
    "details": {
      "code": "invalid_step_graph",
      "property1": null,
      "property2": null
    }
  }
}
{
  "error": {
    "code": "unauthorized",
    "message": "string",
    "requestId": "string",
    "details": {
      "code": "invalid_step_graph",
      "property1": null,
      "property2": null
    }
  }
}
POST
/api/v1/plans/templates/apply
x-api-key<token>

In: header

Header Parameters

Idempotency-Key?string

Optional unique key that makes this request safely retryable. Replaying the same key returns the original response instead of creating a duplicate; reusing a key with a different request body returns 409.

Lengthlength <= 255

Request Body

application/json

TypeScript Definitions

Use the request body type in TypeScript.

Response Body

application/json

application/json

application/json

application/json

application/json

application/json

application/json

application/json

curl -X POST "https://www.clientcasa.com/api/v1/plans/templates/apply" \  -H "Content-Type: application/json" \  -d '{    "commandId": "9e2dd63c-3478-489f-86d3-8c292a65a0aa",    "previewId": "aa80f39b-ade0-40b6-909f-f6684cf78d20"  }'
{
  "property1": null,
  "property2": null
}
{
  "error": {
    "code": "unauthorized",
    "message": "string",
    "requestId": "string",
    "details": {
      "code": "invalid_step_graph",
      "property1": null,
      "property2": null
    }
  }
}
{
  "error": {
    "code": "unauthorized",
    "message": "string",
    "requestId": "string",
    "details": {
      "code": "invalid_step_graph",
      "property1": null,
      "property2": null
    }
  }
}
{
  "error": {
    "code": "unauthorized",
    "message": "string",
    "requestId": "string",
    "details": {
      "code": "invalid_step_graph",
      "property1": null,
      "property2": null
    }
  }
}
{
  "error": {
    "code": "unauthorized",
    "message": "string",
    "requestId": "string",
    "details": {
      "code": "invalid_step_graph",
      "property1": null,
      "property2": null
    }
  }
}
{
  "error": {
    "code": "unauthorized",
    "message": "string",
    "requestId": "string",
    "details": {
      "code": "invalid_step_graph",
      "property1": null,
      "property2": null
    }
  }
}
{
  "error": {
    "code": "unauthorized",
    "message": "string",
    "requestId": "string",
    "details": {
      "code": "invalid_step_graph",
      "property1": null,
      "property2": null
    }
  }
}
{
  "error": {
    "code": "unauthorized",
    "message": "string",
    "requestId": "string",
    "details": {
      "code": "invalid_step_graph",
      "property1": null,
      "property2": null
    }
  }
}
POST
/api/v1/plans/dates/preview
x-api-key<token>

In: header

Header Parameters

Idempotency-Key?string

Optional unique key that makes this request safely retryable. Replaying the same key returns the original response instead of creating a duplicate; reusing a key with a different request body returns 409.

Lengthlength <= 255

Request Body

application/json

TypeScript Definitions

Use the request body type in TypeScript.

Response Body

application/json

application/json

application/json

application/json

application/json

application/json

application/json

application/json

curl -X POST "https://www.clientcasa.com/api/v1/plans/dates/preview" \  -H "Content-Type: application/json" \  -d '{    "commandId": "9e2dd63c-3478-489f-86d3-8c292a65a0aa",    "eventDayId": "0db66fe4-a999-4ecb-82ed-093d4744b354",    "day": "string"  }'
{
  "property1": null,
  "property2": null
}
{
  "error": {
    "code": "unauthorized",
    "message": "string",
    "requestId": "string",
    "details": {
      "code": "invalid_step_graph",
      "property1": null,
      "property2": null
    }
  }
}
{
  "error": {
    "code": "unauthorized",
    "message": "string",
    "requestId": "string",
    "details": {
      "code": "invalid_step_graph",
      "property1": null,
      "property2": null
    }
  }
}
{
  "error": {
    "code": "unauthorized",
    "message": "string",
    "requestId": "string",
    "details": {
      "code": "invalid_step_graph",
      "property1": null,
      "property2": null
    }
  }
}
{
  "error": {
    "code": "unauthorized",
    "message": "string",
    "requestId": "string",
    "details": {
      "code": "invalid_step_graph",
      "property1": null,
      "property2": null
    }
  }
}
{
  "error": {
    "code": "unauthorized",
    "message": "string",
    "requestId": "string",
    "details": {
      "code": "invalid_step_graph",
      "property1": null,
      "property2": null
    }
  }
}
{
  "error": {
    "code": "unauthorized",
    "message": "string",
    "requestId": "string",
    "details": {
      "code": "invalid_step_graph",
      "property1": null,
      "property2": null
    }
  }
}
{
  "error": {
    "code": "unauthorized",
    "message": "string",
    "requestId": "string",
    "details": {
      "code": "invalid_step_graph",
      "property1": null,
      "property2": null
    }
  }
}
POST
/api/v1/plans/dates/apply
x-api-key<token>

In: header

Header Parameters

Idempotency-Key?string

Optional unique key that makes this request safely retryable. Replaying the same key returns the original response instead of creating a duplicate; reusing a key with a different request body returns 409.

Lengthlength <= 255

Request Body

application/json

TypeScript Definitions

Use the request body type in TypeScript.

Response Body

application/json

application/json

application/json

application/json

application/json

application/json

application/json

application/json

curl -X POST "https://www.clientcasa.com/api/v1/plans/dates/apply" \  -H "Content-Type: application/json" \  -d '{    "commandId": "9e2dd63c-3478-489f-86d3-8c292a65a0aa",    "previewId": "aa80f39b-ade0-40b6-909f-f6684cf78d20"  }'
{
  "property1": null,
  "property2": null
}
{
  "error": {
    "code": "unauthorized",
    "message": "string",
    "requestId": "string",
    "details": {
      "code": "invalid_step_graph",
      "property1": null,
      "property2": null
    }
  }
}
{
  "error": {
    "code": "unauthorized",
    "message": "string",
    "requestId": "string",
    "details": {
      "code": "invalid_step_graph",
      "property1": null,
      "property2": null
    }
  }
}
{
  "error": {
    "code": "unauthorized",
    "message": "string",
    "requestId": "string",
    "details": {
      "code": "invalid_step_graph",
      "property1": null,
      "property2": null
    }
  }
}
{
  "error": {
    "code": "unauthorized",
    "message": "string",
    "requestId": "string",
    "details": {
      "code": "invalid_step_graph",
      "property1": null,
      "property2": null
    }
  }
}
{
  "error": {
    "code": "unauthorized",
    "message": "string",
    "requestId": "string",
    "details": {
      "code": "invalid_step_graph",
      "property1": null,
      "property2": null
    }
  }
}
{
  "error": {
    "code": "unauthorized",
    "message": "string",
    "requestId": "string",
    "details": {
      "code": "invalid_step_graph",
      "property1": null,
      "property2": null
    }
  }
}
{
  "error": {
    "code": "unauthorized",
    "message": "string",
    "requestId": "string",
    "details": {
      "code": "invalid_step_graph",
      "property1": null,
      "property2": null
    }
  }
}
POST
/api/v1/projects/{id}/acts
x-api-key<token>

In: header

Path Parameters

id*string

UUID v4

Formatuuid

Header Parameters

Idempotency-Key?string

Optional unique key that makes this request safely retryable. Replaying the same key returns the original response instead of creating a duplicate; reusing a key with a different request body returns 409.

Lengthlength <= 255

Request Body

application/json

TypeScript Definitions

Use the request body type in TypeScript.

Response Body

application/json

application/json

application/json

application/json

application/json

application/json

application/json

application/json

curl -X POST "https://www.clientcasa.com/api/v1/projects/550e8400-e29b-41d4-a716-446655440000/acts" \  -H "Content-Type: application/json" \  -d '{    "commandId": "9e2dd63c-3478-489f-86d3-8c292a65a0aa",    "expectedRevision": 0,    "intent": "proposal-shared",    "evidence": {      "precision": "instant",      "occurredAt": "2019-08-24T14:15:22Z"    }  }'
{
  "property1": null,
  "property2": null
}
{
  "error": {
    "code": "unauthorized",
    "message": "string",
    "requestId": "string",
    "details": {
      "code": "invalid_step_graph",
      "property1": null,
      "property2": null
    }
  }
}
{
  "error": {
    "code": "unauthorized",
    "message": "string",
    "requestId": "string",
    "details": {
      "code": "invalid_step_graph",
      "property1": null,
      "property2": null
    }
  }
}
{
  "error": {
    "code": "unauthorized",
    "message": "string",
    "requestId": "string",
    "details": {
      "code": "invalid_step_graph",
      "property1": null,
      "property2": null
    }
  }
}
{
  "error": {
    "code": "unauthorized",
    "message": "string",
    "requestId": "string",
    "details": {
      "code": "invalid_step_graph",
      "property1": null,
      "property2": null
    }
  }
}
{
  "error": {
    "code": "unauthorized",
    "message": "string",
    "requestId": "string",
    "details": {
      "code": "invalid_step_graph",
      "property1": null,
      "property2": null
    }
  }
}
{
  "error": {
    "code": "unauthorized",
    "message": "string",
    "requestId": "string",
    "details": {
      "code": "invalid_step_graph",
      "property1": null,
      "property2": null
    }
  }
}
{
  "error": {
    "code": "unauthorized",
    "message": "string",
    "requestId": "string",
    "details": {
      "code": "invalid_step_graph",
      "property1": null,
      "property2": null
    }
  }
}

Dated reads include unsaved repeating occurrences. These have persisted: false and an id made from the series UUID and full nominal occurrence key. Use their seriesId and nominalOccurrenceKey with /api/v1/to-dos/occurrences; mutationPath names that endpoint. Only saved UUIDs can be used with /api/v1/to-dos/{id}. Reading an occurrence never saves it.

On this page