Skip to main content

API Tenant Customization

Overview

The Events Content Calendar API uses a multi-tenant architecture that allows each client to have a fully customized API experience. This approach ensures you receive only the data relevant to your business needs, improving performance, reducing integration complexity, and aligning the API with your specific use cases.


Multi-Tenant Architecture

What is API Tenancy?

Each API client operates within their own tenant—a logically isolated view of the event catalog configured specifically for their requirements. While all tenants share the same underlying infrastructure and data sources, each tenant's API responses are filtered and customized based on their configuration.

Benefits:

  • Relevant Data Only: Your API returns only events that match your business domain
  • Simplified Integration: Fewer irrelevant results mean simpler client-side filtering
  • Optimized Performance: Smaller result sets improve query response times
  • Cost Efficiency: Reduced bandwidth usage with focused data
  • Business Alignment: API behavior matches your product requirements
tip

Think of a tenant as your personalized lens into the global event catalog—you see exactly what you need, nothing more, nothing less.


Customization Dimensions

1. Sport Filtering

Limit your API catalog to specific sports relevant to your audience.

Examples:

Business TypeSport Configuration
Running Platformrun, trail_run
Triathlon Sitetriathlon, duathlon
Cycling Appcycling, mountain_bike
Multi-Sport PortalAll available sports

Impact:

  • Events outside your sport selection are completely excluded from queries
  • Improves search relevance for your users
  • Reduces query complexity and response size
# With running-only tenant, this query automatically filters to running events
query {
events(page: 0, size: 20) {
data {
sport {
code # Will only return 'run' or 'trail_run'
}
}
}
}

2. Geographic Scoping

Restrict events to specific countries or regions.

Examples:

Use CaseGeographic Configuration
US-Only PlatformCountries: ["US"]
European MarketCountries: ["FR", "DE", "IT", "ES", "UK", ...]
North AmericaCountries: ["US", "CA", "MX"]
Global PlatformAll countries

Benefits:

  • Regional focus aligns with your target market
  • Reduces noise from irrelevant international events
  • Improves localization consistency
  • Supports compliance with regional data requirements
note

Geographic scoping is particularly valuable for platforms serving specific markets or those with localized content strategies.


3. Language Selection

Choose which languages your API supports for localized content.

Available Languages:

  • English (en, en_US, en_GB)
  • Spanish (es, es_419)
  • French (fr)
  • German (de)
  • Italian (it)
  • Portuguese (pt, pt_BR)
  • Dutch (nl)
  • Swedish (sv)
  • Russian (ru)
  • Japanese (ja)
  • Korean (ko)
  • Chinese (zh, zh_HANT)
  • Thai (th)
  • Turkish (tr)
  • Indonesian (id)

Configuration Options:

  • Primary Language: Your default/main language
  • Secondary Languages: Additional supported languages
  • Fallback Strategy: How to handle missing translations

Example Configuration:

{
primaryLanguage: "en",
supportedLanguages: ["en", "es", "fr"],
fallbackLanguage: "en"
}

4. Feature Control

Enable or disable specific event attributes and data fields.

Configurable Features:

FeatureDescriptionUse Case
Enhanced DescriptionsInclude additional event descriptionsEnable for enhanced content
[Partner Name] BrandingInclude [partner name] relationship dataEnable for [partner name] partnerships
Registration URLsAllow users to register for eventsEnable effortless registration and a seamless experience for your audience
Historical DataInclude past event editionsEnable for analysis features
Course DetailsInclude elevation, terrain, profile dataEnable for detailed race info
Localized URLsInclude language-specific event URLsEnable for multi-language sites

Example:

query {
events(page: 0, size: 10) {
data {
description {
en {
text
}
}
[partnerName]Relationship # Only if [partner name] branding enabled
checkoutUrl # Only if registration URLs enabled
}
}
}

5. Custom Catalogs

Some clients require multiple tenant configurations for different products or business lines. This allows you to maintain different event catalogs under one tenant for various use cases.

Multi-Catalog Scenarios:

  1. Brand Segmentation

    • Premium brand catalog (curated events)
    • Mass market brand catalog (all events)
  2. Product Differentiation

    • Training app catalog (beginner-friendly events)
    • Performance app catalog (competitive events)
  3. Geographic Variants

    • US catalog
    • European catalog
    • Asian catalog
note

Custom catalogs enable filtering events by specific criteria, though filtering by these specific attributes may not be available in all API queries. Each catalog receives its own configuration, accessed via the same API endpoints but returning different filtered results.


Tenant Configuration Process

1. Discovery Phase

We work with you to understand your business needs:

Key Questions:

  • What is your primary business focus?
  • Which sports are relevant to your audience?
  • What geographic markets do you serve?
  • What languages does your platform support?
  • What features are essential for your use case?
  • Do you need multiple catalogs?

2. Configuration Design

Based on discovery, we design your tenant configuration:

Sample Configuration Document:

tenant:
id: "your-company-prod"
name: "Your Company Production"

catalog:
sports:
- run
- trail_run

geography:
countries:
- US
- CA
regions: [] # All regions within selected countries

languages:
primary: en
supported:
- en
- es
fallback: en

features:
enhancedDescriptions: true
[partnerName]Data: false
registrationUrls: true
historicalData: false
courseDetails: true
localizedUrls: true

filters:
excludeCanceled: true
excludeIncomplete: true

3. Implementation & Testing

We implement your configuration and provide a test environment:

Testing Process:

  1. Configuration deployed to development environment
  2. Test credentials provided
  3. GraphQL Playground access for exploration
  4. Sample queries demonstrating configuration
  5. Feedback and adjustment iterations

4. Production Deployment

After approval, configuration is deployed to production:

Deliverables:

  • Production API credentials
  • Endpoint URLs (dev, preprod, prod)
  • Configuration documentation
  • Query examples tailored to your catalog
  • Support contact information

Tenant Management

Configuration Updates

Tenant configurations can evolve as your business needs change.

Update Process:

  1. Request configuration change
  2. Review impact assessment
  3. Test in development environment
  4. Schedule production deployment
  5. Verify changes in production

Common Updates:

  • Add/remove sports
  • Expand to new countries
  • Add language support
  • Enable additional features
  • Adjust quality thresholds
warning

Configuration changes affect all API responses. Always test thoroughly in development before production deployment.


Environment Strategy

Each tenant has access to multiple environments:

EnvironmentPurposeData
DevelopmentIntegration testing, explorationTest data + production sample
PreproductionFinal testing before go-liveProduction data snapshot
ProductionLive application trafficReal-time production data

Best Practices:

  • Develop and test in Development
  • Final validation in Preproduction
  • Deploy to Production only after thorough testing
  • Use separate credentials for each environment

Use Case Examples

Example 1: Running-Only Platform (US)

Business: Marathon training app targeting US runners

Configuration:

sports: [run, trail_run]
countries: [US]
languages: [en]
features:
enhancedDescriptions: true
courseDetails: true
registrationUrls: true

Result:

  • API returns only US running and trail events
  • All events include course details for training planning
  • Registration URLs enable seamless user experience
  • English-only content matches app localization

Example 2: European Multi-Sport Portal

Business: General sports event listing site for Europe

Configuration:

sports: [run, trail_run, cycling, triathlon, swimming]
countries: [FR, DE, IT, ES, UK, NL, BE, AT, CH]
languages: [en, fr, de, it, es, nl]
features:
enhancedDescriptions: true
courseDetails: true
registrationUrls: true
localizedUrls: true

Result:

  • Wide sport coverage for diverse audience
  • Multi-country European focus
  • 6 language support for localization
  • Localized URLs for better user experience

Example 3: [Partner Name] Partnership Platform

Business: [Partner name]-branded event discovery app

Configuration:

sports: [run, trail_run]
countries: [US, CA, UK, FR, DE, IT, ES, JP, CN]
languages: [en, es, fr, de, it, ja, zh]
features:
[partnerName]Data: true
[partnerName]Image: true
registrationUrls: true
courseDetails: true

Result:

  • [Partner name] relationship flags for featuring sponsored events
  • [Partner name] event imagery for branded experience
  • Global coverage for [partner name]'s market presence
  • Multi-language for international users

Example 4: Training Plan Integration

Business: Fitness app with integrated race calendar

Configuration:

sports: [run]
countries: [US, CA]
languages: [en]
distanceTypes: [_5k, _10k, half_marathon, marathon]
courseProfiles: [flat, undulating] # Exclude extreme courses
features:
courseDetails: true
enhancedDescriptions: false
registrationUrls: true

Result:

  • Standard distances align with training plans
  • Exclude difficult courses unsuitable for most users
  • Detailed course info for training recommendations
  • Focused catalog reduces user choice overload

Performance Implications

Query Performance

Tenant customization directly improves query performance:

Without Tenant Filtering:

Query: All marathon events
Result Set: 5,847 events globally
Response Time: ~450ms

With Tenant Filtering (US Running):

Query: All marathon events
Result Set: 892 US events
Response Time: ~180ms

Improvement: 60% faster response time

Bandwidth Optimization

Smaller, focused datasets reduce bandwidth consumption:

Example Event Response Size:

  • Full catalog (all sports, all countries): ~2.3 KB per event
  • Filtered catalog (specific sports, countries): ~1.8 KB per event
  • 20% reduction in bandwidth per event

Annual Impact (1M API calls):

  • Full catalog: ~2.3 GB data transfer
  • Filtered catalog: ~1.8 GB data transfer
  • Savings: 500 MB annually

Best Practices

1. Start Focused, Expand Later

Begin with a narrow configuration matching your MVP requirements. You can always expand later.

Recommended Approach:

Phase 1: Core sport(s) + primary market + single language
Phase 2: Add secondary languages
Phase 3: Expand to adjacent markets
Phase 4: Add related sports

2. Align with User Personas

Configure your tenant based on actual user needs, not hypothetical future requirements.

Questions to Ask:

  • What sports do 90% of my users care about?
  • What percentage of my users are in each country?
  • Which languages are actively used in my application?

3. Monitor Usage Patterns

After launch, analyze which filters your users apply most often. Consider moving common filters into your tenant configuration.

Example: If 95% of queries filter to distanceTypes: [marathon, half_marathon], consider configuring your tenant to only include those distances.

4. Leverage Multiple Catalogs Strategically

Use multiple catalogs when serving truly distinct audiences, not as a workaround for filtering.

Good Use: Separate catalogs for consumer app vs. B2B partner API Avoid: Separate catalogs for minor feature differences

5. Test Configuration Changes Thoroughly

Always test in development before requesting production changes.

Testing Checklist:

  • Verify expected events are included
  • Confirm excluded events are absent
  • Test all critical query patterns
  • Check facet results for accuracy
  • Validate multi-language content

Support & Modifications

Requesting Configuration Changes

Process:

  1. Contact your account manager or support team
  2. Describe desired changes and business rationale
  3. Receive impact assessment and timeline
  4. Test changes in development environment
  5. Approve production deployment

Typical Turnaround:

  • Simple changes (add country): 1-2 business days
  • Complex changes (new features): 1-2 weeks
  • Emergency changes: Same-day (subject to availability)

Configuration Review

We recommend periodic configuration reviews to ensure ongoing alignment with your business needs.

Review Cadence: Quarterly or after major product launches

Review Topics:

  • Usage analytics and patterns
  • Feature adoption
  • Performance metrics
  • Upcoming business changes
  • Platform roadmap

Next Steps

  • 📊 Review Catalog Statistics to understand available data
  • 💼 Explore Business Benefits to see platform capabilities
  • 📝 Check Query Examples to understand API usage
  • 📞 Contact your account manager to discuss your tenant configuration needs