Create a revision
POST
/v1/data-contracts/{contractId}/revisionscurl -X POST 'https://api.embodiflow.io/v1/data-contracts/{contractId}/revisions' \
-H 'Authorization: Bearer $EMBODIFLOW_PAT' \
-H 'Content-Type: application/json' \
-d '{
"specJson": {
"contractVersion": "embodiflow-data-contract/v1",
"description": "string",
"metadataEnvelope": {
"requiredFields": [
"string"
],
"fieldTypes": {},
"allowExtraFields": true
},
"canonicalSchema": {
"requiredFields": [
"string"
],
"fieldTypes": {},
"allowExtraFields": true
},
"topics": [
{
"name": "string",
"required": true,
"messageType": "string"
}
],
"features": [
{
"name": "string",
"required": true,
"dtype": "string"
}
],
"blocking": true
},
"blocking": true,
"publish": true
}'Authorization
Send a personal access token with every request.
- Authorization: Bearer PAT
Path parameters
- contractIdstringrequired
Header parameters
- Idempotency-Keystring
Optional idempotency key, at most 255 characters (UUIDv4 recommended). A repeated key returns the first response byte-for-byte, including a 5xx. The same key with a different body, or a second in-flight request, returns 409 IDEMPOTENCY_CONFLICT. Keys are unique per tenant and retained for 24 hours.
Request body
Content-Typeapplication/json
- specJsonobjectrequired
- contractVersionstringrequired
- descriptionstring | null
- metadataEnvelopeobject | null
- canonicalSchemaobject | null
- topicsarray<object> | null
- featuresarray<object> | null
- blockingboolean
- blockingboolean
- publishboolean
Responses
Success
- dataobjectrequired
- idstringrequired
- tenantIdstringrequired
- projectIdstringrequired
- contractIdstringrequired
- revisionnumberrequired
- statusstringrequiredAllowed valuesdraftpublishedarchived
- specJsonobjectrequired
- blockingone ofrequired
- publishedAtstring | nullrequired
- archivedAtstring | nullrequired
- createdAtstringrequired
Response example
{
"data": {
"id": "string",
"tenantId": "string",
"projectId": "string",
"contractId": "string",
"revision": 0,
"status": "draft",
"specJson": {
"contractVersion": "string",
"description": "string",
"metadataEnvelope": {
"requiredFields": [
"string"
],
"fieldTypes": {},
"allowExtraFields": false
},
"canonicalSchema": {
"requiredFields": [
"string"
],
"fieldTypes": {},
"allowExtraFields": false
},
"topics": [
{
"name": "string",
"required": false,
"messageType": "string"
}
],
"features": [
{
"name": "string",
"required": false,
"dtype": "string"
}
],
"blocking": false
},
"blocking": false,
"publishedAt": "string",
"archivedAt": "string",
"createdAt": "string"
}
}Servershttps://api.embodiflow.io/v1https://api.embodiflow.dev/v1