USA Swimming

API Program

About USA Swimming Tier Access Levels

The USA Swimming API Program allows secure integration 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 needs and 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.

Getting Started

Follow these steps to request access, complete onboarding, and begin validating USA Swimming API endpoints.

1

Apply for API Access

Submit an API access request and identify the requested access tier, use case, technical contact, and endpoints needed for your integration.

2

Complete Onboarding

Work with USA Swimming to complete credential setup, API role assignments, onboarding validation, and required documentation.

3

Test and Integrate

Use the Stage environment and Postman collections to validate authentication, request payloads, and endpoint responses before production use.

Authorization

The USA Swimming API uses OAuth client credentials flow for authentication. Vendors must obtain an access token from the USA Swimming identity platform and include the token in the Authorization header for all protected API requests.

Obtaining an Access Token

To obtain an access token, submit a POST request using your assigned username and password credentials.

Environment Token Endpoint
Stage POST https://stg-security-api.swimsmember.org/security/Identity/GetAccesTokenForUser
Production POST https://security-api.usaswimming.org/security/Identity/GetAccesTokenForUser

Payload Body Example

{
  "username": "test",
  "password": "1234"
}

Example Response

{
  "access_token": "eyJhbGciOiJSUzI1..."
}

Access tokens expire after approximately 24 hours. Applications should request a new token shortly before the current token expires to avoid authentication interruptions.

Environment Configuration

Use the appropriate API environment for testing or production integrations.

Environment Base URL
Stage https://stg-usaswimming-api.swimsmember.org
Production https://usaswimming-api.usaswimming.org

Note: The Stage environment is intended for testing and validation purposes only and may not reflect live production data.

Tier Access Levels

API access is organized into multiple tiers based on integration complexity, operational readiness, compliance requirements, and access to protected member data.

TIER 1

Team Management Base

Provides access to GET endpoints (read-only) including club rosters, membership lookups, and approved USA Swimming reference data.

  • Read-only access
  • Limited integration scope
  • Reference and lookup data
No Fee
TIER 2

Team Management Premium

Provides access to POST endpoints and write-enabled operations requiring additional onboarding validation and compliance review.

  • Write-enabled operations
  • Sandbox testing required
  • Additional onboarding review
No Fee
TIER 3

Times and Member Verification

Provides access to Member Verification APIs and Times Verification APIs for real-time eligibility validation and performance checks.

  • Real-time member validation
  • Times and performance verification
  • Enhanced onboarding requirements
$25k Initial Onboarding

Tier 1 - Team Management – Base Access

Read-only and foundational access for core team management: clubs, rosters, and vendor event logs.

Tier 1 Retrieve Clubs Associated with an Account

Purpose

Retrieves the list of clubs associated with the authenticated vendor.

Endpoint Information

HTTP MethodGET
Route/swims/SwimsThirdParty/VendorClubs/vendor
Access TierTier 1
App Role SecurityThird Party Base
Stored Procedurethirdparty.GetClubsForVendor

Input Parameters

ParameterTypeRequired?Description
vendorIdintYesRetrieved from user token.
clubIdstring?NoOptional filter.

Output Model

  • LSCCode (string)
  • ClubName (string)
  • ClubCode (string)
  • ClubId (string)
Output JSON Example
[
 {
  "lscCode": "TD",
  "clubName": "Test Team",
  "clubCode": "TDD",
  "clubId": "7BA19941A1254489BD6F4B692A4FD0D1"
 },
 {
  "lscCode": "TD",
  "clubName": "Test Team 2",
  "clubCode": "TDD2",
  "clubId": "7BA19941A1254489BD6F4B692A4FD0D2"
 }
]
Tier 1 Retrieve Club Roster

Purpose

Returns the full roster for the specified club, including member demographic data, contact information, and all associated registrations.

Endpoint Information

HTTP MethodPOST
Route/swims/SwimsThirdParty/MemberDetails/club/
Access TierTier 1
App Role SecurityThird Party Base
Stored Procedurethirdparty.GetMemberDetailsByClubId

Input Parameters

ParameterTypeRequired?Description
vendorIdintYesRetrieved from user token.
clubIdstringYesClub identifier.
memberIdList<string>NoOptional member IDs.
lastModifiedDateTime?NoFilter by last modification date.

Output Model

  • MemberId
  • OldUsasId
  • FirstName
  • PreferredName
  • MiddleName
  • LastName
  • Suffix
  • MaidenName
  • IsUsCitizen
  • BirthDate
  • CompetitionCategory
  • ModifiedDatetime
  • ContactInformation (SwimsMemberContactInformation)
  • Registrations (List<SwimsMemberRegistration>)
  • PreviousRegistrations (List<SwimsMemberRegistration>)
Output JSON Example
[
{
 "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": []
}
]
Tier 1 Retrieve Online Member Registration (OMR) Link for a Club

Purpose

Returns the Online Member Registration (OMR) link for the specified club.

Endpoint Information

HTTP MethodGET
Route/swims/SwimsThirdParty/RegistrationLink/club/
Access TierTier 1
App Role SecurityThird Party Base
Stored Procedurethirdparty.GetOMRLinkByOUId

Input Parameters

ParameterTypeRequired?Description
vendorIdintYesRetrieved from user token.
clubIdstringYesClub identifier.

Output Model

Returns the OMR URL as a string.

Output JSON Example
"https://omr-ui-stg.swimsmember.org/omr/welcome/11111111111111"
Tier 1 Retrieve Club Bulk Renewal Opt-In Status

Purpose

Retrieves the list of clubs that have Opted-In for Bulk Renewal.

Endpoint Information

HTTP MethodGET
Routeswims/SwimsThirdParty/ClubBulkRenewalOptIn/club/
Access TierTier 1
App Role SecurityThird Party Base
Stored Procedureswims.GetClubBulkRenewalOptInByOUId

Input Parameters

ParameterTypeRequired?Description
vendorIdintYesRetrieved from user token.
clubIdstring?YesRetrieved from user token.

Output Model

  • AthleteOfferingsOptIn (bool)
  • NonAthleteOfferingsOptIn (bool)
Output JSON Example
[
 {
  "athleteOfferingsOptIn": "false",
  "nonAthleteOfferingsOptIn": "false"
 }
]

Tier 2 - Team Management – Premium Access

Write-enabled and higher-value team management operations, including offerings, bulk registrations, registration status, event logs, and Webhooks.

Tier 2 Retrieve Events Within a Date Range

Purpose

Returns third-party event logs for a vendor within a specified date/time range, optionally filtered by club.

Endpoint Information

HTTP MethodGET
Route/swims/SwimsThirdParty/EventsWithinDateTime/from/
Access TierTier 2
App Role SecurityThird Party Premium
Stored Procedureswims.GetVendorEventLogsByDatetimeRange

Input Parameters

ParameterTypeRequired?Description
vendorIdintYesRetrieved from user token.
fromDateTimeDateTimeYesStart of the event time window.
toDateTimeDateTime?NoEnd of the event time window. If null, defaults to now.
clubIdstring?NoOptional club filter.

Output Model

  • EventSequence (int)
  • EventTypeId (int)
  • EventType (string)
  • ClubId (string)
  • ModifiedDatetime (DateTime)
  • EventData (SwimsEventData)

SwimsEventData

  • VendorRecordId (string)
  • MemberIds (List<string>)
  • ClubIds (List<string>)
  • OldClubId (string)
  • OldMemberId (string)
  • NewClubId (string)
  • NewMemberId (string)
Output JSON Example
[
 {
  "eventSequence": 1,
  "eventTypeId": 7,
  "eventType": "Member Details Updated",
  "clubId": "7BA19941A1254489BD6F4B692A4FD0D2",
  "modifiedDatetime": "2025-10-01",
  "eventData": {
    "memberIds": [
      "11111111111111"
    ]
  }
 }
]
Tier 2 Retrieve Club Offerings

Purpose

Returns the OMR offerings for a given club, optionally filtered by season year.

Endpoint Information

HTTP MethodGET
Route/swims/SwimsThirdParty/Offering/club/
Access TierTier 2
App Role SecurityThird Party Premium
Stored Procedurethirdparty.GetClubOfferingsByOUID

Input Parameters

ParameterTypeRequired?Description
vendorIdintYesRetrieved from user token.
clubIdstringYesClub identifier.
seasonYearint?NoOptional season year filter.

Output Model

  • OfferingId (int)
  • OfferingTypeId (int?)
  • OfferingName (string)
  • OfferingDescription (string)
  • AgeStart (int)
  • AgeEnd (int)
Output JSON Example
[
 {
  "offeringId": 1,
  "offeringTypeId": 10,
  "offeringName": "Premium Athlete",
  "offeringDescription": "Full-season athlete membership",
  "ageStart": 13,
  "ageEnd": 18
 }
]
Tier 2 Submit Club Member Registration

Purpose

Submits club member registrations from a third-party vendor to SWIMS, including validation and registration request creation.

Endpoint Information

HTTP MethodPOST
Route/swims/SwimsThirdParty/memberRegistration/club/
Access TierTier 2
App Role SecurityThird Party Premium
Stored Procedures / Functionsswims.GetUsasReportPeriodForSeasonYear
AddClubMemberRegistrationByOUId (C# function)
thirdparty.UpdateThirdPartyRegistrationOfferingIds
thirdparty.CheckThirdPartyMembers

Input Parameters

ParameterTypeRequired?Description
vendorIdintYesRetrieved from user token.
clubIdstringYesClub identifier.
clubMemberRegistrationList<VendorClubMemberRegistration>YesList of member registrations to submit.
seasonYearint?NoOptional season year to apply.

VendorClubMemberRegistration

  • MemberId (string)
  • LastName (string)
  • FirstName (string)
  • BirthDate (DateTime?)
  • PreferredName (string)
  • IsUsCitizen (bool?)
  • ContactInfo (ClubMemberRegistrationContactInfo)
  • PrimaryContactInfo (ClubMemberRegistrationPrimaryContactInfo)
  • Memberships (List<string>)
  • CompetitionCategory (string)
  • Age (int) – API calculated

Input Validation

  • MemberId may be null for new members; when provided, must be a 14-character alphanumeric string.
  • FirstName / LastName are required, cannot contain numbers or special characters, and have a max length of 100 characters.
  • BirthDate and IsUsCitizen cannot be null.
  • Memberships cannot be null or empty, must match valid USA Swimming offerings, and cannot contain duplicates.
  • CompetitionCategory must be FEMALE, MALE, or UNKNOWN.
  • Contact and Primary Contact email and phone values must meet validation standards.
  • StateCode and PostalCode must meet required formatting standards.

Output Model

  • Status (string)
  • ClubRegistrationRequestId (int?)
  • RegistrationError (List<ValidateThirdPartyRegistration>)
Output JSON Example
{
 "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."
    }
   ]
  }
 ]
}
Tier 2 Retrieve Registration Request Status

Purpose

Returns the status of a previously submitted third-party registration request.

Endpoint Information

HTTP MethodGET
Route/swims/SwimsThirdParty/memberRegistration/status/
Access TierTier 2
App Role SecurityThird Party Premium
Stored Procedurethirdparty.GetThirdPartyRegistrationRequestStatusForId

Input Parameters

ParameterTypeRequired?Description
vendorIdintYesRetrieved from user token.
clubRegistrationRequestIdintYesRegistration request identifier.

Output Model

  • Status (string)

Status values:

  • ClubRegistrationRequestId Not Found
  • ClubRegistrationRequestId Payment Pending
  • ClubRegistrationRequestId Processed
  • ClubRegistrationRequestId Pending
Output JSON Example
{
 "status": "ClubRegistrationRequestId Processed"
}
Tier 2 Team Management - Webhooks

Webhooks provide real-time notifications from SWIMS to registered webhook endpoints when membership or club data changes occur.

SWIMS delivers webhook payloads via HTTPS POST requests to registered endpoints. These payloads can be used to keep roster, club data, and local systems in sync with SWIMS.

Membership Webhooks

Membership Registration & Renewal EventType: Member Registration Complete / Renewal

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 integration workflow

  1. Call GET /swims/getMemberDetails/{clubId}/?memberId={memberId}&lastModified={lastModified}.
  2. If this is a new member, add the member and registration to your roster.
  3. If this is a renewing member, update the existing member and registration in your roster.
Membership Updated / Upgraded EventType: Member Updated

Generated when a member’s core details or membership, such as an upgraded registration, are updated within SWIMS.

{
  "eventSequence": 1234,
  "eventType": "Member Updated",
  "clubId": "EFD6F74613444017B0DB1884AADBC117",
  "modifiedDatetime": "2022-09-13T22:52:28.882Z",
  "eventData": {
    "memberId": "string"
  }
}

Recommended integration workflow

  1. Call GET /swims/getMemberDetails/{clubId}/?memberId={memberId}.
  2. Update the member’s demographics, registration details, and status in your system to match SWIMS.
Membership Merge EventType: Member Merge

Generated when two Member IDs are merged within SWIMS as part of 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 integration workflow

  1. Call GET /swims/getMemberDetails/{clubId}/?memberId={newMemberId} for the destination member.
  2. If the merge is within the same club, consolidate to the newMemberId and retire the old ID in your system.
  3. For cross-club merges, apply your business rules for moving or reconciling the member between clubs.
  4. If you receive multiple merge events for the same member, process only the latest effective state and ignore redundant duplicates.
Membership Transfer From / To Club EventType: Member Transfer From Club / Member Transfered To Club

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:

  • Member Transfer From Club – received by the club the member is leaving.
  • Member Transfer To Club – received by the club the member is joining.

API users will only receive both events if both clubs have authorized access.

{
  "eventSequence": 12,
  "eventTypeId": 4,
  "eventType": "Member Transfered To Club",
  "clubId": "1c68c4f5968e4bce96901b4f0d9d7206",
  "modifiedDatetime": "2025-11-18T19:01:40.780",
  "eventData": {
    "memberIds": ["23BF9DF1EA804E"]
  }
}

Recommended integration workflow

  1. Call GET /swims/getMemberDetails/{clubId}/?memberId={memberId} for each transfer event.
  2. If the member is not found in your system, create the member under the new club.
  3. If the member already exists in your system, update their club affiliation and apply any transfer logic your platform requires, such as moving groups or reassigning billing.
  4. For systems supporting both clubs, use both From and To events to keep rosters accurate and avoid stale attachments.
Membership Cancellation EventType: Member Cancels

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 integration workflow

  1. Locate the affected member or members in your system using the memberIds array.
  2. Mark the member’s current registration as cancelled or inactive according to your business rules.
  3. If you store vendorRecordId, use it to reconcile with your original transaction or order record.

Club Webhooks

Club Authorization Updated EventType: Club Activates Vendor / Club Deactivates Vendor

Generated when a club authorizes, updates, or removes API access in SWIMS. These events indicate changes in the club/API access relationship.

{
  "eventSequence": "002",
  "eventType": "Club Activates Vendor",
  "clubId": "EFD6F74613444017B0DB1884AADBC117",
  "modifiedDatetime": "2022-09-13T22:52:28.882Z",
  "eventData": {
    "clubId": "string"
  }
}

Recommended integration workflow

  1. When authorized, enable integrations and data flows for the club in your system.
  2. When access is removed, disable integrations, stop polling or syncing, or restrict features as appropriate.
  3. Use clubId to link the event to the correct club record locally.
Club Details Updated EventType: Club Details Updated

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 integration workflow

  1. Refresh club details using your existing club endpoint, such as Get Clubs for Vendor or a club details endpoint.
  2. Update the club’s displayed name, short code, or other dependent metadata in your UI.
  3. If you cache club information for reporting or branding, invalidate and rebuild the cache as needed.

Tier 3 - Times and Member Verification Access

Verification-focused endpoints for membership eligibility, compliance checks, and time standard validation.

Tier 3 Verify Member Eligibility

Purpose

Verifies a member's registration and eligibility status for a given club and LSC, optionally for a specified meet start date.

Endpoint Information

HTTP MethodPOST
Route/swims/SwimsThirdParty/MemberVerification
Access TierTier 3
App Role SecurityThird Party Member Verification
Stored Procedurethirdparty.GetMemberVerification

Input Parameters

ParameterTypeRequired?Description
vendorIdintYesRetrieved from user token.
memberIdList<string>YesMember IDs to verify.
lscCodestringYesLSC code.
clubCodestringYesClub code.
meetStartDateDateTime?NoOptional meet start date for eligibility checks.

Output Model

  • MemberId (string)
  • MemberFound (bool)
  • MemberHasActiveRegistrationToClub (bool?)
  • MemberHasActiveRegistrationToLSC (bool?)
  • MemberHasActiveRegistration (bool?)
  • MemberHasActiveAthleteRegistration (bool?)
  • MemberHasActiveFlexRegistration (bool?)
  • MemberHasActiveSeasonalRegistration (bool?)
  • IsAPTInGoodStanding (bool?)
  • IsMemberIneligible (bool?)
  • IsAthlete18YearsOrOlder (bool?)
Output JSON Example
[
 {
  "memberId": "11111111111111",
  "memberFound": true,
  "memberHasActiveRegistrationToClub": true,
  "memberHasActiveRegistrationToLSC": true,
  "memberHasActiveRegistration": true,
  "memberHasActiveAthleteRegistration": true,
  "memberHasActiveFlexRegistration": false,
  "memberHasActiveSeasonalRegistration": false,
  "isAPTInGoodStanding": true,
  "isMemberIneligible": false,
  "isAthlete18YearsOrOlder": true
 }
]
Tier 3 Verify Member Times

Purpose

Verifies whether a member has a valid time for a given event within a qualifying date range.

Endpoint Information

HTTP MethodGET
Route/swims/SwimsThirdParty/TimeVerification
Access TierTier 3
App Role SecurityThird Party Time Verification
Stored Procedurethirdparty.GetMemberVerification

Input Parameters

ParameterTypeRequired?Description
vendorIdintYesRetrieved from user token.
memberIdstringYesMember ID.
qualifyingStartDateDateTimeYesStart of qualifying period.
qualifyingEndDateDateTimeYesEnd of qualifying period.
swimEventstringYesEvent code.
swimTimestringYesTime to verify, such as 00:52.34.

Output Model

  • IsTimeValid (bool)
Output JSON Example
{
 "isTimeValid": true
}

Tier 4 - NCAA Access

Restricted endpoints supporting NCAA-specific integrations for teams and rosters for approved vendors.

Tier 4 Retrieve NCAA Teams

Purpose

Returns a list of NCAA teams available to the vendor.

Endpoint Information

HTTP MethodGET
Route/swims/SwimsThirdParty/NcaaTeams
Access TierTier 4
App Role SecurityThird Party NCAA
Stored Procedurethirdparty.GetNcaaTeams

Input Parameters

Parameter Type Required? Description
vendorIdintYesRetrieved from user token.

Output Model

  • Division (string)
  • Conference (string)
  • CollegeCode (string)
  • CollegeName (string)
  • CollegeId (string)
Output JSON Example
[
 {
  "division": "Division I",
  "conference": "SEC",
  "collegeCode": "ABC",
  "collegeName": "Example University",
  "collegeId": "11111111-1111-1111-1111-111111111111"
 }
]
Tier 4 Retrieve NCAA Team Roster

Purpose

Returns the NCAA team roster for the specified college.

Endpoint Information

HTTP MethodGET
Route/swims/SwimsThirdParty/NcaaMemberDetails/team/
Access TierTier 4
App Role SecurityThird Party NCAA
Stored Procedurethirdparty.GetNcaaPersonDetailsByOUId

Input Parameters

Parameter Type Required? Description
vendorIdintYesRetrieved from user token.
collegeIdstringYesCollege identifier.

Output Model

  • MemberId (string)
  • LastName (string)
  • FirstName (string)
  • PreferredName (string)
  • BirthDate (string)
  • CompetitionGenderTypeCode (string)
  • EligibilityYear (string)
Output JSON Example
[
 {
  "memberId": "11111111111111",
  "lastName": "Doe",
  "firstName": "Jane",
  "preferredName": "Janey",
  "birthDate": "2003-05-01",
  "competitionGenderTypeCode": "F",
  "eligibilityYear": "Sophomore"
 }
]
Testing with Postman

Use Postman to validate authentication, request payloads, and API responses before integrating USA Swimming endpoints into production systems.

Collections by Access Tier

Download the appropriate Postman collection to test authentication, endpoint access, and request payloads for your assigned API tier.

Tier API Collections & Testing Resources
Team Management – Base Access Download Team Management Base Access Collection (.json)
Team Management – Premium Access Download Team Management Premium Access Collection (.json)
Times and Member Verification Access Download Times and Member Verification Collection (.json)
NCAA Access Download NCAA Access Collection (.json)

Importing Collections into Postman

  1. Download the appropriate API collection JSON file above.
  2. Open Postman and select Import.
  3. Upload the downloaded collection JSON file.
  4. Configure the required Base URL, authentication credentials, and Authorization Token.
  5. Execute sample requests and validate responses before integrating with production systems.

Note: Access to API collections and endpoints is controlled by assigned API roles and approved access tiers.

Glossary of SWIMS Terms

Reference definitions for common SWIMS data fields and event terminology used throughout this API documentation.

SWIMS Terms

Term Definition
competitionCategoryStated as male or female for the purpose of athlete swimming eligibility, competition, selection and records.
contactRelationshipDenotes the relationship between the member and their primary contact.
emailAddressDenotes a valid email address.
isUsCitizenIndicates whether the member is a United States citizen.
memberIdA unique 14-character alphanumeric identifier assigned to a USA Swimming member.
oldUsasIdLegacy USA Swimming member identifier based on name and birthdate conventions.
clubIdUnique alphanumeric identifier assigned to a club.
clubCodeShort code representing the club.
clubNameOfficial name of the swim club.
vendorIdUnique identifier assigned to an approved API vendor.
vendorRecordIdOptional vendor-supplied identifier used for reconciliation and tracking.
registrationDateDate the member registration became active.
expirationDateDate the member registration expires.
registrationTypeHuman-readable descriptor of the membership type.
registrationTypeIdInternal identifier representing the membership type.
transactionTypeType of membership transaction such as New, Renew, Upgrade, or Cancel.
lscCodeAlphabetic code representing a Local Swimming Committee (LSC).
isAttachedIndicates whether the member is attached to a club.
memberGoodStandingExpirationDateDate through which the member remains in good standing.

Event Terms

Term Definition
eventSequenceSequential identifier used to track event ordering for a vendor.
eventTypeIdInternal identifier representing the type of event generated.
eventTypeHuman-readable name describing the event.
eventDataJSON object containing event-specific payload data.
Member Registration CompleteEvent generated when a member successfully completes registration.
Member UpdatedEvent generated when member demographic or registration information changes.
Member MergeEvent generated when duplicate member records are merged in SWIMS.
Member TransferEvent generated when a member transfers from one club to another.
Club Activates VendorEvent generated when a club enables an approved vendor integration.
Club Details UpdatedEvent generated when a club updates identifying or metadata information.
Application & Onboarding

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.

Application Submission

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.

Need Help?

For questions about onboarding, access tiers, or specific endpoints, contact Mitch Gold at mgold@usaswimming.org or submit a ticket through the USA Swimming Third-Party Vendor API portal.

Onboarding & Validation

  1. Review our API Access Policy and Data Use Agreement
  2. Submit an application detailing your use case, technical contact, and requested endpoints
  3. Complete review and security checks by USA Swimming staff
  4. Access granted with credentials and documentation if approved

Important: USA Swimming reserves the right to approve or deny access based on alignment with our mission, compliance with data governance standards, and technical security.


© Copyright 2026 USA Swimming. All Rights Reserved. Privacy Policy Terms & Conditions Personal Data Request Form