import requests
url = "https://api.example.com/api/v1/pacts/submit"
payload = {
"wallet_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"intent": "<string>",
"spec": {
"policies": [
{
"name": "<string>",
"rules": {},
"priority": 0,
"is_active": True
}
],
"completion_conditions": [{ "threshold": "<string>" }],
"execution_plan": "<string>"
},
"original_intent": "<string>",
"name": "<string>",
"recipe_slugs": ["<string>"]
}
headers = {"Content-Type": "application/json"}
response = requests.post(url, json=payload, headers=headers)
print(response.text)curl --request POST \
--url https://api.example.com/api/v1/pacts/submit \
--header 'Content-Type: application/json' \
--data '
{
"wallet_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"intent": "<string>",
"spec": {
"policies": [
{
"name": "<string>",
"rules": {},
"priority": 0,
"is_active": true
}
],
"completion_conditions": [
{
"threshold": "<string>"
}
],
"execution_plan": "<string>"
},
"original_intent": "<string>",
"name": "<string>",
"recipe_slugs": [
"<string>"
]
}
'{
"result": {
"pact_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"status": "pending_approval",
"approval_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"message": "<string>"
},
"success": true,
"suggestion": "",
"message": "",
"meta": {
"total": 123,
"offset": 123,
"limit": 123,
"has_more": true,
"after": "<string>",
"before": "<string>"
}
}{
"result": {
"pact_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"status": "pending_approval",
"approval_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"message": "<string>"
},
"success": true,
"suggestion": "",
"message": "",
"meta": {
"total": 123,
"offset": 123,
"limit": 123,
"has_more": true,
"after": "<string>",
"before": "<string>"
}
}{
"success": false,
"error": {
"detail": [
{
"loc": [
"<string>"
],
"msg": "<string>",
"type": "<string>",
"input": "<unknown>",
"ctx": {}
}
]
}
}Submit pact for approval
Submit a pact specification for human approval. Your agent’s identity is resolved from the authenticated API key. The pact enters PENDING_APPROVAL status and a notification is sent to the Cobo Agentic Wallet app. For unpaired agents, the pact is auto-approved and enters ACTIVE status immediately.
import requests
url = "https://api.example.com/api/v1/pacts/submit"
payload = {
"wallet_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"intent": "<string>",
"spec": {
"policies": [
{
"name": "<string>",
"rules": {},
"priority": 0,
"is_active": True
}
],
"completion_conditions": [{ "threshold": "<string>" }],
"execution_plan": "<string>"
},
"original_intent": "<string>",
"name": "<string>",
"recipe_slugs": ["<string>"]
}
headers = {"Content-Type": "application/json"}
response = requests.post(url, json=payload, headers=headers)
print(response.text)curl --request POST \
--url https://api.example.com/api/v1/pacts/submit \
--header 'Content-Type: application/json' \
--data '
{
"wallet_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"intent": "<string>",
"spec": {
"policies": [
{
"name": "<string>",
"rules": {},
"priority": 0,
"is_active": true
}
],
"completion_conditions": [
{
"threshold": "<string>"
}
],
"execution_plan": "<string>"
},
"original_intent": "<string>",
"name": "<string>",
"recipe_slugs": [
"<string>"
]
}
'{
"result": {
"pact_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"status": "pending_approval",
"approval_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"message": "<string>"
},
"success": true,
"suggestion": "",
"message": "",
"meta": {
"total": 123,
"offset": 123,
"limit": 123,
"has_more": true,
"after": "<string>",
"before": "<string>"
}
}{
"result": {
"pact_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"status": "pending_approval",
"approval_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"message": "<string>"
},
"success": true,
"suggestion": "",
"message": "",
"meta": {
"total": 123,
"offset": 123,
"limit": 123,
"has_more": true,
"after": "<string>",
"before": "<string>"
}
}{
"success": false,
"error": {
"detail": [
{
"loc": [
"<string>"
],
"msg": "<string>",
"type": "<string>",
"input": "<unknown>",
"ctx": {}
}
]
}
}Headers
Body
Request body for POST /pacts/submit.
Target wallet UUID.
Natural language description of the task.
1 - 2000The pact specification.
Show child attributes
Show child attributes
Raw user input that originated this pact request. For multi-turn conversations, messages are concatenated.
Human-readable pact name. Derived from intent if absent.
1 - 255Slugs of recipes (from the recipes table) to associate with this pact.
Response
Already exists (idempotent). Successful Response
Response for POST /pacts/submit.
Show child attributes
Show child attributes
Pagination metadata for list responses.
Supports both legacy offset-based and cursor-based pagination.
Cursor fields (has_more, after, before) are populated for
cursor-paginated endpoints. Legacy fields (offset, limit) are
populated when the caller uses the deprecated offset parameter.
Show child attributes
Show child attributes