Skip to content
POST/{organizationId}/{mandateId}/crm/contacts/listContactsCelebrations

List contacts celebrations

Returns a list of contacts for the mandate that are celebrating events like birthdays, anniversaries, leaving or joining the membership

Required permissions:

  • mandate.read

Permissions depending on contact type:

  • contact:member

  • contact:address

  • contact:customer

  • contact:sponsor

  • contact:contributor

  • contact:employee

  • contact:supplier

Path Parameters

organizationIdstringrequired
mandateIdstringrequired

Request Body required

Content-Type: application/json

limitintegeroptional

Default: 50

minimum: 0

maximum: 100

offsetintegeroptional

Default: 0

minimum: 0

maximum: 9007199254740991

returnCountbooleanoptional

Default: false

searchTermstringoptional

minItems: 1

minItems: 1

durationintegeroptional

minimum: 1

maximum: 9007199254740991

fromDatedate-timeoptional
toDatedate-timeoptional
baseDatedate-timeoptional

Authentication: X-API-Key

Request

POST/{organizationId}/{mandateId}/crm/contacts/listContactsCelebrations
curl --request POST 'https://cloud.campai.com/api/{organizationId}/{mandateId}/crm/contacts/listContactsCelebrations' \
  --header 'X-API-Key: YOUR_API_KEY' \
  --header 'Content-Type: application/json' \
  --data '{
  "celebrationTypes": [
    "birthday"
  ]
}'

Responses

This endpoint returns different response codes based on the request outcome.

200Successful response

Content-Type: application/json

countintegerrequired

minimum: 0

maximum: 9007199254740991

Response

200
{
  "count": 0,
  "contacts": [
    {
      "_id": "000000000000000000000001",
      "person": {
        "salutation": "string",
        "gender": "male",
        "title": "string",
        "firstName": "string",
        "lastName": "string",
        "institutionName": "string",
        "printInstitutionOnAddress": true,
        "birthdate": "string",
        "age": 0,
        "birthdateDayOfYear": 1
      },
      "name": "string",
      "types": [
        "member"
      ],
      "member": {
        "entryAt": "string",
        "exitAt": "string",
        "terminatedAt": "string",
        "terminationReason": {
          "code": "string",
          "message": "string"
        },
        "membershipDuration": 0,
        "entryAtDayOfYear": 1,
        "exitAtDayOfYear": 1
      },
      "image": {
        "resource": "string"
      },
      "user": {
        "token": "",
        "claimedAt": "2026-06-15T22:30:00Z",
        "actor": {
          "name": "string",
          "type": "user",
          "userId": "string",
          "image": {
            "resource": "string"
          }
        }
      },
      "celebrationType": "birthday"
    }
  ]
}

400Invalid input data

Content-Type: application/json

The error information

messagestringrequired

The error message

codestringrequired

The error code

An array of issues that were responsible for the error

Response

400
{
  "code": "BAD_REQUEST",
  "message": "Invalid input data",
  "issues": []
}

401Authorization not provided

Content-Type: application/json

The error information

messagestringrequired

The error message

codestringrequired

The error code

An array of issues that were responsible for the error

Response

401
{
  "code": "UNAUTHORIZED",
  "message": "Authorization not provided",
  "issues": []
}

403Insufficient access

Content-Type: application/json

The error information

messagestringrequired

The error message

codestringrequired

The error code

An array of issues that were responsible for the error

Response

403
{
  "code": "FORBIDDEN",
  "message": "Insufficient access",
  "issues": []
}

500Internal server error

Content-Type: application/json

The error information

messagestringrequired

The error message

codestringrequired

The error code

An array of issues that were responsible for the error

Response

500
{
  "code": "INTERNAL_SERVER_ERROR",
  "message": "Internal server error",
  "issues": []
}