Welcome to Nyeki's API! This is a tiny API I built to provide some basic information I found myself needing in more than one place. This at the moment only includes Discord and GitHub profiles, but I may add more stuff as I see myself needing it. The API is versioned, so API endpoints will always be prefixed with `/v{version}`. The current version is 1 (i.e. stuff is prefixed by `/v1`). All responses are JSON (or redirects). The API is not meant to be used by anyone but me, so I don't guarantee that it will always be available or that it will always return the same data (nor that it's in any way reliable in production). You're free to use it if you want, but don't expect any serious API guarantees. The current endpoints are: GET /healthcheck Returns OK when the API is running. GET /v1/profile Return's the user's profile (username, name, avatar, banner, and URL). Query parameters: - `id`: The ID of the user you want to get the profile of (or their username for supported sources). - `source`: The source of the profile (either `discord` or `github`). Response: ```ts { // The user's full username. "username": String, // The user's name to display. "name": String, // The URL to the biggest version of the user's avatar. WEBP versions are // preferred when available. "avatar_url": String, // The URL to the user's banner, if available. "banner_url": String | null, // The URL to the user's profile on the source. "url": String, } ``` GET /v1/profile/avatar Redirects to the user's avatar URL. Query parameters: - `id`: The ID of the user you want to get the profile of (or their username for supported sources). - `source`: The source of the profile (either `discord` or `github`). GET /v1/profile/banner Redirects to the user's banner URL, or returns nothing if the user has no banner. Query parameters: - `id`: The ID of the user you want to get the profile of (or their username for supported sources). - `source`: The source of the profile (either `discord` or `github`). GET /v1/profile/url Redirects to the user's profile URL on the source. Query parameters: - `id`: The ID of the user you want to get the profile of (or their username for supported sources). - `source`: The source of the profile (either `discord` or `github`). They all take 2 query parameters: `id` and `source`. The `id` is the ID of the user you want to get the profile of, and the `source` is the source of the profile. The source can be either `discord` or `github`. For GitHub IDs, numeric IDs will be considered the user's ID, while anything else will be considered a username. For Discord, they're all snowflakes since there's no API to fetch users by username. As a sidenote, if you were to want to fetch a Discord user by username, I'd try to use a user token to send a friend request to the user, then read the ID from the pending friend requests, fetch the profile, and remove the friend request. Feel free to play with that (Discord won't like you automating with your user token, it's against ToS). Errors are quite simple and they all follow the same structure: ```ts { // The HTTP status code of the error. "status": Number, // A human-readable message describing the error. "message": String, } ``` This API is open source and available at https://git.nyeki.dev/nyeki/api to self-host. Liked it? Found it useful? A donation would be appreciated! You can do so at https://ko-fi.com/nyeki.