Skip to content

Start a calendar OAuth consent

POST
/v1/integration-connections
curl --request POST \
--url https://api.vocapable.com/v1/integration-connections \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '{ "provider": "calendar" }'

Mint the tenant-bound consent state and hand back the provider’s consent URL.

No row is written here. integration_connections.status has no pending value (docs/03-domain-model.md) - a connection exists only once consent has completed at the callback, so an abandoned consent leaves nothing behind to expire or clean up.

Media typeapplication/json
IntegrationConnectionCreateRequest

Start an OAuth consent. No connection exists until the callback completes it.

object
provider
required
Provider
string
Allowed value: calendar

Successful Response

Media typeapplication/json
IntegrationAuthorization

Where to send the customer’s admin, and how long the signed state admits them.

object
provider
required
Provider
string
Allowed value: calendar
authorization_url
required
Authorization Url
string
state_expires_at
required
State Expires At
string format: date-time
Example
{
"provider": "calendar"
}

Validation Error

Media typeapplication/json
HTTPValidationError
object
detail
Detail
Array<object>
ValidationError
object
loc
required
Location
Array
msg
required
Message
string
type
required
Error Type
string
input
Input
ctx
Context
object
Examplegenerated
{
"detail": [
{
"loc": [
"example"
],
"msg": "example",
"type": "example",
"input": "example",
"ctx": {}
}
]
}