POST /v1/agent-cards/requests/{id}/approve
Approve a pending request, making the card usable by the agent that asked. Signed-in users only. Returns the resulting grant, never card details.
POST
/v1/agent-cards/requests/{id}/approve
Approve a pending request, making the card usable by the agent that asked. Signed-in
users only. Returns the resulting grant, never card details.
Path Parameters
id
string
required
path
Request ID
Responses
200
OK
application/jsoncode
integer
data
object
approvedAt
string
cardId
string
connectorId
string
createdAt
string
expiresAt
string
grantedBy
string
id
string
maxUses
integer
note
string
organizationId
string
purpose
string
requestedBy
string
retiredAt
string
RetiredAt exists for the unique index, not for the domain. idx_agent_card_grants_live
keeps one live grant per card, but a partial index predicate cannot reference now(),
so expiry is stamped here instead and the index excludes it. Only ever set on a row
that is already past ExpiresAt, and never by a human — a human withdrawing permission
sets RevokedAt, which redeem and the UI both read and this column deliberately is not.
revokedAt
string
updatedAt
string
uses
integer
message
string
requestId
string
403
Forbidden
curl -X POST 'https://api.example.com/v1/agent-cards/requests/string/approve' \ -H 'Authorization: Bearer YOUR_API_TOKEN'
const response = await fetch('https://api.example.com/v1/agent-cards/requests/string/approve', { method: 'POST', headers: { "Authorization": "Bearer YOUR_API_TOKEN" }});const data = await response.json();console.log(data);
import requestsheaders = { 'Authorization': 'Bearer YOUR_API_TOKEN'}response = requests.post('https://api.example.com/v1/agent-cards/requests/string/approve', headers=headers)print(response.json())
package mainimport ( "fmt" "io" "net/http")func main() { req, _ := http.NewRequest("POST", "https://api.example.com/v1/agent-cards/requests/string/approve", nil) req.Header.Set("Authorization", "Bearer YOUR_API_TOKEN") resp, _ := http.DefaultClient.Do(req) defer resp.Body.Close() result, _ := io.ReadAll(resp.Body) fmt.Println(string(result))}
200
Response
{ "code": 200, "data": { "approvedAt": "<string>", "cardId": "<string>", "connectorId": "<string>", "createdAt": "<string>", "expiresAt": "<string>", "grantedBy": "<string>", "id": "<string>", "maxUses": 123, "note": "<string>", "organizationId": "<string>", "purpose": "<string>", "requestedBy": "<string>", "retiredAt": "<string>", "revokedAt": "<string>", "updatedAt": "<string>", "uses": 123 }, "message": "success", "requestId": "abc-123"}
API Playground
Try this endpoint
POST
/v1/agent-cards/requests/{id}/approve
