PATCH /agents/{agentId}. Use it for dashboard-equivalent changes to profile fields, settings, and other editable agent data. Focused endpoints such as settings and credentials are convenience wrappers over the same agent ownership and persistence model.https://api.dialgood.com/partner/v1403.api_token header.404.agentName, settings, metadata, and phoneNumbers.metadata.commit_message or metadata.commitMessage when you want a specific version history label.PATCH /agents/{agentId}, such as settings, should be sent as the complete intended object for that field.{
"error": "agent not found"
}| Status | Meaning |
|---|---|
200 | Request succeeded. |
201 | Resource was created. |
400 | Request body is malformed or missing required fields. |
401 | API key is missing or invalid. |
403 | Partner API access is not enabled for this user. |
404 | The requested agent or version was not found for this user. |
500 | Unexpected server error. |
PATCH /agents/{agentId} or the relevant focused wrapper.owner: false, their rights array, and sharing metadata. Owned agents include owner: true.GET /agents/{agentId}, settings reads, version reads, and call-log reads. Write routes require either ownership or the shared agents right. Credential reads also require agent-control access because they return decrypted values. Shared agents cannot be deleted through the Partner API.| Parameter | Type | Description |
|---|---|---|
limit | number | Maximum number of agents to return. Defaults to 25. |
skip | number | Number of agents to skip. Defaults to 0. |
{
"agents": [
{
"agentId": "agent_123",
"agentName": "Support Agent",
"userId": "dialgood_user_123",
"owner": true,
"settings": {},
"phoneNumbers": [],
"metadata": {},
"updated_at": "2026-05-24T00:00:00.000Z"
},
{
"agentId": "agent_456",
"agentName": "Shared Sales Agent",
"userId": "owner_user_456",
"owner": false,
"rights": ["view"],
"settings": {},
"phoneNumbers": [],
"metadata": {
"sharedByEmail": "owner@example.com",
"sharedByName": "Owner User",
"sharedAt": "2026-05-24T00:00:00.000Z"
},
"updated_at": "2026-05-24T00:00:00.000Z"
}
],
"totalCount": 2,
"limit": 25,
"skip": 0,
"hasMore": false
}{
"agentName": "Support Agent",
"settings": {
"language": "en"
},
"phoneNumbers": [],
"metadata": {
"commit_message": "Initial partner setup"
}
}{
"agent": {
"agentId": "agent_123",
"agentName": "Support Agent",
"userId": "dialgood_user_123",
"settings": {},
"phoneNumbers": []
}
}{
"agent": {
"agentId": "agent_123",
"agentName": "Support Agent",
"userId": "dialgood_user_123",
"settings": {},
"phoneNumbers": []
}
}agentId, records a new agent version, and preserves the source agent's configuration. Use request body fields to override editable top-level fields such as agentName or metadata.agents right. Protected fields such as agentId, userId, owner, rights, and timestamps are ignored.{
"agentName": "Support Agent Copy",
"metadata": {
"commit_message": "Partner cloned support agent"
}
}{
"agent": {
"agentId": "agent_789",
"agentName": "Support Agent Copy",
"userId": "dialgood_user_123",
"metadata": {
"clonedFromAgentId": "agent_123"
}
}
}settings, send the complete intended value for that object. Do not include credential values in this request; use the credential endpoints instead.{
"agentName": "Updated Support Agent",
"settings": {
"language": "en",
"welcomeMessage": "How can I help?"
},
"phoneNumbers": [
"+15551234567"
],
"metadata": {
"commit_message": "Partner dashboard update"
}
}{
"agent": {
"agentId": "agent_123",
"agentName": "Updated Support Agent",
"userId": "dialgood_user_123",
"settings": {
"language": "en",
"welcomeMessage": "How can I help?"
},
"phoneNumbers": [
"+15551234567"
]
}
}_id
__v
id
agentId
userId
created_at
updated_atGET /agents/{agentId}/versions to list version history and GET /agents/{agentId}/versions/{versionId} to inspect a specific version.{
"status": true
}PATCH /agents/{agentId} with the intended agent fields.{
"settings": {
"language": "en"
}
}{
"settings": {
"language": "en",
"welcomeMessage": "How can I help?"
}
}{
"language": "en",
"welcomeMessage": "How can I help?"
}{
"settings": {
"language": "en",
"welcomeMessage": "How can I help?"
}
}metadata.commit_message or metadata.commitMessage alongside settings when you want to label the resulting version.{
"credentials": [
{
"key": "SERVICE_API_KEY",
"value": "decrypted-secret-value"
}
]
}{
"credentials": [
{
"key": "SERVICE_API_KEY",
"value": "new-secret-value"
}
]
}[
{
"key": "SERVICE_API_KEY",
"value": "new-secret-value"
}
]{
"status": true
}metadata.commit_message or metadata.commitMessage alongside credentials when you want to label the resulting version.| Parameter | Type | Description |
|---|---|---|
from | number | Start timestamp for the call-log range. |
to | number | End timestamp for the call-log range. |
page | number | Page number. Defaults to 1. |
limit | number | Records per page. Defaults to 10. |
tz | string | Timezone used by the CDR lookup. Defaults to Australia/Melbourne. |
fromnumber | string | Filter by caller number. |
tonumber | string | Filter by destination number. |
status | string | Filter by call status. |
direction | string | Filter by call direction. |
campaign | string | Filter by campaign ID. |
conversationid | string | Filter by conversation ID. |
hidewebcalls | boolean | Set to true to hide web calls. |
{
"data": [
{
"botId": "agent_123",
"conversationId": "conversation_123",
"contactId": "contact_123",
"campaignId": "campaign_123",
"created_at": "2026-05-24T00:00:00.000Z",
"data": {
"from": "+15551234567",
"to": "+15557654321",
"direction": "outbound",
"callStatus": "completed",
"callDuration": 3
}
}
],
"totalPages": 1,
"totalRecords": 1,
"currentPage": 1
}updates payload for compactness; fetch a specific version when you need the stored update details.| Parameter | Type | Description |
|---|---|---|
limit | number | Maximum number of versions to return. Defaults to 25. |
skip | number | Number of versions to skip. Defaults to 0. |
{
"versions": [
{
"version_id": "version_123",
"version_number": 2,
"commit_message": "Partner dashboard update",
"agent_id": "agent_123",
"metadata": {
"user": "Partner User",
"userId": "dialgood_user_123",
"timestamp": 1779560000000
}
}
],
"totalCount": 2,
"limit": 25,
"skip": 0,
"hasMore": false
}{
"version": {
"version_id": "version_123",
"version_number": 2,
"commit_message": "Partner dashboard update",
"agent_id": "agent_123",
"updates": {},
"metadata": {
"user": "Partner User",
"userId": "dialgood_user_123",
"timestamp": 1779560000000
}
}
}GET /agents to map Dialgood agentId values into the partner dashboard.POST /agents if needed.PATCH /agents/{agentId} for dashboard-style edits and include metadata.commit_message for readable version history.GET /agents/{agentId}/call-logs to show call activity for the agent.GET /agents/{agentId}/versions to confirm that an amendment was recorded.GET /agents/{agentId} to confirm the final agent state.api_token values.404 as either a missing agent or an agent that belongs to another Dialgood user.Standard API: https://api.dialgood.com/api/v1
Partner API: https://api.dialgood.com/partner/v1/agents/{agentId}/post-call-webhook201; an update returns 200.{
"postCallWebhook": {
"url": "https://partner.example/post-call",
"hasSecret": true,
"secret": "whsec_..."
}
}{
"url": "https://partner.example/post-call",
"rotateSecret": true
}{
"postCallWebhook": {
"url": "https://partner.example/post-call",
"hasSecret": true
}
}postCallWebhook is null. The secret is never returned by this endpoint.{ "status": true }POST after a call completes:{
"id": "call_123",
"type": "call.completed",
"userId": "user_123",
"agentId": "agent_123",
"summary": "The customer requested a callback.",
"status": "completed"
}X-Dialgood-Event-Id: call_123
X-Dialgood-Timestamp: 1778140800
X-Dialgood-Signature: sha256=<hex digest>X-Dialgood-Signature as the hex HMAC-SHA256 of {timestamp}.{rawBody} using the registration secret. Compare signatures in constant time and reject stale timestamps. Deduplicate deliveries by id.408, 429, and 5xx responses are retried. Other 4xx responses are not retried. Return any 2xx response promptly after accepting the event.