Member Validation API Documentation v2.0.5
GET /agent-validate

Full Agent Validation — Validates membership status for a travel agent.

This is the dedicated alternative to GET /validate?membertype=agent and does not require a membertype parameter.

Base URL https://api-membervalidation.cruising.org

Parameters

ParameterRequiredDescriptionValidation Rules
personalID Required The agent's personal ID Max 10 digits, numbers only
firstName Required The agent's first name (collected but not used for record matching) Cannot be empty
lastName Required The agent's last name Cannot be empty; must match the record (case-insensitive)

Response Fields

FieldTypeDescription
SuccessBooleanIndicates whether the request was processed successfully
ResponseCodeIntegerMembership validity status: 0 = no valid record, 1 = expired or non-member, 2 = fully valid
MessageStringA human-readable description of the validation result
MembershipTypeStringAgent when a Travel-Trade member record is found (valid or expired); Non-Member when the record is not a Travel-Trade member or no record is found. See Response Conventions.
FirstNameStringAgent's first name (valid and expired membership responses)
LastNameStringAgent's last name (valid and expired membership responses)
PersonalIDStringAgent's personal ID (mirrors the value sent in the request)
DuesPaidThruString or nullDate through which dues are paid (YYYY-MM-DD). null when the record has no dues date — treated as expired.
MemberTypeIDStringInternal CLIA member type identifier; included in all responses where a record is found

Response Codes

CodeDescription
0No valid record found (includes last name mismatch)
1Record found but with limitations (expired dues, missing dues date, or not a Travel-Trade member)
2Valid, active membership

Example Request and Responses

Request

HTTP Request
GET /agent-validate?personalID=00002595&firstName=Jane&lastName=Doe
Headers:
  x-api-key: your-api-key

Valid Membership

200 OK — ResponseCode 2
{
  "Success": true,
  "ResponseCode": 2,
  "Message": "Valid membership",
  "FirstName": "Jane",
  "LastName": "Doe",
  "PersonalID": "00002595",
  "DuesPaidThru": "2026-12-31",
  "MembershipType": "Agent",
  "MemberTypeID": "5"
}

Expired Dues

200 OK — ResponseCode 1
{
  "Success": true,
  "ResponseCode": 1,
  "Message": "Dues are expired",
  "FirstName": "Jane",
  "LastName": "Doe",
  "PersonalID": "00002595",
  "DuesPaidThru": "2024-12-31",
  "MembershipType": "Agent",
  "MemberTypeID": "5"
}

Expired — No Dues Date on Record

A Travel-Trade member with no dues date on record (for example, an imported record) is treated as expired and DuesPaidThru is null.

200 OK — ResponseCode 1
{
  "Success": true,
  "ResponseCode": 1,
  "Message": "Dues are expired",
  "FirstName": "Jane",
  "LastName": "Doe",
  "PersonalID": "00002595",
  "DuesPaidThru": null,
  "MembershipType": "Agent",
  "MemberTypeID": "5"
}

Expired — Expired Travel-Trade Member Type

The record carries CLIA's expired Travel-Trade member type; the membership is expired regardless of dues date. The response carries the same full payload as other member outcomes.

200 OK — ResponseCode 1
{
  "Success": true,
  "ResponseCode": 1,
  "Message": "Dues are expired",
  "FirstName": "Jane",
  "LastName": "Doe",
  "PersonalID": "00002595",
  "DuesPaidThru": "2025-12-31",
  "MembershipType": "Agent",
  "MemberTypeID": "53"
}

Not a Travel-Trade Member

200 OK — ResponseCode 1
{
  "Success": true,
  "ResponseCode": 1,
  "Message": "Agent/Individual is not a Travel-Trade Member.",
  "PersonalID": "00002595",
  "MembershipType": "Non-Member",
  "MemberTypeID": "10"
}

Error Responses

Authentication Error

401 Unauthorized
{
  "Success": false,
  "Message": "Invalid or missing API Key"
}

Missing or Invalid Parameters

400 Bad Request
{
  "Success": false,
  "Message": "personalID, firstName, and lastName are required."
}
400 Bad Request
{
  "Success": false,
  "Message": "personalID must be at most 10 digits and contain only numbers."
}

Not Found

404 Not Found
{
  "Success": false,
  "ResponseCode": 0,
  "Message": "No valid record found.",
  "MembershipType": "Non-Member"
}
404 Not Found — Name Mismatch
{
  "Success": false,
  "ResponseCode": 0,
  "Message": "No valid record found - Name Lookup Incorrect.",
  "MembershipType": "Agent"
}

Quota Limit Reached

429 Too Many Requests
{
  "Success": false,
  "Message": "Quota limit reached"
}

Server Error

Error details are captured in CLIA's server-side logs and are not exposed in the response.

500 Internal Server Error
{
  "Success": false,
  "Message": "An error occurred while processing the request.",
  "MembershipType": "Agent"
}

Notes