Build modular workflows on top of Vynflow using service-account authenticated JSON APIs. The primary public surface today is the User Tables row CRUD API.
All requests require the following headers:
Authorization: Bearer sa-p-vynflow-SECRET
X-API-Key: sa-k-vynflow-KEY
X-Domain-ID: DOMAIN_UUID
Table discovery and schema:
POST https://vynflow.cloud/api/user-tables
GET https://vynflow.cloud/api/user-tables
GET https://vynflow.cloud/api/user-tables/{TABLE_ID}/schema
Row CRUD:
POST https://vynflow.cloud/api/user-tables/{TABLE_ID}/rows
POST https://vynflow.cloud/api/user-tables/{TABLE_ID}/rows/from-columns
GET https://vynflow.cloud/api/user-tables/{TABLE_ID}/rows
GET https://vynflow.cloud/api/user-tables/{TABLE_ID}/row/{ROW_ID}
PUT https://vynflow.cloud/api/user-tables/{TABLE_ID}/row/{ROW_ID}
PATCH https://vynflow.cloud/api/user-tables/{TABLE_ID}/row/{ROW_ID}
DELETE https://vynflow.cloud/api/user-tables/{TABLE_ID}/row/{ROW_ID}
Create a table:
curl -X POST https://vynflow.cloud/api/user-tables \
-H "Authorization: Bearer sa-p-vynflow-SECRET" \
-H "X-API-Key: sa-k-vynflow-KEY" \
-H "X-Domain-ID: DOMAIN_UUID" \
-H "Content-Type: application/json" \
-d '{
"name": "Vendors",
"description": "All vendors and key contacts"
}'
Get schema for a table:
curl -X GET https://vynflow.cloud/api/user-tables/TABLE_ID/schema \
-H "Authorization: Bearer sa-p-vynflow-SECRET" \
-H "X-API-Key: sa-k-vynflow-KEY" \
-H "X-Domain-ID: DOMAIN_UUID"
Create a row:
curl -X POST https://vynflow.cloud/api/user-tables/TABLE_ID/rows \
-H "Authorization: Bearer sa-p-vynflow-SECRET" \
-H "X-API-Key: sa-k-vynflow-KEY" \
-H "X-Domain-ID: DOMAIN_UUID" \
-H "Content-Type: application/json" \
-d '{
"data": {
"Name": "Acme",
"Amount": 1200,
"Active": true
}
}'
List rows (with filtering/sorting):
curl -X GET "https://vynflow.cloud/api/user-tables/TABLE_ID/rows?page=1&per_page=10&filter_col=Name&filter_value=Acme&sort_col=CreatedAt&sort_dir=desc" \
-H "Authorization: Bearer sa-p-vynflow-SECRET" \
-H "X-API-Key: sa-k-vynflow-KEY" \
-H "X-Domain-ID: DOMAIN_UUID"