Jump to content

SimTX API v24/Public endpoints

From SimTX Wiki
Revision as of 16:20, 24 October 2026 by Clanker (talk | contribs) (Clanker moved page SimTX API/Public endpoints to SimTX API v24/Public endpoints: Archive the v24 protocol reference)

The account service exposes a handful of public endpoints that need no credential. They serve service status, public profiles, transmitter releases and a simple network test. All are on https://auth.simtx.net; rate limits are listed on the account service page.

Service status

GET /api/v1/status

{ "status": "operational" }

The response indicates only that the account service process is up and answering. It says nothing about game servers; use the server directory for that. Not rate limited.

Public profiles

Every active account has a public profile consisting of its handle, display name, join date, public badges and visible awards. Nothing else about an account is public.

Profile search

GET /api/v1/profiles?q=text

Parameter Description
q Case-insensitive substring matched against handles and display names. Optional; an empty query lists accounts alphabetically.

Returns at most 24 profiles. An exact handle match is listed first, then the rest ordered by handle.

{
  "profiles": [
    {
      "handle": "n0call",
      "displayName": "Example Operator",
      "joinedAt": "2026-08-20T09:12:44.100000Z",
      "badges": [
        { "roleKey": "SUPPORTER", "label": "Supporter", "color": "#e0b04c" }
      ]
    }
  ]
}
Field Type Description
handle string Unique handle. Users may change it, at most once every 30 days.
displayName string Free-form display name.
joinedAt string Account creation time.
badges array Public role badges, sorted by label.
badges[].roleKey string Stable role identifier, for example SUPPORTER or MODERATOR.
badges[].label string Text to display.
badges[].color string CSS colour for the badge, usually #rrggbb.

Single profile

GET /api/v1/profiles/{handle}

Returns the same fields as a search result plus awards. Unknown handles return 404 profile_not_found.

Field Type Description
awards[].awardId string (UUID) Award definition.
awards[].accountAwardId string (UUID) This particular grant.
awards[].slug string Stable short identifier of the award.
awards[].name string Display name.
awards[].description string Description.
awards[].iconUrl string Icon image URL. May be empty.
awards[].grantedAt string When the award was granted.
awards[].visible boolean Whether the user shows it on their profile. Only visible awards are returned here.
awards[].displayOrder integer Order chosen by the user; lower first.
awards[].revokedAt string or null Always null for awards returned here.

Releases

GET /api/v1/releases

Lists published releases of the official SimTX Transmitter, newest first.

{
  "releases": [
    {
      "releaseId": "7edca7c6-97ca-4291-9691-3f0a5cd41a20",
      "version": "0.3.7",
      "title": "SimTX 0.3.7",
      "notes": ["WFM now accepts baseband directly.", "Added rate selection up to 384 kHz."],
      "downloadUrl": "/downloads/simtx-transmitter-0.3.7.jar",
      "artifactFilename": "simtx-transmitter-0.3.7.jar",
      "artifactSize": 8087129,
      "artifactSha256": "8632bc25e1271146c8638c2780e4a6bdb40379d0dd7cae8f0631f8e16b5da69b",
      "published": true,
      "createdAt": "2026-09-14T19:37:41.639246Z",
      "updatedAt": "2026-09-14T19:38:53.435832Z",
      "publishedAt": "2026-09-14T19:37:41.639246Z"
    }
  ]
}
Field Type Description
version string Version number.
title string Release title.
notes array of string Change notes, one entry per item.
downloadUrl string or null Download location. A value starting with / is relative to https://auth.simtx.net; otherwise it is an absolute URL.
artifactFilename, artifactSize, artifactSha256 string, integer, string File name, size in bytes and lowercase hex SHA-256 of the download. Verify the hash after downloading.
published boolean Always true here.
createdAt, updatedAt, publishedAt string Timestamps.

Release downloads

GET /downloads/{filename} returns the stored file with Content-Disposition: attachment, an ETag equal to the quoted SHA-256, and Cache-Control: public, max-age=300. Unknown files return 404 release_artifact_not_found.

Update manifest

GET /downloads/transmitter-update.properties returns the newest downloadable release as a Java properties file (text/plain; charset=utf-8, cached for 60 seconds). The official transmitter uses it for update checks.

version=0.3.7
url=/downloads/simtx-transmitter-0.3.7.jar
sha256=8632bc25e1271146c8638c2780e4a6bdb40379d0dd7cae8f0631f8e16b5da69b
notes=WFM now accepts baseband directly. · Added rate selection up to 384 kHz.

The notes of the release are joined with · on a single line. Returns 404 release_manifest_unavailable when no release has a download.

Network test

Two endpoints let a client estimate latency and upload bandwidth to SimTX infrastructure. The SimTX website's network test uses them.

Latency probe

GET /api/v1/network-test/ping

{ "serverTimeMillis": 1793016000000 }

serverTimeMillis is the server's clock in Unix milliseconds. Measure the round-trip time on the client side. Rate limit: 60 per minute.

Upload probe

POST /api/v1/network-test/upload with Content-Type: application/octet-stream and a body of 1 byte to 1 MiB (1,048,576 bytes). The Content-Length header is required.

{ "receivedBytes": 1048576, "serverReadMillis": 412.7 }
Field Description
receivedBytes Number of body bytes read.
serverReadMillis Time the server spent reading the body, in milliseconds.

Errors: 415 network_test_content_type for any other content type, 413 network_test_chunk_size for an empty, missing-length or oversized body. Rate limit: 144 per minute.

SimTX API reference (protocol v25)
Start OverviewQuick startFramingData typesPacket listSchemaLimits and errorsCompatibility and versioning
Account service OverviewDevice loginServer directoryStation endpointsGame ticketsPermissionsPublic endpoints
Game protocol Connection and handshakeSession statusReceiver sessionTransmitter sessionControl sessionCatalogModeration
Stations StationsSatellitesTracking and pointing
Connection ClientHelloPingServerHelloPongErrorBanner
Session AntennaPointingUpdateSessionStatus
Receiver ForwardedClientAddressReceiverStartReceiverRetuneIqStreamDescriptorIqBlock
Transmitter TransmitterStartSampleBlockTxUpdateTxModeInfoTxQueueTxAcceptTxTelemetryTxUpdateAck
Control ListStationsStartMonitorStopMonitorWeatherMapRequestServerHealthRequestCoverageMapRequestEphemerisRequestPassPredictionRequestStationListMonitorBlockMonitorEndWeatherMapResponseServerHealthReportCoverageMapResponseEphemerisResponsePassPredictionResponseMonitorAck
Catalog CatalogListRequestCatalogFetchCatalogUploadCatalogDeleteCatalogListCatalogEntryCatalogUploadResultCatalogDeleteResult
Moderation KickRequestIpModerationRequestBroadcastBannerKickResultIpModerationResultStationImpactList
Archive Protocol v24 reference