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
| Parameter | Required | Description | Validation 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
| Field | Type | Description |
|---|---|---|
Success | Boolean | Indicates whether the request was processed successfully |
ResponseCode | Integer | Membership validity status: 0 = no valid record, 1 = expired or non-member, 2 = fully valid |
Message | String | A human-readable description of the validation result |
MembershipType | String | Agent 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. |
FirstName | String | Agent's first name (valid and expired membership responses) |
LastName | String | Agent's last name (valid and expired membership responses) |
PersonalID | String | Agent's personal ID (mirrors the value sent in the request) |
DuesPaidThru | String or null | Date through which dues are paid (YYYY-MM-DD). null when the record has no dues date — treated as expired. |
MemberTypeID | String | Internal CLIA member type identifier; included in all responses where a record is found |
Response Codes
| Code | Description |
|---|---|
0 | No valid record found (includes last name mismatch) |
1 | Record found but with limitations (expired dues, missing dues date, or not a Travel-Trade member) |
2 | Valid, 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
- A valid membership requires an active Travel-Trade member record with dues paid through a future date.
- “Dues are expired” is returned when the dues date is in the past, when no dues date exists on the record (
DuesPaidThruisnull), or when the record carries CLIA's expired Travel-Trade member type. MemberTypeIDvalues are internal CLIA member type identifiers.- Last name matching is case-insensitive. First name is required but not used for matching.
- All date fields follow ISO 8601 format (
YYYY-MM-DD).