Docs / Quotes Data API / Endpoints / Retrieve a quotation

Retrieve a quotation

Returns one quotation by id.

GET https://api.softon.dev/v1/quotes/{id} Copy

Parameters

ParameterTypeDescription
id required string The quotation id from a list response. Ids are `<source>:<source_id>` and are stable for the life of the record. Quotations carry a `birjob:` prefix because that is the name of the corpus they were imported from — the same project this platform's crawler used to run under, which is why it still answers to `BirJobBot`. It is a name, not a namespace you need to handle: treat the whole string as opaque and store it as you received it. It is not going to change, because an id you already hold changing would cost you a re-import to buy us a tidier prefix.

Request

curl https://api.softon.dev/v1/quotes/birjob:1766 \
  -H "Authorization: Bearer $SOFTON_KEY"

Response

The envelope is identical on every softon.dev API: data, meta, error. Only the shape inside data changes per dataset — see the response envelope.

{
  "data": {
    "id": "birjob:1663",
    "source": "birjob",
    "text": "Let us see what love can do.",
    "author": null,
    "category": "Love",
    "origin": "passiton",
    "ingested_at": "2026-08-06T07:29:46.646799Z"
  },
  "meta": { "request_id": "req_9Fv3" },
  "error": null
}

Fields of data

FieldTypeDescription
id string Stable identifier, "<source>:<source id>".
source string Which scraper delivered this quotation.
text string The quotation.
author string · nullable Attributed author. null where the collection does not name one.
category string · nullable The upstream's own label. A folksonomy, not an enum -- tens of thousands of distinct values -- so treat it as a tag rather than a fixed set.
origin string · nullable Where the quotation was collected from, e.g. "passiton". Distinct from source, which is the scraper that delivered it.
ingested_at timestamp When this version was stored.

Try it

v1 · stable
Send the request to see a response.