---
title: "Developer & agent resources — SportyPlus | SportyPlus"
description: "Machine-readable SportyPlus resources: OpenAPI specification, llms.txt, sitemaps, blog feeds, and markdown content negotiation on every page."
lang: "hr"
canonical: "https://www.sporty.plus/hr/developers"
---

# SportyPlus developer & agent resources

## Everything about this site that a machine can read

### SportyPlus is club management software for tennis, padel and pickleball clubs. This page lists the machine-readable descriptions of sporty.plus and how to fetch its pages as markdown.

## Machine-readable files

Stable URLs. None of them require authentication.

-   [/openapi.json](https://www.sporty.plus/openapi.json)application/json
    
    OpenAPI 3.1 description of everything this website serves — pages, their markdown representations, sitemaps and feeds.
    
-   [/v1/openapi.json](https://www.sporty.plus/v1/openapi.json)application/json
    
    The same document at a version-pinned URL. Breaking changes to the contract ship as a new version; this one keeps describing v1.
    
-   [/llms.txt](https://www.sporty.plus/llms.txt)text/plain
    
    A short guide to what SportyPlus is, who it is for, and which pages matter.
    
-   [/sitemap\_index.xml](https://www.sporty.plus/sitemap_index.xml)application/xml
    
    Sitemap index — one sitemap per language, listing every canonical URL.
    
-   [/robots.txt](https://www.sporty.plus/robots.txt)text/plain
    
    Crawl policy. Nothing on this site is disallowed.
    
-   [/feed.xml](https://www.sporty.plus/feed.xml)application/rss+xml
    
    Blog feed in RSS 2.0.
    
-   [/feed.atom](https://www.sporty.plus/feed.atom)application/atom+xml
    
    Blog feed in Atom 1.0.
    
-   [/feed.json](https://www.sporty.plus/feed.json)application/feed+json
    
    Blog feed in JSON Feed 1.1.
    

## Markdown instead of HTML

Every page here serves a markdown representation from its canonical URL when you ask for one. Send Accept: text/markdown and you get the prose without navigation, scripts or layout markup.

```
curl -H "Accept: text/markdown" https://www.sporty.plus/pricing
```

If your client cannot set request headers, append .md to any path (the homepage is /index.md):

```
curl https://www.sporty.plus/pricing.md
```

Responses carry Vary: Accept, and the HTML variant advertises its markdown sibling with a Link: rel="alternate" header. An Accept header that rules out both text/html and text/markdown gets a 406.

## Versioning and errors

Every response carries an API-Version header naming the contract that produced it — currently 1. A request may pin it by sending the same header; a version we do not serve is refused with 400 rather than answered with a different one.

```
curl -H "API-Version: 1" https://www.sporty.plus/pricing
```

Page URLs are never versioned. What the version names is the contract around them: the markdown representation, the .md alias, the error body and these discovery documents.

Breaking changes ship as a new API-Version; additive changes do not. A superseded version keeps working for at least 6 months from the announcement, and while it is being retired its responses carry Deprecation and Sunset headers (RFC 9745, RFC 8594).

Errors are typed. A client that accepts application/json gets the Error schema from the OpenAPI document; a client that accepts markdown gets the same failure as a markdown page with links onward; browsers get the HTML error page.

## Product documentation

How the SportyPlus application itself works — modules, setup and day-to-day club operations.

[docs.sporty.plus](https://docs.sporty.plus/)

## Product API

The SportyPlus application API is authenticated and is not public. If you are building an integration for your club, write to us and we will talk through access.

[Ask about API access](https://www.sporty.plus/hr/contact)
