The USA Swimming API Program allows trusted vendors to securely integrate with the SWIMS platform through a tiered system supporting everything from basic team management to real-time member verification. Built on strict security, legal compliance, and technical validation, the program ensures every integration meets USA Swimming’s standards for data protection and accuracy.
Access is organized into three tiers, each aligning vendor capabilities with appropriate data permissions, testing, and compliance oversight. This progressive model enables vendors to scale responsibly, advancing only after proving technical competency and operational readiness. Each tier adds privileges to the previous level, ranging from read-only functionality to advanced, fee-based services for real-time verification.
Provides access to GET endpoints (read-only) e.g., club rosters, membership lookups.
Informal or limited integrations. Display of approved USA Swimming data.
No Fee
Provides access to POST endpoints (write operations). Requires successful proof-of-competency testing in a sandbox environment.
Designed for vendors with established compliance needing basic data write capability. To gain access to Tier 2, the vendor must collect and pass legal acknowledgement signatures from the member to USA Swimming
No Fee
Provides access to the Member Verification APIs for real-time validation of membership and eligibility and access to Times Verification APIs for real-time validation of entry times and performances
Real time validation of membership and eligibility. Vendors handling meet entries.
$25K Annual Fee
The USA Swimming API Access Program provides structured, secure access to club rosters, member verification, registration services, NCAA integrations, event logs, and official data. All endpoints are organized by access tier and designed for approved technology partners integrating with SWIMS.
Jump to: Tier 1 – Team Management · Tier 2 – Premium · Tier 3 – Times & Verification · Tier 4 – NCAA · Member & Club Events · API User Guide · Glossary
Read-only and foundational access for core team management: clubs, rosters, and vendor event logs.
Retrieves the list of clubs associated with the authenticated vendor.
| HTTP Method | GET |
| Route | /swims/SwimsThirdParty/VendorClubs/vendor |
| Access Tier | Tier 1 |
| App Role Security | Third Party Base |
| Stored Procedure | thirdparty.GetClubsForVendor |
| Parameter | Type | Required? | Description |
|---|---|---|---|
| vendorId | int | Yes | Retrieved from user token. |
| clubId | string? | No | Optional filter. |
[
{
"lscCode": "TD",
"clubName": "Test Team",
"clubCode": "TDD",
"clubId": "7BA19941A1254489BD6F4B692A4FD0D1"
},
{
"lscCode": "TD",
"clubName": "Test Team 2",
"clubCode": "TDD2",
"clubId": "7BA19941A1254489BD6F4B692A4FD0D2"
}
]
Returns the full roster for the specified club, including member demographic data, contact information, and all associated registrations.
| HTTP Method | POST |
| Route | /swims/SwimsThirdParty/MemberDetails/club/ |
| Access Tier | Tier 1 |
| App Role Security | Third Party Base |
| Stored Procedure | thirdparty.GetMemberDetailsByClubId |
| Parameter | Type | Required? | Description |
|---|---|---|---|
| vendorId | int | Yes | Retrieved from user token. |
| clubId | string | Yes | Club identifier. |
| memberId | List<string> | No | Optional member IDs. |
| lastModified | DateTime? | No | Filter by last modification date. |
[
{
"memberId": "11111111111111",
"oldUsasId": null,
"firstName": "Test",
"preferredName": "",
"middleName": "",
"lastName": "Test",
"suffix": "",
"maidenName": "",
"isUsCitizen": true,
"birthDate": "2001-01-01",
"competitionCategory": "Female",
"modifiedDatetime": "2025-01-01",
"contactInformation": {
"contactFirstName": "Test",
"contactLastName": "Test",
"contactEmail": "test@email.com",
"contactPhone": "11111111111"
},
"registrations": [
{
"registrationId": 111111111111,
"registrationDate": "2022-09-21",
"expirationDate": "2026-12-31",
"registrationTypeId": 1,
"registrationType": "Premium Athlete",
"transactionType": "New",
"lscCode": "TD",
"clubCode": "TDD",
"usasFee": 0.0,
"lscFee": 12.0,
"isRenewal": false,
"isAttached": true,
"attachedDate": "2022-09-21",
"memberGoodStandingExpirationDate": "2026-12-31"
},
{
"registrationId": 10301283,
"registrationDate": "2023-09-15",
"expirationDate": "2026-12-31",
"registrationTypeId": 1,
"registrationType": "Premium Athlete",
"transactionType": "Renew",
"lscCode": "TD",
"clubCode": "TDD",
"usasFee": 0.0,
"lscFee": 12.0,
"isRenewal": true,
"isAttached": true,
"attachedDate": "2022-09-21",
"memberGoodStandingExpirationDate": "2026-12-31"
}
]
}
]
Returns the Online Member Registration (OMR) link for the specified club.
| HTTP Method | GET |
| Route | /swims/SwimsThirdParty/RegistrationLink/club/ |
| Access Tier | Tier 1 |
| App Role Security | Third Party Base |
| Stored Procedure | thirdparty.GetOMRLinkByOUId |
| Parameter | Type | Required? | Description |
|---|---|---|---|
| vendorId | int | Yes | Retrieved from user token. |
| clubId | string | Yes | Club identifier. |
Returns the OMR URL as a string.
"https://omr-ui-stg.swimsmember.org/omr/welcome/11111111111111"Retrieves the list of clubs that have Opted-In for Bulk Renewal.
| HTTP Method | GET |
| Route | swims/SwimsThirdParty/ClubBulkRenewalOptIn/club/ |
| Access Tier | Tier 1 |
| App Role Security | Third Party Base |
| Stored Procedure | swims.GetClubBulkRenewalOptInByOUId |
| Parameter | Type | Required? | Description |
|---|---|---|---|
| vendorId | int | Yes | Retrieved from user token. |
| clubId | string? | Yes | Retrieved from user token. |
[
{
"athleteOfferingsOptIn": "false",
"nonAthleteOfferingsOptIn": "false",
},
]
Write-enabled and higher-value team management operations, including offerings and bulk registrations.
Returns third-party event logs for a vendor within a specified date/time range, optionally filtered by club.
| HTTP Method | GET |
| Route | /swims/SwimsThirdParty/EventsWithinDateTime/from/ |
| Access Tier | Tier 1 |
| App Role Security | Third Party Base |
| Stored Procedure | swims.GetVendorEventLogsByDatetimeRange |
| Parameter | Type | Required? | Description |
|---|---|---|---|
| vendorId | int | Yes | Retrieved from user token. |
| fromDateTime | DateTime | Yes | Start of the event time window. |
| toDateTime | DateTime? | No | End of the event time window. If null, defaults to now. |
| clubId | string? | No | Optional club filter. |
[
{
"eventSequence": 1,
"eventTypeId": 7,
"eventType": "Member Details Updated",
"clubId": "7BA19941A1254489BD6F4B692A4FD0D2",
"modifiedDatetime": "2025-10-01",
"eventData": {
"memberIds": [
"11111111111111"
]
}
}
]
Returns the OMR offerings for a given club, optionally filtered by season year.
| HTTP Method | GET |
| Route | /swims/SwimsThirdParty/Offering/club/ |
| App Role Security | Third Party Premium |
| Stored Procedure | thirdparty.GetClubOfferingsByOUID |
| Parameter | Type | Required? | Description |
|---|---|---|---|
| vendorId | int | Yes | Retrieved from user token. |
| clubId | string | Yes | Club identifier. |
| seasonYear | int? | No | Optional season year filter. |
[
{
"offeringId": 1,
"offeringTypeId": 10,
"offeringName": "Premium Athlete",
"offeringDescription": "Full-season athlete membership",
"ageStart": 13,
"ageEnd": 18
}
]
Submits club member registrations from a third-party vendor to SWIMS, including validation and registration request creation.
| HTTP Method | POST |
| Route | /swims/SwimsThirdParty/memberRegistration/club/ |
| App Role Security | Third Party Premium |
| Stored Procedures / Functions | swims.GetUsasReportPeriodForSeasonYear AddClubMemberRegistrationByOUId (C# function) thirdparty.UpdateThirdPartyRegistrationOfferingIds thirdparty.CheckThirdPartyMembers |
| Parameter | Type | Required? | Description |
|---|---|---|---|
| vendorId | int | Yes | Retrieved from user token. |
| clubId | string | Yes | Club identifier. |
| clubMemberRegistration | List<VendorClubMemberRegistration> | Yes | List of member registrations to submit. |
| seasonYear | int? | No | Optional season year to apply. |
Represents the third-party club registration request.
{
"status": "Pending",
"clubRegistrationRequestId": 12345,
"registrationError": [
{
"errorDescription": "Invalid membership for age.",
"members": [
{
"memberId": "11111111111111",
"firstName": "Test",
"lastName": "Member",
"errorValue": "Membership PREMIUM_18U not valid for age 10."
}
]
}
]
}
Returns the status of a previously submitted third-party registration request.
| HTTP Method | GET |
| Route | /swims/SwimsThirdParty/memberRegistration/status/ |
| App Role Security | Third Party Premium |
| Stored Procedure | thirdparty.GetThirdPartyRegistrationRequestStatusForId |
| Parameter | Type | Required? | Description |
|---|---|---|---|
| vendorId | int | Yes | Retrieved from user token. |
| clubRegistrationRequestId | int | Yes | Registration request identifier. |
Status values:
{
"status": "ClubRegistrationRequestId Processed"
}
These events are written to the vendor event log and can be retrieved using
Get Third Party Events Within Timeframe. Use them to keep your roster, club data,
and local state in sync with SWIMS.
Member Events
Generated when a member registers or renews in SWIMS via Online Member Registration (OMR).
{
"eventSequence": 1234,
"eventType": "Member Registration Complete",
"clubId": "EFD6F74613444017B0DB1884AADBC117",
"modifiedDatetime": "2022-09-13T22:52:28.882Z",
"eventData": {
"vendorId": "DB1884AADBC117",
"memberId": "string"
}
}
Recommended vendor workflow
GET /swims/getMemberDetails/{clubId}/?memberId={memberId}&lastModified={lastModified}.
Generated when a member’s core details or their membership (e.g., upgraded registration) are updated within SWIMS.
{
"eventSequence": 1234,
"eventType": "Member Updated",
"clubId": "EFD6F74613444017B0DB1884AADBC117",
"modifiedDatetime": "2022-09-13T22:52:28.882Z",
"eventData": {
"memberId": "string"
}
}
Recommended vendor workflow
GET /swims/getMemberDetails/{clubId}/?memberId={memberId}.
Generated when two Member IDs are merged within SWIMS (duplicate resolution). The event indicates old/new member and club relationships.
{
"eventSequence": 1234,
"eventType": "Member Merge",
"clubId": "1500B689DCAA42BD9484618C634DDEF0",
"modifiedDatetime": "2022-09-13T22:52:28.882Z",
"eventData": {
"oldClubId": "1500B689DCAA42BD9484618C634DDEF0",
"oldMemberId": "B71E543DBAB6BE",
"newClubId": "6C5D210FBE0549C3A9F269E07A411E95",
"newMemberId": "7F5564C5585A97"
}
}
Recommended vendor workflow
GET /swims/getMemberDetails/{clubId}/?memberId={newMemberId} for the destination member.
A special set of events generated when a member transfers from one club to another. In SWIMS, transfers are initiated from the Member Details page via the Initiate Transfer link.
The transfer process creates two events:
Vendors will only receive both events if both clubs are activated for that vendor.
{
"eventSequence": 12,
"eventTypeId": 4,
"eventType": "Member Transfered To Club",
"clubId": "1c68c4f5968e4bce96901b4f0d9d7206",
"modifiedDatetime": "2025-11-18T19:01:40.780",
"eventData": {
"memberIds": ["23BF9DF1EA804E"]
}
}
Recommended vendor workflow
GET /swims/getMemberDetails/{clubId}/?memberId={memberId} for each transfer event.
Generated when a member’s registration is cancelled in SWIMS.
{
"eventSequence": 11,
"eventTypeId": 6,
"eventType": "Member Cancels",
"clubId": "EFD6F74613444017B0DB1884AADBC117",
"modifiedDatetime": "2025-11-18T18:54:23.697",
"eventData": {
"memberIds": ["11111111111111"],
"vendorRecordId": ""
}
}
Recommended vendor workflow
memberIds array.
vendorRecordId, use it to reconcile with your original transaction or order record.
Club Events
Generated when a club selects and approves a vendor in SWIMS or removes that vendor. These events indicate changes in the vendor–club relationship.
{
"eventSequence": "002",
"eventType": "Club Activates Vendor",
"clubId": "EFD6F74613444017B0DB1884AADBC117",
"modifiedDatetime": "2022-09-13T22:52:28.882Z",
"eventData": {
"clubId": "string"
}
}
Recommended vendor workflow
clubId to link the event to the correct club record locally.
Generated when a club’s name or club code is updated within SWIMS.
{
"eventSequence": 8,
"eventTypeId": 11,
"eventType": "Club Details Updated",
"clubId": "EFD6F74613444017B0DB1884AADBC117",
"modifiedDatetime": "2025-11-18T16:52:58.883",
"eventData": {
"clubIds": ["b5f0946c7938404092d040e509333b80"]
}
}
Recommended vendor workflow
Get Clubs for Vendor or a club details endpoint).
Verification-focused endpoints for membership eligibility, compliance checks, and time standard validation.
Verifies a member's registration and eligibility status for a given club and LSC, optionally for a specified meet start date.
| HTTP Method | POST |
| Route | /swims/SwimsThirdParty/MemberVerification |
| App Role Security | Third Party Member Verification |
| Stored Procedure | thirdparty.GetMemberVerification |
| Parameter | Type | Required? | Description |
|---|---|---|---|
| vendorId | int | Yes | Retrieved from user token. |
| memberId | List<string> | Yes | Member IDs to verify. |
| lscCode | string | Yes | LSC code. |
| clubCode | string | Yes | Club code. |
| meetStartDate | DateTime? | No | Optional meet start date for eligibility checks. |
[
{
"memberId": "11111111111111",
"memberFound": true,
"memberHasActiveRegistrationToClub": true,
"memberHasActiveRegistrationToLSC": true,
"memberHasActiveRegistration": true,
"memberHasActiveAthleteRegistration": true,
"memberHasActiveFlexRegistration": false,
"memberHasActiveSeasonalRegistration": false,
"isAPTInGoodStanding": true,
"isMemberIneligible": false,
"isAthlete18YearsOrOlder": true
}
]
Verifies whether a member has a valid time for a given event within a qualifying date range.
| HTTP Method | GET |
| Route | /swims/SwimsThirdParty/TimeVerification |
| App Role Security | Third Party Time Verification |
| Stored Procedure | thirdparty.GetMemberVerification |
| Parameter | Type | Required? | Description |
|---|---|---|---|
| vendorId | int | Yes | Retrieved from user token. |
| memberId | string | Yes | Member ID. |
| qualifyingStartDate | DateTime | Yes | Start of qualifying period. |
| qualifyingEndDate | DateTime | Yes | End of qualifying period. |
| swimEvent | string | Yes | Event code. |
| swimTime | string | Yes | Time to verify (e.g., 00:52.34). |
{
"isTimeValid": true
}
Restricted endpoints supporting NCAA-specific integrations for teams and rosters.
Returns a list of NCAA teams available to the vendor.
| HTTP Method | GET |
| Route | /swims/SwimsThirdParty/NcaaTeams |
| App Role Security | Third Party NCAA |
| Stored Procedure | thirdparty.GetNcaaTeams |
| Parameter | Type | Required? | Description |
|---|---|---|---|
| vendorId | int | Yes | Retrieved from user token. |
[
{
"division": "Division I",
"conference": "SEC",
"collegeCode": "ABC",
"collegeName": "Example University",
"collegeId": "11111111-1111-1111-1111-111111111111"
}
]
Returns the NCAA team roster for the specified college.
| HTTP Method | GET |
| Route | /swims/SwimsThirdParty/NcaaMemberDetails/team/ |
| App Role Security | Third Party NCAA |
| Stored Procedure | thirdparty.GetNcaaPersonDetailsByOUId |
| Parameter | Type | Required? | Description |
|---|---|---|---|
| vendorId | int | Yes | Retrieved from user token. |
| collegeId | string | Yes | College identifier. |
[
{
"memberId": "11111111111111",
"lastName": "Doe",
"firstName": "Jane",
"preferredName": "Janey",
"birthDate": "2003-05-01",
"competitionGenderTypeCode": "F",
"eligibilityYear": "Sophomore"
}
]
Use Postman to validate your authentication, Thumbprint configuration, and request payloads before integrating these endpoints into your application. This workflow applies to all tiers (1–4) and National Team endpoints listed above.
Use the following Postman collections to test authentication, Thumbprint configuration, and request payloads for each access tier. Click a link to open or import the collection in Postman.
| Tier | Postman Collection |
|---|---|
| Team Management – Base Access | Open Team Management – Base Access collection |
| Team Management – Premium Access | Open Team Management – Premium Access collection |
| Times and Member Verification Access | Open Times and Member Verification collection |
| NCAA Access | Open NCAA Access collection |
Note: Access to each collection is controlled by your assigned API tier and roles. If you cannot see or use a collection, contact USA Swimming for assistance.
Key SWIMS data terms and event terminology used throughout this page. Use this glossary to align your data model and integration mapping with USA Swimming’s definitions.
API access is structured into three defined tiers that align each vendor’s technical capability with appropriate levels of data access, testing, and compliance oversight. This tiered model ensures that integrations scale responsibly, allowing vendors to progress only after demonstrating technical competency, adherence to data protection standards, and operational readiness.
Each tier grants a distinct set of permissions and responsibilities, from basic read-only functionality to advanced, fee-based services enabling real-time member verification and results submission. Each higher tier includes the privileges of the preceding level, ensuring a controlled and progressive path toward deeper system integration.
The USA Swimming API Access Program provides access to organizations and individuals who serve our members, clubs, coaches, and athletes. API Access is granted through an application and onboarding process.
Ready to Apply? Download the API Access Program Application ?
Need help?
For questions about onboarding, access tiers, or specific endpoints, contact Mitch Gold - mgold@usaswimming.org or submit a ticket through the USA Swimming Third-Party Vendor API portal.
Review our API Access Policy and Data Use Agreement
Submit an application detailing your use case, technical contact, and requested endpoints
Complete review and security checks by USA Swimming staff
Access granted with credentials and documentation if approved
⚠️ USA Swimming reserves the right to approve or deny access based on alignment with our mission, compliance with data governance standards, and technical security.