Reten Docs

List Activities

Query task-type activities visible to your integration.

GET /api/integration/activities/tasks

Returns a paginated list of task-type activities visible to your integration's API key.

Authentication: Required — permission VIEW_ACTIVITIES

Required header

HeaderValue
x-api-keyYOUR_API_KEY

Query parameters

ParameterTypeRequiredDescription
pagenumberNoPage number (default: 1)
per_pagenumberNoResults per page (default: 20, max: 100)
statusstringNoFilter by activity status (PENDING, IN_PROGRESS, COMPLETED, CANCELLED)
result_statusstringNoFilter by result status (EFFECTIVE, NOT_EFFECTIVE, PENDING)
channelstringNoFilter by channel (SALESMAN, CALLCENTER, etc.)
external_commerce_idstringNoFilter by commerce external ID
external_operator_idstringNoFilter by operator external ID
scheduled_fromstringNoMinimum scheduled date (ISO 8601)
scheduled_tostringNoMaximum scheduled date (ISO 8601)

Example

curl -X GET "BASE_URL/api/integration/activities/tasks?page=1&per_page=10&status=PENDING" \
  -H "x-api-key: YOUR_API_KEY"
const params = new URLSearchParams({
  page: "1",
  per_page: "10",
  status: "PENDING",
});

const response = await fetch(
  `${BASE_URL}/api/integration/activities/tasks?${params}`,
  {
    headers: {
      "x-api-key": "YOUR_API_KEY",
    },
  }
);

const data = await response.json();
import requests

response = requests.get(
    f"{BASE_URL}/api/integration/activities/tasks",
    headers={
        "x-api-key": "YOUR_API_KEY",
    },
    params={
        "page": 1,
        "per_page": 10,
        "status": "PENDING",
    },
)

data = response.json()

Response 200 OK

{
  "data": [
    {
      "id": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
      "activityOrigin": "ACTIVITY",
      "type": "TASK",
      "status": "PENDING",
      "channel": "SALESMAN",
      "scheduledAt": "2026-04-15T09:00:00.000Z",
      "occurredAt": null,
      "createdAt": "2026-04-10T14:30:00.000Z",
      "lifecycleStatus": "SCHEDULED",
      "lifecycleStatusLabel": "Programada",
      "lifecycleStatusDetail": null,
      "canForceRetryDispatch": false,
      "commerceExternalId": "COM-001",
      "commerceName": "Farmacia Central",
      "reason": {
        "code": "CHURN_RISK",
        "label": "Riesgo de fuga"
      },
      "userStatus": null,
      "commerceAssignment": {
        "commerceExternalId": "COM-001",
        "assignmentReason": "Asignación por ruta",
        "commerce": {
          "externalId": "COM-001",
          "name": "Farmacia Central"
        }
      },
      "activityDetails": {
        "type": "TASK",
        "assignedRouteCode": "RUTA-NORTE-01",
        "assignedOperatorExternalId": "OP-042",
        "assignedRoute": {
          "code": "RUTA-NORTE-01",
          "name": "Ruta Norte"
        },
        "assignedOperator": {
          "externalId": "OP-042",
          "name": "Carlos Pérez",
          "type": "SALESMAN"
        }
      },
      "activityResult": null
    }
  ],
  "meta": {
    "page": 1,
    "per_page": 10,
    "total": 47,
    "totalPages": 5
  }
}

Activity fields

FieldTypeDescription
idstringUnique activity identifier
activityOrigin"ACTIVITY" | "STANDALONE"Activity origin
typestring | nullActivity type (e.g., "TASK")
statusstring | nullCurrent status (PENDING, IN_PROGRESS, COMPLETED, CANCELLED)
channelstring | nullActivity channel (SALESMAN, CALLCENTER, etc.)
scheduledAtstring | nullScheduled date (ISO 8601)
occurredAtstring | nullDate when the activity was handled (ISO 8601)
createdAtstring | nullCreation date (ISO 8601)
lifecycleStatusstring | nullLifecycle status for display purposes
lifecycleStatusLabelstring | nullHuman-readable lifecycle status label
lifecycleStatusDetailstring | nullAdditional status detail
canForceRetryDispatchbooleanIndicates whether a re-dispatch can be forced
commerceExternalIdstringExternal ID of the associated commerce
commerceNamestringCommerce name
reasonobject | nullActivity reason (code, label)
userStatusobject | nullCustom user status (code, label)
commerceAssignmentobject | nullCommerce assignment information
activityDetailsobject | nullType-specific activity details
activityResultobject | nullActivity result (if exists)

activityDetails fields (TASK type)

FieldTypeDescription
type"TASK"Type discriminator
assignedRouteCodestring | nullAssigned route code
assignedOperatorExternalIdstring | nullAssigned operator external ID
assignedRouteobject | nullAssigned route (code, name)
assignedOperatorobject | nullAssigned operator (externalId, name, type)

activityResult fields

FieldTypeDescription
idstringResult identifier
resultStatusstringResult status (EFFECTIVE, NOT_EFFECTIVE, PENDING)
sourcestringResult source
originstringOrigin channel
channelstring | nullResult channel
occurredAtstringDate when it occurred (ISO 8601)
createdAtstringCreation date (ISO 8601)
resultDetailsobject | nullTask result details

Errors

StatusDescription
401API key missing or invalid
403The key does not have the VIEW_ACTIVITIES permission