The membership type is determined by the required membertype parameter. This endpoint is intended for integrations that can only be configured with a single API URL; responses are identical to the dedicated endpoints.
Base URL
https://api-membervalidation.cruising.org
Parameters
The API key is supplied via the x-api-key request header — see Authentication.
Required for all requests
| Parameter | Description |
membertype | Membership type to validate: agent or agency |
Additional parameters — Agent (when membertype=agent)
| 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) |
Additional parameters — Agency (when membertype=agency)
| Parameter | Required | Description | Validation Rules |
agencyIndustryID |
Required |
The agency's industry ID |
Exactly 8 digits, numbers only |
Response Fields
Common 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 or Agency 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. |
Agent-Specific Fields
| Field | Type | Description |
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 |
Agency-Specific Fields
| Field | Type | Description |
Name | String | Agency name |
CLIA_CompanyID | String | CLIA's internal company ID |
IndustryID | String | Agency's industry ID (mirrors the value sent in the request) |
City | String | Agency's city (member responses only) |
State | String | Agency's state (member responses only) |
ZipCode | String | Agency's postal code (member responses only) |
DuesPaidThru | String or null | Date through which dues are paid (YYYY-MM-DD). null when the record has no dues date — treated as expired. Member responses only. |
MemberTypeID | String | Internal CLIA member type identifier. Contact CLIA if your integration needs a key to these values. Member responses only. |
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 Requests and Responses
Agent Validation
Request
GET /validate?membertype=agent&personalID=00002595&firstName=Jane&lastName=Doe
Headers:
x-api-key: your-api-key
Valid Membership
{
"Success": true,
"ResponseCode": 2,
"Message": "Valid membership",
"FirstName": "Jane",
"LastName": "Doe",
"PersonalID": "00002595",
"DuesPaidThru": "2026-12-31",
"MembershipType": "Agent",
"MemberTypeID": "5"
}
Expired Dues
{
"Success": true,
"ResponseCode": 1,
"Message": "Dues are expired",
"FirstName": "Jane",
"LastName": "Doe",
"PersonalID": "00002595",
"DuesPaidThru": "2024-12-31",
"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.
{
"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
{
"Success": true,
"ResponseCode": 1,
"Message": "Agent/Individual is not a Travel-Trade Member.",
"PersonalID": "00002595",
"MembershipType": "Non-Member",
"MemberTypeID": "10"
}
Agency Validation
Request
GET /validate?membertype=agency&agencyIndustryID=12345678
Headers:
x-api-key: your-api-key
Valid Membership
{
"Success": true,
"ResponseCode": 2,
"Message": "Valid membership",
"MembershipType": "Agency",
"Name": "Global Travel Agency",
"CLIA_CompanyID": "98765",
"IndustryID": "12345678",
"City": "Miami",
"State": "FL",
"ZipCode": "33101",
"DuesPaidThru": "2026-12-31",
"MemberTypeID": "17"
}
Expired Dues
{
"Success": true,
"ResponseCode": 1,
"Message": "Dues are expired",
"MembershipType": "Agency",
"Name": "Global Travel Agency",
"CLIA_CompanyID": "98765",
"IndustryID": "12345678",
"City": "Miami",
"State": "FL",
"ZipCode": "33101",
"DuesPaidThru": "2024-12-31",
"MemberTypeID": "53"
}
Not a Travel-Trade Member
Address and dues fields are not included for non-member records.
{
"Success": true,
"ResponseCode": 1,
"Message": "Agency/Company is not a Travel-Trade Member",
"MembershipType": "Non-Member",
"Name": "Global Travel Agency",
"CLIA_CompanyID": "98765",
"IndustryID": "12345678"
}
Error Responses
Authentication Error
{
"Success": false,
"Message": "Invalid or missing API Key"
}
Missing or Invalid Parameters
{
"Success": false,
"Message": "membertype parameter is required and must be either 'agent' or 'agency'."
}
{
"Success": false,
"Message": "personalID must be at most 10 digits and contain only numbers."
}
Not Found
{
"Success": false,
"ResponseCode": 0,
"Message": "No valid record found.",
"MembershipType": "Non-Member"
}
{
"Success": false,
"ResponseCode": 0,
"Message": "No valid record found - Name Lookup Incorrect.",
"MembershipType": "Agent"
}
Quota Limit Reached
{
"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. MembershipType reflects the entity type being validated (Agent or Agency).
{
"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 (
DuesPaidThru is null), or when the record carries CLIA's expired Travel-Trade member type.
MemberTypeID values are internal CLIA member type identifiers. Contact CLIA if your integration needs a key to these values.
- Last name matching for agent validation is case-insensitive. First name is required but not used for matching.
- All date fields follow ISO 8601 format (
YYYY-MM-DD).