Public API

Read-only JSON that anybody can fetch, from a script or from another website. No sign-in and no key.

  • No authentication. A request carries no cookie and no token, and every caller gets the same answer.

  • Readable from any website: every answer allows all origins.

  • Rebuilt once a day at 19:40 UTC. An answer may be cached for an hour; send its ETag back in If-None-Match and an unchanged list answers 304.

Endpoints

EndpointReturnsItems now
GET/api/credits/makersMakers30
GET/api/credits/editorsEditors56
GET/api/credits/translatorsTranslators25
GET/api/credits/sponsorsSponsors54

Response

Every endpoint answers with the same object: when the list was built, how many items it has, and the items.

refreshedAtstring

When this list was last built. ISO 8601, in UTC.

countnumber

How many items the list has.

itemsobject[]

The list itself, in the order the credits page shows it.

GET

/api/credits/makers

Makers

Developers from the project's GitHub repositories, and the people credited by hand for work no API records.

https://gtodyssey.com/api/credits/makers

Fields of each item

namestring | null

Display name. null for an account on this site that has never chosen one.

githubstring | null

GitHub login, where one is known.

userIdstring | null

Account id on this site, where they have one. Their profile page is /users/{userId}.

avatarUrlstring

Picture, served from this site. Somebody with no picture of their own gets the default one, so it is never null.

roles("developer" | "translator" | "editor" | "honorary")[]

Everything this person is credited for, not only this list.

medal"developer" | "contributor" | null

developer for a gold developer, contributor for a gold contributor, otherwise null.

{
  "refreshedAt": "2026-09-30T19:41:08.593Z",
  "count": 30,
  "items": [
    {
      "name": "nutant",
      "github": "nutant233",
      "userId": null,
      "avatarUrl": "https://gtodyssey.com/api/credits/avatars/dff0ab5959ee02a3b5f7e0031ec5d3af49f90fe8df5c95037bf3fe2e296c3479",
      "roles": [
        "developer",
        "honorary"
      ],
      "medal": "developer"
    },
    {
      "name": "Hophenby",
      "github": "Hophenby",
      "userId": null,
      "avatarUrl": "https://gtodyssey.com/api/credits/avatars/e494ed97db2b02d2c7d9d1c3b8b080e59dd823fda43807c9011720fee62b4cc8",
      "roles": [
        "developer",
        "honorary"
      ],
      "medal": "developer"
    }
  ]
}

The live answer, cut to the first 2 of 30 items.

GET

/api/credits/editors

Editors

Everyone who has had an article published on this wiki.

https://gtodyssey.com/api/credits/editors

Fields of each item

namestring | null

Display name. null for an account on this site that has never chosen one.

githubstring | null

GitHub login, where one is known.

userIdstring | null

Account id on this site, where they have one. Their profile page is /users/{userId}.

avatarUrlstring

Picture, served from this site. Somebody with no picture of their own gets the default one, so it is never null.

roles("developer" | "translator" | "editor" | "honorary")[]

Everything this person is credited for, not only this list.

medal"developer" | "contributor" | null

developer for a gold developer, contributor for a gold contributor, otherwise null.

{
  "refreshedAt": "2026-09-30T19:41:08.593Z",
  "count": 56,
  "items": [
    {
      "name": "xinxinsuried",
      "github": "xinxinsuried",
      "userId": "P3TMMeSaYoWlbxayrphKallNdyNjqWjk",
      "avatarUrl": "https://gtodyssey.com/api/credits/avatars/4240736bdf110c65549029a1373a1ab4bdb153361c877d1b0c78fbc812bd4620",
      "roles": [
        "developer",
        "translator",
        "editor",
        "honorary"
      ],
      "medal": "developer"
    },
    {
      "name": null,
      "github": null,
      "userId": "kn751cehs4s0pdypxd14d4ppz589k3eq",
      "avatarUrl": "https://gtodyssey.com/api/credits/avatars/default",
      "roles": [
        "editor"
      ],
      "medal": null
    }
  ]
}

The live answer, cut to the first 2 of 56 items.

GET

/api/credits/translators

Translators

Translators with more than 10 points across the project's ParaTranz projects.

https://gtodyssey.com/api/credits/translators

Fields of each item

namestring | null

Display name. null for an account on this site that has never chosen one.

githubstring | null

GitHub login, where one is known.

userIdstring | null

Account id on this site, where they have one. Their profile page is /users/{userId}.

avatarUrlstring

Picture, served from this site. Somebody with no picture of their own gets the default one, so it is never null.

roles("developer" | "translator" | "editor" | "honorary")[]

Everything this person is credited for, not only this list.

medal"developer" | "contributor" | null

developer for a gold developer, contributor for a gold contributor, otherwise null.

{
  "refreshedAt": "2026-09-30T19:41:08.593Z",
  "count": 25,
  "items": [
    {
      "name": "xinxinsuried",
      "github": "xinxinsuried",
      "userId": "P3TMMeSaYoWlbxayrphKallNdyNjqWjk",
      "avatarUrl": "https://gtodyssey.com/api/credits/avatars/4240736bdf110c65549029a1373a1ab4bdb153361c877d1b0c78fbc812bd4620",
      "roles": [
        "developer",
        "translator",
        "editor",
        "honorary"
      ],
      "medal": "developer"
    },
    {
      "name": "LEgenD-Leo",
      "github": "LEgenD-Leo",
      "userId": null,
      "avatarUrl": "https://gtodyssey.com/api/credits/avatars/363b87bf4997242209442f59003d1cf7317380058ea1eb87c78f4b85ce57ca27",
      "roles": [
        "developer",
        "translator",
        "honorary"
      ],
      "medal": null
    }
  ]
}

The live answer, cut to the first 2 of 25 items.

GET

/api/credits/sponsors

Sponsors

Sponsors on Afdian, earliest first.

https://gtodyssey.com/api/credits/sponsors

Fields of each item

namestring

Name on Afdian.

avatarUrlstring

Picture, served from this site. Somebody with no picture of their own gets the default one, so it is never null.

goldboolean

Whether their total giving has passed the gold threshold. Amounts are never published.

firstPayAtstring

When they first sponsored. ISO 8601, in UTC.

{
  "refreshedAt": "2026-09-30T19:41:08.593Z",
  "count": 54,
  "items": [
    {
      "name": "帕大星PadaStar",
      "avatarUrl": "https://gtodyssey.com/api/credits/avatars/00dd49d67d16321c1e8bffccc35a70b1ff8b413bb28123c5ae2a87af6c1bea34",
      "gold": false,
      "firstPayAt": "2026-04-04T12:21:25.000Z"
    },
    {
      "name": "爱发电用户_p6k4",
      "avatarUrl": "https://gtodyssey.com/api/credits/avatars/78cc724ef3678336978019c7935adad27927dbd25fc5f71f7da185176e625b55",
      "gold": false,
      "firstPayAt": "2026-04-04T12:25:21.000Z"
    }
  ]
}

The live answer, cut to the first 2 of 54 items.