API

Last updated on April 16, 2026

Version 1

GET /api/v1/emojis

Retrieve the list of custom emojis used in nonsense entries. This is meant to be used as a reference. :lelcube:

GET /api/v1/variables

Retrieve the list of variables used in nonsense entries.

GET /api/v1/news

Retrieve the news from Nontrinsic. Alternatively, you can get the news as an RSS feed.

GET /api/v1/nonsense

Retrieve the nonsense database as a CSV1, JSON, or TXT2 file. Append ?format=csv, ?format=json, or ?format=txt at the end to get either format.

The schema is as follows:

Column Name Definition
nonsense This is the main row for nonsense entries. Nonsense goes here. If there are images accompanying the nonsense, add the link to the image row. If there is only an image but no accompanying nonsense text, use the file name for the nonsense text.
source The nonsense’s source go here. Either use the URL that links to the original source where the nonsense got retrieved or free-form text.
user The user that submits the nonsense.
uuid Each nonsense entry has its own UUID. This can be used to link to a specific nonsense entry.
created_at The creation timestamp in Unix time for each nonsense. If possible, retrieve the creation timestamp from the original source. If not supplied, the timestamp will be filled on submission.
language The language that’s used for the nonsense. By default, this is set to English (en), but it can be changed depending on the languages used in the nonsense. Include the most used language first, then continuing to the least used language, if any. More guidance in this page.
image Images that accompany nonsense go here; use the image’s URL.
image_alt_text Any image should have alternative text (“alt text”) for accessibility, or when the user is unable to load the image.
audio Experimental. URL to an audio file to accompany the nonsense.
original_user The Discord username for the nonsense submitter, especially for legacy entries imported before and for people who submitted entries in ⁠the #nonsense channel on Discord but haven’t made a Nontrinsic account yet.
tags Experimental. Tags describe what kind of nonsense it is based on their type, topic, etc. Can be more than one tag.
video Videos that accompany nonsense go here; use the video’s URL.
video_thumbnail The thumbnail for videos used to accompany nonsense entries; use the video thumbnail’s URL.
potentially_uncomfortable This column is used whether an entry contains media that should have a “potentially uncomfortable: [thing]” warning.

An entry that contains variables will be replaced by the server, except for $AUTHOR$, $SERVER$, $CHANNEL$, and ${app_name}. Refer to the Entry Formatting page for those variable definitions to be implemented on the client.

If an entry contains variables, there will be original_nonsense inside the JSON response that includes the raw entry text without the server replacing the variables. This is useful as a reference.

You may append these parameters at the end of the URL:

  • q=query — Restrict entries in the database export matching a search term.
  • format=format — Export the database as a csv1, json, or txt2 file.
  • after=timestamp — Only export entries after a specified Unix timestamp.
  • before=timestamp — Only export entries before a specified Unix timestamp.

Examples:

GET /api/v1/nonsense/random

Retrieve a random nonsense entry as JSON. You can optionally append ?format=html at the end to have the nonsense Markdown parsed as HTML by the server first, useful when the client cannot use a Markdown parser but can display HTML.

An entry that contains variables will be replaced by the server, except for $AUTHOR$, $SERVER$, $CHANNEL$, and ${app_name}. Refer to the Entry Formatting page for those variable definitions to be implemented in the client.

If an entry contains variables, there will be original_nonsense inside the JSON response that includes the raw entry text without the server replacing the variables. This is useful as a reference.

GET /api/v1/nonsense/:uuid

Retrieve a specific nonsense entry as JSON by its UUID. You can optionally append ?format=html at the end to have the nonsense Markdown parsed as HTML by the server first, useful when the client cannot use a Markdown parser but can display HTML.

GET /api/v1/nonsense/:uuid.png

Retrieve a share image of a specific nonsense entry by its UUID. Note that PNG is the only supported format for now. To get a wider image, append ?format=wide at the end. To get a print-optimized version of the image, append ?theme=light at the end.

GET /api/v1/nonsense/status

Retrieve the status of the nonsense database. This is useful when the client is caching the database for offline use. In that case, the client can compare the cache with the online database based on the timestamp of the latest entry.

POST /api/v1/nonsense/report

Report a nonsense entry by its UUID with a valid reason:

Value Description
hate_speech Slurs or hate speech
sexual_content Explicit sexual content
graphic_violence Graphic violence
personal_information Private or personally identifiable information
duplicate Same or near-identical entry already exists
other Other violation (use details to elaborate)

…along with optional details text.

POST to the reporting endpoint with the following JSON structure:

{
  "entryUuid": "00000000-0000-0000-0000-000000000000",
  "reason": "other",
  "details": "Optional additional context"
}

Replace entryUuid, reason, and details with actual reporting data. entryUuid must be an existing UUID of a nonsense entry.

GET /api/v1/nonsense/galaxy

Retrieve the nonsense galaxy as a CSV1 or JSON file; this is updated every 24 hours on an external server. Append ?format=csv or ?format=json at the end to get either format.

Note that the nonsense column may contain character encoding quirks; if you want to display the galaxy along with the entries (see an example), be sure to cross-reference the entry UUIDs with entries in the nonsense database to avoid such issue.

To learn more on how the nonsense galaxy is generated, see https://codeberg.org/nontrinsic/galaxy.

GET /api/v1/nonsense/galaxy/status

Retrieve the status of the nonsense galaxy. In rare cases, if the galaxy hasn’t been generated yet by the external server, it will return an error with the 502/503 HTTP code.

EXPERIMENTAL: OData backend

This is experimental and may be removed in the future.

The (minimal) OData endpoints only exist to be used in data visualization software such as Tableau, like this dashboard for example.

/odata/v2/$metadata

Retrieve the metadata about the columns that are in the database with each of their own types.

/odata/v2/nonsense_list

Retrieve the database as Atom via OData v2. You can append ?all=true at the end of the URL to retrieve the full database.

Who’s using Nontrinsic?

Footnotes

  1. The default format for the export if the format is not explicitly included. ↩ ↩2 ↩3

  2. Only single-line nonsense entries will be included in the plain text file (TXT) export. Note that even though TXT means plain text, it’s actually Markdown! You should parse the Markdown if possible to make sure the entries have proper formatting. ↩ ↩2