Skip to main content
Launchboard models vesting in two complementary resources. Vesting terms define a reusable vesting schedule — the allocation method, vesting conditions, cliff, and total duration — that you attach to a security at grant time via vestingTermsId. Vesting milestones track discrete events tied to an individual security (for example, “product launch” or “Series A close”) that trigger a percentage of the grant to vest when you mark them complete. The two resources can be used independently or together depending on the grant structure.

Vesting terms endpoints

Vesting milestones endpoints


List vesting terms

Returns a cursor-paginated list of all vesting term records for your organization.

Query parameters

number
default:"25"
Maximum results per page. Capped at 100.
string
Opaque cursor from the previous response’s nextCursor field.

Response

object[]
Array of vesting terms objects.
string | null
Cursor for the next page. null on the last page.

Create vesting terms

Creates a reusable vesting schedule. Once saved, reference the record by its id in vestingTermsId when issuing securities.

Request body

string
required
Human-readable name. Maximum 100 characters.
string
required
Description of the vesting schedule. Used in the Launchboard UI and grant notices.
string
default:"CUMULATIVE_ROUNDING"
Rounding strategy for share quantities across vesting periods. One of: CUMULATIVE_ROUNDING, CUMULATIVE_ROUND_DOWN, FRONT_LOADED, BACK_LOADED, FRONT_LOADED_TO_SINGLE_TRANCHE, BACK_LOADED_TO_SINGLE_TRANCHE, FRACTIONAL.
string
default:"TIME_BASED"
Whether vesting is driven by time, events, or a combination: TIME_BASED, EVENT_BASED, or HYBRID.
object[]
required
Array of vesting condition objects. At least one is required.
object
Simplified schedule summary for display purposes.
number
Total vesting duration in months. Convenience field that mirrors schedule.totalMonths.
number
Cliff duration in months. Convenience field that mirrors schedule.cliffMonths.
string
Free-text notes.

Response

Returns 201 Created with the full vesting terms object and a Location header.

Get vesting terms

Returns the vesting terms object.

Update vesting terms

Partial update — include only the fields you want to change.
All fields from the create body are accepted; all are optional for PATCH. Returns 200 OK with the updated object.

Delete vesting terms

Returns 204 No Content on success.

List vesting milestones

Returns a cursor-paginated list of all vesting milestones for your organization.

Query parameters

number
default:"25"
Maximum results per page. Capped at 100.
string
Opaque cursor from the previous response’s nextCursor field.

Response

object[]
Array of vesting milestone objects.
string | null
Cursor for the next page. null on the last page.

Create a vesting milestone

Creates a new milestone for a security. The milestone starts in PENDING status.

Request body

string
required
Short name for the milestone. Maximum 100 characters.
string
Detailed description of the milestone condition. Maximum 500 characters.
string
Expected completion date in YYYY-MM-DD format.

Response

Returns 201 Created with the full milestone object and a Location header.

Get a vesting milestone

Returns the milestone object.

Update a vesting milestone

Partial update for pending milestones. Use this to adjust the target date or description before the milestone is completed.
All fields from the create body are accepted; all are optional for PATCH. Returns 200 OK with the updated milestone object.

Delete a vesting milestone

Returns 204 No Content on success.

Mark a milestone as completed

Transitions a PENDING milestone to COMPLETED and records a completedAt timestamp. Optionally attach an evidence note describing how the milestone was satisfied.

Request body

string
Optional note documenting how the milestone was satisfied. Maximum 1000 characters.

Response

Returns 200 OK with the updated milestone object. The completedAt field will be populated with the current timestamp and status will be COMPLETED.

Common errors

Completing a milestone is an irreversible action. If you need to correct a milestone that was completed in error, contact support or delete the milestone and recreate it.