Donut Team Public API

Getting Started

The Donut Team Public API allows a developer to retrieve basic information by the use of HTTP requests. It does not provide any way of authenticating or interact with user accounts. This API's original intent was for Lucas' Simpsons: Hit & Run Multiplayer to retrieve player data after authenticating. The API was opened up to allow application developers to show their submitted content on their website(s).

There is currently no way to authenticate as a user or interact with the website in the form of an API, however we will be addressing this in the coming months in the form of a new API.

Because this API has no authentication, you can get started by checking out the various endpoints.

GET https://api.donutteam.com
Arguments Result
Accessor Sets the accessor to the string you assign. Only for logging purposes, optional.
Event Used for specifying the endpoint. See the endpoint documentation.
Format Used for specifying what format you'd like returned. See list of supported formats below.

Supported Formats

The Donut Team Public API supports showing all of it's endpoints in the following:

JSON

JSON is the default way we will return the data to you. You can also specify &Format=JSON if you want to make sure your code works in the future.

XML

XML was added in 1.0.32. You can access it by specifying &Format=XML

Example request

GET https://api.donutteam.com/?Accessor=AerHx&Event=Version&Format=XML
<DonutTeamAPI>
    <Accessor>AerHx</Accessor>
    <Method>GET</Method>
    <Event>Version</Event>
    <Version>1.0.48</Version>
</DonutTeamAPI>

API Endpoints

API Endpoints

ProfileLookup

The ProfileLookup endpoint provides basic information about a user such as their username, identifier, display name, rank and join date.

Endpoint

https://api.donutteam.com/?Event=ProfileLookup

Arguments

MethodOfAccessingUserInformation

Values Result
username Looks up the specified user(s) by username
discord Looks up the specified user(s) by their Discord ID
id Default Value - Looks up the specified user(s) by their Donut Team ID

Users

A list of user identifiers separated by colons.

Example:

&Users=1:2:395

Example response

XML

GET https://api.donutteam.com/?Event=ProfileLookup&Users=1:2:395&Format=XML
<?xml version="1.0"?>
<DonutTeamAPI>
  <Data Value="1">
    <Id>1</Id>
    <Username>jake</Username>
    <DisplayName>Jake Andre&#xF8;li</DisplayName>
    <Rank>5</Rank>
    <JoinDate>1363694400</JoinDate>
    <IsConfirmed>1</IsConfirmed>
  </Data>
  <Data Value="2">
    <Id>2</Id>
    <Username>duckdotexe</Username>
    <DisplayName>Loren Goodwin</DisplayName>
    <Rank>5</Rank>
    <JoinDate>1363694400</JoinDate>
    <IsConfirmed>1</IsConfirmed>
  </Data>
  <Data Value="395">
    <Id>395</Id>
    <Username>lucasc190</Username>
    <DisplayName>Lucas Cardellini</DisplayName>
    <Rank>5</Rank>
    <JoinDate>1396234333</JoinDate>
    <IsConfirmed>1</IsConfirmed>
  </Data>
</DonutTeamAPI>

JSON

GET http://api.donutteam.com/?Event=ProfileLookup&MethodOfAccessingUserInformation=username&Users=jake:duckdotexe:lucasc190&Format=JSON
{
    "jake": {
        "Id": 1,
        "Username": "jake",
        "DisplayName": "Jake Andre\u00f8li",
        "Rank": 5,
        "JoinDate": 1363694400,
        "IsConfirmed": true
    },
    "duckdotexe": {
        "Id": 2,
        "Username": "duckdotexe",
        "DisplayName": "Loren Goodwin",
        "Rank": 5,
        "JoinDate": 1363694400,
        "IsConfirmed": true
    },
    "lucasc190": {
        "Id": 395,
        "Username": "lucasc190",
        "DisplayName": "Lucas Cardellini",
        "Rank": 5,
        "JoinDate": 1396234333,
        "IsConfirmed": true
    }
}
API Endpoints

AppLookup

The AppLookup endpoint provides basic information about a submitted application such as it's title and download link.

Endpoint

https://api.donutteam.com/?Event=AppLookup

Arguments

Apps

A list of app identifiers separated by colons.

Example:

&Apps=1:4

Example response

XML

GET https://api.donutteam.com/?Event=AppLookup&Apps=1:4&Format=XML
<?xml version="1.0"?>
<DonutTeamAPI>
	<Data Value="1">
		<Title>Donut Mod</Title>
		<Version>3.2.3</Version>
		<Category>1</Category>
		<ChangelogLink>https://www.dropbox.com/s/asno8vytv7n7rnf/Donut%20Mod.txt?raw=1</ChangelogLink>
		<DonutTeamDownloadLink>https://donutteam.com/downloads/1/</DonutTeamDownloadLink>
	</Data>
	<Data Value="4">
		<Title>Lucas' Simpsons Hit &amp; Run Mod Launcher</Title>
		<Version>1.16.3</Version>
		<Category>6</Category>
		<ChangelogLink>https://donutteam.com/forum/topic/1499/</ChangelogLink>
		<DonutTeamDownloadLink>https://donutteam.com/downloads/4/</DonutTeamDownloadLink>
	</Data>
</DonutTeamAPI>

JSON

GET https://api.donutteam.com/?Event=AppLookup&Apps=1:4
{
    "1": {
        "Title": "Donut Mod",
        "Version": "3.2.3",
        "Category": 1,
        "ChangelogLink": "https:\/\/www.dropbox.com\/s\/asno8vytv7n7rnf\/Donut%20Mod.txt?raw=1",
        "DonutTeamDownloadLink": "https:\/\/donutteam.com\/downloads\/1\/"
    },
    "4": {
        "Title": "Lucas' Simpsons Hit & Run Mod Launcher",
        "Version": "1.16.3",
        "Category": 6,
        "ChangelogLink": "https:\/\/donutteam.com\/forum\/topic\/1499\/",
        "DonutTeamDownloadLink": "https:\/\/donutteam.com\/downloads\/4\/"
    }
}
API Endpoints

DeveloperLookup

not implemented yet

TODO

API Endpoints

Version

The Version endpoint provides the current API version. As the current API is designed to be quickly updated, this can be handy to check when it was updated.

Endpoint

https://api.donutteam.com/
https://api.donutteam.com/?Event=Version

Arguments

This endpoint takes no arguments.

Example response

XML

https://api.donutteam.com/?Format=XML
<?xml version="1.0"?>
<DonutTeamAPI>
  <Accessor>Unidentified Developer</Accessor>
  <Method>GET</Method>
  <Event>Version</Event>
  <Version>1.0.0</Version>
</DonutTeamAPI>

JSON

https://api.donutteam.com/?Accessor=Jack%20Powell
{
    "Accessor": "Jack Powell",
    "Method": "GET",
    "Event": "Version",
    "Version": "1.0.0"
}