Ophardt APIfencing.ophardt.online ↗
Access fencing tournament calendars, event details, and attendee lists from fencing.ophardt.online via 3 structured JSON endpoints.
What is the Ophardt API?
The Ophardt fencing API exposes 3 endpoints that cover the Ophardt Team Sportevent platform's tournament calendar, event metadata, and per-competition attendee rosters. The search_events endpoint lets you filter upcoming and past fencing events by nation code and date range, returning IDs, cities, titles, and registration URLs for each match. get_event_details and get_event_attendees then let you drill into any specific event by its ID.
curl -X GET 'https://api.parse.bot/scraper/97650f1c-9db4-4558-89c7-1b3a58682d2b/search_events?nation=GER&date_to=2026-10-09&date_from=2026-07-11' \ -H 'X-API-Key: $PARSE_API_KEY'
Typed, relational, agent-ready
A generated client with real types, enums, and the links between objects — the structure a flat JSON response can't carry. Autocompletes in your editor and reads cleanly to coding agents.
- Fully typed · autocompletes
- Objects link to objects
- Typed errors & pagination
Typed Python client. Set up the SDK in your uv project, then pull this API’s typed client:
uv add parse-sdk uv run parse init uv run parse add --marketplace fencing-ophardt-online-api
uv run parse add --marketplace pulls a pinned snapshot of this canonical API — it won’t change underneath you. To customize it, subscribe and swap to your own copy.
"""Walkthrough: Ophardt Fencing SDK — search tournaments, inspect details and attendees."""
from parse_apis.ophardt_fencing_api import OphardtFencing, Nation, EventNotFound
client = OphardtFencing()
# Search upcoming German fencing events (limit caps total items fetched)
for event in client.events.search(nation=Nation.GER, limit=5):
print(event.title, event.date, event.city)
# Drill into one event's metadata
event = client.events.search(nation=Nation.GER, limit=1).first()
if event:
detail = event.details()
print(detail.title, detail.details)
# List competition attendees for the event
if event:
for comp in event.attendees.list(limit=3):
print(comp.competition_name, comp.summary)
print(comp.counts.inscribed, comp.counts.pending, comp.counts.cancelled)
for a in comp.attendees[:2]:
print(a.name, a.year, a.club_nation, a.status)
# Typed error handling: catch a not-found event
try:
bad = client.event("9999999").details()
except EventNotFound as exc:
print(f"Event not found: {exc.event_id}")
print("exercised: events.search / event.details / event.attendees.list / EventNotFound")
Search for fencing events on the calendar by nation and date range. Returns a list of matching events with their IDs, dates, locations, and titles. Results are not paginated; the full matching set is returned in one response. When no filters are provided, returns all upcoming events across all nations.
| Param | Type | Description |
|---|---|---|
| nation | string | Nation code to filter events (e.g. GER, FRA, USA). Omitting returns events from all nations. |
| date_to | string | End date filter in YYYY-MM-DD format. Omitting applies no upper bound. |
| date_from | string | Start date filter in YYYY-MM-DD format. Omitting applies no lower bound. |
{
"type": "object",
"fields": {
"total": "integer count of events returned",
"events": "array of event objects with id, date, nation, city, title, url, and inscriptions_url"
},
"sample": {
"data": {
"total": 51,
"events": [
{
"id": "32786",
"url": "https://fencing.ophardt.online/en/widget/event/32786",
"city": "Buchholz",
"date": "Jun 6, 2026",
"title": "2026 German Championships",
"nation": "GER",
"inscriptions_url": "https://fencing.ophardt.online/en/inscriptions/show/32786"
}
]
},
"status": "success"
}
}About the Ophardt API
Event Search and Filtering
The search_events endpoint accepts three optional parameters — nation (ISO code such as GER, FRA, or USA), date_from, and date_to (both in YYYY-MM-DD format) — and returns a total count alongside an events array. Each event object includes id, date, nation, city, title, url, and an inscriptions_url pointing to the registration page for that event. Omitting all filters returns events across all nations and dates.
Event Metadata
get_event_details takes a required event_id (obtainable from search_events) and returns structured metadata: the event title, a details object with key-value pairs covering dates, location, and the full competition schedule. This is useful for building event preview pages or syncing fencing calendars with external scheduling tools.
Attendee and Competition Rosters
get_event_attendees returns the deepest layer of data. For a given event_id, it provides a competitions array broken down by category or age group. Each competition object includes competition_name, a summary, entry counts, and a list of individual attendees with fields such as name, birth year, club, seeding, and registration status. The response also surfaces aggregate integers: total_attendees_inscribed, total_pending, total_cancelled, and competitions_count, making it straightforward to build summary dashboards without iterating every attendee.
The Ophardt API is a managed, monitored endpoint for fencing.ophardt.online — not a raw scraper you maintain. Every endpoint is automatically health-checked on a schedule, and when fencing.ophardt.online changes and a check fails, the API is automatically queued for repair and re-verified. It is built to keep working as the site underneath it changes.
This isn't an official fencing.ophardt.online API — it's an independent, maintained REST wrapper over public data. Where the source has no official API (or only a limited one), Parse gives you a stable contract over a source that never promised one, and keeps it current. Need a new endpoint or field? You can revise it yourself in plain English and the agent rebuilds it against the live site in minutes — contributing the change back to the shared API is free.
Will this API break when the source site changes?+
Is this an official API from the source site?+
Can I fix or extend this API myself if I need a new endpoint or field?+
What happens if I call an endpoint that has an issue?+
- Build a fencing event calendar filtered by country using the
nationparameter insearch_events. - Track registration trends for a specific tournament by comparing
total_attendees_inscribed,total_pending, andtotal_cancelledfromget_event_attendees. - Generate club participation reports by aggregating the
clubfield across all attendees inget_event_attendees. - Sync competition schedules to external calendar apps using the
detailsobject fromget_event_details. - Monitor seeding lists for a particular age group by filtering
competitionsbycompetition_namein the attendees response. - Alert coaches when new events appear in a target nation by polling
search_eventswith anationanddate_fromfilter. - Compile athlete travel schedules by cross-referencing the
cityfield fromsearch_eventswith attendee name data.
| Tier | Price | Credits/month | Rate limit |
|---|---|---|---|
| Free | $0/mo | 100 | 5 req/min |
| Hobby | $30/mo | 1,000 | 20 req/min |
| Developer | $100/mo | 5,000 | 100 req/min |
One credit = one API call regardless of which marketplace API you call. Exceeding the rate limit returns a 429 response. Authenticate with the X-API-Key header.
Does fencing.ophardt.online have an official developer API?+
What does `get_event_attendees` return for each individual athlete?+
attendees list includes the athlete's name, birth year, club affiliation, seeding, and registration status. Entries are grouped under competitions, which correspond to category or age group divisions within the event. Aggregate integers for inscribed, pending, and cancelled counts are also returned at the top level.Can I filter events by weapon type (foil, épée, sabre) or gender?+
search_events currently supports filtering only by nation and date range. Weapon type and gender filtering are not exposed as parameters. You can fork this API on Parse and revise it to add filtering logic based on competition name patterns returned by get_event_attendees.Does the API cover historical results or only registrations?+
Is there a pagination mechanism when `search_events` returns many results?+
total count alongside the full events array in a single response. There are no explicit page or offset parameters exposed in the current spec. For very broad queries with no nation or date filter, be aware that the returned array may be large.