Getting Started

Introduction

Oh wow, you found our Community API. This API allows developers to retrieve information using HTTP requests. These pages are dedicated to helping creators make awesome content that make the community a better place.

Tips on reading this documentation

  • Endpoints denoted with an asterisk (*) require an API Key.
  • Endpoints denoted with an exclamation mark (!) require both an API Key and user authentication.
  • Endpoints denoted with one of the two previous markings matched with a question mark (?) support connecting without an API Key or user authentication, however may be limited without it.

Changes from version 1.0

  • Specifying a "Format" using a query argument will now tell the API to respond in a legacy format.
    • The YAML and INI formats are not allowed to be specified using the "Format" query argument.
  • Specifying "ExcludeNewData" will try to exclude any new data we associate with this API.
  • The "ProfileLookup" endpoint is now called "User". ProfileLookup can still be used, but is deprecated.
  • The "User" endpoint now returns new data
    • "JoinDateDisplay" using "j F Y h:i:s a (T)" format. To control it yourself, you can use the UNIX timestamp returned as "JoinDate".
    • "KarmaScore". This number will not return a value less than 0, even when the user's karma score is below 0.
    • "IsPage" will return a boolean value of if the account is a page or not.
    • "VerifiedStatus" will return an integer 0-4 of a user's verified status.
  • In XML, integer values will now be returned as an attribute.
  • In XML, boolean values will now be returned as an attribute of 0 or 1.
  • In XML, the "User" endpoint now returns each user as a "User" node instead of a "Data" node.

Authorisation Identifier

This section is a work in progress.

The API Authorisation Identifier is a 64 character long string that is used to allow applications access to a user's Donut Team account.

Frequently Asked Questions:

When does the API turn on?

We're currently developing this API, so it is currently unavailable.

Does this replace Donut Team Community API 1.0? Will 1.0 be disabled?

The old API will be turned off immediately once we release the new API. However to ensure all legacy code works moving forward, we've created a backwards compatibility layer that will allow all 1.0 requests be respected and served the same exact way your code was written to expect. At this time, we have no intention to ever turn off the compatibility layer, however new endpoints will not explicitly support the old format.

Supported Formats

The Donut Team Community API supports returning data in 4 formats.

Examples

All examples demonstrate the Default endpoint in each returned format.

JSON Default
GET https://api.donutteam.com/Default.json
{
    "Version": "2.0",
    "Endpoint": "Default",
    "Method": "GET",
    "Accessor": {
        "UserAgent": "Mozilla\/5.0 (Windows NT 6.3; Win64; x64) AppleWebKit\/537.36 (KHTML, like Gecko) Chrome\/71.0.3578.98 Safari\/537.36",
        "IP": "[REDACTED]",
        "CC": "US"
    },
    "FullPath": "https:\/\/api.donutteam.com\/Default.json",
    "Path": [
        "Default"
    ]
}
XML
GET https://api.donutteam.com/Default.xml
<?xml version="1.0" encoding="utf-8"?>
<DonutTeam>
  <Version>2.0</Version>
  <Endpoint>Default</Endpoint>
  <Method>GET</Method>
  <Accessor>
    <UserAgent>Mozilla/5.0 (Windows NT 6.3; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/71.0.3578.98 Safari/537.36</UserAgent>
    <IP>[REDACTED]</IP>
    <CC>US</CC>
  </Accessor>
  <FullPath>https://api.donutteam.com/Default.xml</FullPath>
  <Path>
    <Data>Default</Data>
  </Path>
</DonutTeam>
YAML
GET https://api.donutteam.com/Default.yaml
---
Version: "2.0"
Endpoint: Default
Method: GET
Accessor:
    UserAgent: >
        Mozilla/5.0 (Windows NT 6.3; Win64; x64) AppleWebKit/537.36
        (KHTML, like Gecko) Chrome/71.0.3578.98 Safari/537.36
    IP: [REDACTED]
    CC: US
FullPath: https://api.donutteam.com/Default.yaml
Path:
    - Default
INI

INI implementation is wildly different across platforms and libraries used. We highly recommend using one of the other four return formats if you're uncertain.

GET https://api.donutteam.com/Default.ini
Version="2.0"
Endpoint="Default"
Method="GET"
[Accessor]
UserAgent="Mozilla/5.0 (Windows NT 6.3; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/71.0.3578.98 Safari/537.36"
IP="[REDACTED]"
CC="US"
FullPath="https://api.donutteam.com/Default.ini"
[Path]
0="Default"

Example request

GET https://api.donutteam.com/Default.xml
<DonutTeam>
	<Version>2.0</Version>
	<Accessor>Mozilla/5.0 (Windows NT 6.3; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/71.0.3578.98 Safari/537.36</Accessor>
	<Method>GET</Method>
	<Event>NoEndpoint</Event>
	<Path>
		<Data>Default</Data>
	</Path>
</DonutTeam>

Revision #9
Created Sun, Feb 10, 2019 1:16 PM by Jake Andreoli
Updated Mon, Feb 11, 2019 12:48 AM by Jake Andreoli