Messaging · RCS
Updates an RCS agent. Fields you leave out keep their current values.
Request
Send your API key as Authorization: Bearer pz_live_.... Read-only keys cannot call it. Keys with the messages resource group disabled get 403 resource_group_disabled. Authentication
Path parameters
| Name | Type | Notes |
|---|---|---|
agentIdrequired | string |
Request body
application/json, required
displayNamestringUp to 40 characters.
useCasestringOne of
MULTI_USE,PROMOTIONAL,TRANSACTIONAL,OTP.profileobject9 child fields
descriptionstringrequiredUp to 100 characters.
logoUrlstring (URL)requiredheroUrlstring (URL)requiredbrandColorstringrequiredprivacyPolicyUrlstring (URL)requiredtermsUrlstring (URL)requiredphoneobject2 child fields
numberstringrequiredlabelstringrequiredUp to 25 characters.
websiteobject2 child fields
urlstring (URL)requiredlabelstringrequiredUp to 25 characters.
emailobject2 child fields
addressstring (email)requiredlabelstringrequiredUp to 25 characters.
brandobject9 child fields
displayNamestringrequiredUp to 100 characters.
legalNamestringrequiredUp to 100 characters.
legalEntityTypestringrequiredOne of
LIMITED_LIABILITY_COMPANY,SOLE_PROPRIETORSHIP,PARTNERSHIP,CORPORATION,S_CORPORATION.organizationTypestringrequiredOne of
PRIVATE_PROFIT,PUBLIC_PROFIT,NON_PROFIT,GOVERNMENT.websiteUrlstring (URL)requiredtaxIdstringrequiredstockSymbolstringaddressobjectrequired6 child fields
line1stringrequiredline2stringcitystringrequiredstatestringpostalCodestringrequiredcountrystringrequiredOne of
US,GB,AT,BD,BR,CD,DE,ES,FR,IN,IT,MX,NG,NL,NO,PT,SE,SG,ZA.
contactobjectrequired5 child fields
firstNamestringrequiredlastNamestringrequiredtitlestringemailstring (email)requiredphonestringrequired
smsFallbackFromstringCan be null.
Example
curl -X PATCH "https://api.pozy.ai/v1/rcs/agents/6b99fbd950277956c14bd44d" \
-H "Authorization: Bearer $POZY_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"displayName": "Acme",
"useCase": "MULTI_USE",
"profile": {
"description": "A short description",
"logoUrl": "https://pozy.ai/media/example-1.jpg",
"heroUrl": "https://pozy.ai/media/example-1.jpg",
"brandColor": "string",
"privacyPolicyUrl": "https://pozy.ai/media/example-1.jpg",
"termsUrl": "https://pozy.ai/media/example-1.jpg"
},
"brand": {
"displayName": "Acme",
"legalName": "Acme",
"legalEntityType": "LIMITED_LIABILITY_COMPANY",
"organizationType": "PRIVATE_PROFIT",
"websiteUrl": "https://pozy.ai/media/example-1.jpg",
"taxId": "6e274285e4e83c5f91aee85e",
"address": {
"line1": "string",
"city": "string",
"postalCode": "string",
"country": "US"
},
"contact": {
"firstName": "Acme",
"lastName": "Acme",
"email": "alex@example.com",
"phone": "+14155550123"
}
}
}'const res = await fetch("https://api.pozy.ai/v1/rcs/agents/6b99fbd950277956c14bd44d", {
method: "PATCH",
headers: {
Authorization: `Bearer ${process.env.POZY_API_KEY}`,
"Content-Type": "application/json",
},
body: JSON.stringify({
displayName: "Acme",
useCase: "MULTI_USE",
profile: {
description: "A short description",
logoUrl: "https://pozy.ai/media/example-1.jpg",
heroUrl: "https://pozy.ai/media/example-1.jpg",
brandColor: "string",
privacyPolicyUrl: "https://pozy.ai/media/example-1.jpg",
termsUrl: "https://pozy.ai/media/example-1.jpg"
},
brand: {
displayName: "Acme",
legalName: "Acme",
legalEntityType: "LIMITED_LIABILITY_COMPANY",
organizationType: "PRIVATE_PROFIT",
websiteUrl: "https://pozy.ai/media/example-1.jpg",
taxId: "6e274285e4e83c5f91aee85e",
address: {
line1: "string",
city: "string",
postalCode: "string",
country: "US"
},
contact: {
firstName: "Acme",
lastName: "Acme",
email: "alex@example.com",
phone: "+14155550123"
}
}
}),
});
const data = await res.json();
if (!res.ok) throw new Error(data?.error ?? `Request failed with status ${res.status}`);
console.log(data);import os
import requests
resp = requests.patch(
"https://api.pozy.ai/v1/rcs/agents/6b99fbd950277956c14bd44d",
headers={"Authorization": f"Bearer {os.environ['POZY_API_KEY']}"},
json={
"displayName": "Acme",
"useCase": "MULTI_USE",
"profile": {
"description": "A short description",
"logoUrl": "https://pozy.ai/media/example-1.jpg",
"heroUrl": "https://pozy.ai/media/example-1.jpg",
"brandColor": "string",
"privacyPolicyUrl": "https://pozy.ai/media/example-1.jpg",
"termsUrl": "https://pozy.ai/media/example-1.jpg",
},
"brand": {
"displayName": "Acme",
"legalName": "Acme",
"legalEntityType": "LIMITED_LIABILITY_COMPANY",
"organizationType": "PRIVATE_PROFIT",
"websiteUrl": "https://pozy.ai/media/example-1.jpg",
"taxId": "6e274285e4e83c5f91aee85e",
"address": {
"line1": "string",
"city": "string",
"postalCode": "string",
"country": "US",
},
"contact": {
"firstName": "Acme",
"lastName": "Acme",
"email": "alex@example.com",
"phone": "+14155550123",
},
},
},
timeout=30,
)
resp.raise_for_status()
print(resp.json())Response
200 on success
agentobject19 child fields
idstringprofileIdstringaccountIdstringCan be null.
countrystringstatusstringOne of
requested,changes_requested,brand_vetting,agent_review,testing,launch_review,launching,live,rejected,deactivated.displayNamestringUp to 40 characters.
useCasestringOne of
MULTI_USE,PROMOTIONAL,TRANSACTIONAL,OTP.profileobject9 child fields
descriptionstringrequiredUp to 100 characters.
logoUrlstring (URL)requiredheroUrlstring (URL)requiredbrandColorstringrequiredprivacyPolicyUrlstring (URL)requiredtermsUrlstring (URL)requiredphoneobject2 child fields
numberstringrequiredlabelstringrequiredUp to 25 characters.
websiteobject2 child fields
urlstring (URL)requiredlabelstringrequiredUp to 25 characters.
emailobject2 child fields
addressstring (email)requiredlabelstringrequiredUp to 25 characters.
brandobjectOne of:
Rcs Brand (12 fields)
displayNamestringrequiredUp to 100 characters.
legalNamestringrequiredUp to 100 characters.
legalEntityTypestringrequiredOne of
LIMITED_LIABILITY_COMPANY,SOLE_PROPRIETORSHIP,PARTNERSHIP,CORPORATION,S_CORPORATION.organizationTypestringrequiredOne of
PRIVATE_PROFIT,PUBLIC_PROFIT,NON_PROFIT,GOVERNMENT.websiteUrlstring (URL)requiredtaxIdstringrequiredstockSymbolstringaddressobjectrequired6 child fields
line1stringrequiredline2stringcitystringrequiredstatestringpostalCodestringrequiredcountrystringrequiredOne of
US,GB,AT,BD,BR,CD,DE,ES,FR,IN,IT,MX,NG,NL,NO,PT,SE,SG,ZA.
contactobjectrequired5 child fields
firstNamestringrequiredlastNamestringrequiredtitlestringemailstring (email)requiredphonestringrequired
idstringstatusstringOne of
draft,vetting,verified,rejected.createdAtstring (date-time)
launchRequestobjectOne of:
Rcs Launch Request (7 fields)
companyOverviewstringrequiredUp to 2000 characters.
agentOverviewstringrequiredUp to 2000 characters.
interactionsarray of objectrequiredAt least 1 item.
2 child fields
typestringrequiredOne of
TRANSACTIONAL_UPDATES,CUSTOMER_SUPPORT,LOYALTY_OR_REWARD,MARKETING_OR_PROMOTIONAL,ACCOUNT_ALERTS,TWO_WAY_CONVERSATION,OTHER.descriptionstring
messageExamplesarray of stringrequiredAt least 3 items. Up to 10 items. Each item: up to 2000 characters.
consentobjectrequired9 child fields
optInMethodsarray of objectrequiredAt least 1 item.
2 child fields
typestringrequiredOne of
SMS,WEBSITE,MOBILE_APP,QR_CODE,SALE_POINT,OTHER.descriptionstring
callToActionstringrequiredcallToActionUrlstring (URL)callToActionMediaUrlstring (URL)doubleOptInbooleanrequireddoubleOptInMessagestringoptInMessagestringrequiredhelpResponsestringrequiredoptOutResponsestringrequired
testVideoUrlstring (URL)requiredadditionalInformationstringUp to 2000 characters.
carrierApprovalsarray of object6 child fields
approvalIdstringscopestringOne of
carrier,hub,bot.statusstringOne of
PENDING,SUBMITTED,APPROVED,REJECTED.carrierstringCan be null.
approvedAtstring (date-time)Can be null.
rejectedReasonstringCan be null.
testDevicesarray of object3 child fields
testDeviceIdstringphoneNumberstringinviteStatusstringOne of
PENDING,ACCEPTED,DECLINED.
smsFallbackFromstringCan be null.
reviewNotestringCan be null.
declineReasonstringCan be null.
requestedAtstring (date-time)Can be null.
submittedAtstring (date-time)Can be null.
liveAtstring (date-time)Can be null.
createdAtstring (date-time)
{
"agent": {
"id": "6bfebd43ddc270f6d2c56fc5",
"profileId": "6a0b6573846efc28aaa9a3ff",
"accountId": "696e0b682d0a31188e7a2ba9",
"country": "US",
"status": "requested",
"displayName": "Acme",
"useCase": "MULTI_USE",
"profile": {
"description": "A short description",
"logoUrl": "https://pozy.ai/media/example-1.jpg",
"heroUrl": "https://pozy.ai/media/example-1.jpg",
"brandColor": "string",
"privacyPolicyUrl": "https://pozy.ai/media/example-1.jpg",
"termsUrl": "https://pozy.ai/media/example-1.jpg",
"phone": {
"number": "string",
"label": "string"
},
"website": {
"url": "https://pozy.ai/media/example-1.jpg",
"label": "string"
},
"email": {
"address": "alex@example.com",
"label": "string"
}
},
"brand": {
"displayName": "Acme",
"legalName": "Acme",
"legalEntityType": "LIMITED_LIABILITY_COMPANY",
"organizationType": "PRIVATE_PROFIT",
"websiteUrl": "https://pozy.ai/media/example-1.jpg",
"taxId": "6e274285e4e83c5f91aee85e",
"stockSymbol": "string",
"address": {
"line1": "string",
"line2": "string",
"city": "string",
"state": "string",
"postalCode": "string",
"country": "US"
},
"contact": {
"firstName": "Acme",
"lastName": "Acme",
"title": "Launch day",
"email": "alex@example.com",
"phone": "+14155550123"
},
"id": "6bfebd43ddc270f6d2c56fc5",
"status": "draft",
"createdAt": "2026-10-02T09:00:00.000Z"
},
"launchRequest": {
"companyOverview": "string",
"agentOverview": "string",
"interactions": [
{
"type": "TRANSACTIONAL_UPDATES",
"description": "A short description"
}
],
"messageExamples": [
"Hello from Pozy"
],
"consent": {
"optInMethods": [
{
"type": "SMS",
"description": "A short description"
}
],
"callToAction": "string",
"callToActionUrl": "https://pozy.ai/media/example-1.jpg",
"callToActionMediaUrl": "https://pozy.ai/media/example-1.jpg",
"doubleOptIn": true,
"doubleOptInMessage": "Hello from Pozy",
"optInMessage": "Hello from Pozy",
"helpResponse": "string",
"optOutResponse": "string"
},
"testVideoUrl": "https://pozy.ai/media/example-1.jpg",
"additionalInformation": "string"
},
"carrierApprovals": [
{
"approvalId": "66666666666666661f2e3d4c",
"scope": "carrier",
"status": "PENDING",
"carrier": "string",
"approvedAt": "2026-10-02T09:00:00.000Z",
"rejectedReason": "string"
}
],
"testDevices": [
{
"testDeviceId": "653426651346b544a97028d1",
"phoneNumber": "+14155550123",
"inviteStatus": "PENDING"
}
],
"smsFallbackFrom": "string",
"reviewNote": "string",
"declineReason": "string",
"requestedAt": "2026-10-02T09:00:00.000Z",
"submittedAt": "2026-10-02T09:00:00.000Z",
"liveAt": "2026-10-02T09:00:00.000Z",
"createdAt": "2026-10-02T09:00:00.000Z"
}
}Errors
Errors use one shape: { error, type, code, param?, details? }. The ones you are most likely to see here:
| 400 | invalid_request_error | A parameter or body field is missing or invalid. param names it. |
| 401 | authentication_error | The API key is missing, revoked or expired. |
| 403 | permission_error | The key is read-only, scoped to other profiles, or has this resource group disabled. |
| 404 | not_found | Nothing with that id exists in your workspace. |
| 429 | rate_limit_error | Too many requests this minute. Wait for Retry-After seconds. |
Every code is listed in Errors.