Tronald Dump Quotes API

REST API returning Donald Trump quotes with metadata, tags, authors, and sources, using HAL JSON responses with _links and _embedded sections for hypermedia navigation. Includes random quote retrieval, quote-by-id lookup, full text search with pagination, tag browsing, author lookup, and source lookup.

OpenAPI Specification

tronald-dump-quotes-openapi.yml Raw ↑
openapi: 3.0.3
info:
  title: Tronald Dump Quotes API
  description: >-
    Tronald Dump is an open community REST API exposing a historical archive
    of Donald Trump quotes with sources, authors, tags, and a search
    interface. Responses follow HAL (Hypertext Application Language) JSON
    conventions with `_links` and `_embedded` sections for hypermedia
    navigation. The API supports random quote retrieval, quote lookup by ID,
    full text search with pagination, tag browsing, author lookup, and source
    lookup. No authentication is required. The original public service ran
    at api.tronalddump.io and has gone offline since 2023; this spec is
    preserved for community SDKs, archival mirrors, and historical
    reconstruction.
  version: 1.0.0
  contact:
    name: Marcel Wijnker (Original Author)
    url: https://github.com/wickedest
  license:
    name: MIT
    url: https://opensource.org/licenses/MIT
  x-generated-from: documentation
  x-last-validated: '2026-05-30'
  x-api-status: offline-historical
servers:
- url: https://api.tronalddump.io
  description: Tronald Dump Production (historical, offline since 2023)
tags:
- name: Quotes
  description: Retrieve Donald Trump quotes individually, randomly, or via full text search.
- name: Tags
  description: Browse the controlled vocabulary of tags attached to quotes.
- name: Authors
  description: Look up the author records attached to quotes.
- name: Sources
  description: Look up the source documents (tweets, transcripts, articles) attached to quotes.
paths:
  /random/quote:
    get:
      operationId: getRandomQuote
      summary: Tronald Dump Get Random Quote
      description: >-
        Returns a single random Donald Trump quote with HAL `_links` and
        `_embedded` author/source records.
      tags:
      - Quotes
      responses:
        '200':
          description: A random quote was returned successfully.
          content:
            application/hal+json:
              schema:
                $ref: '#/components/schemas/Quote'
              examples:
                GetRandomQuote200Example:
                  summary: Default getRandomQuote 200 response
                  x-microcks-default: true
                  value:
                    appeared_at: '2016-09-26T00:00:00.000Z'
                    created_at: '2017-02-15T16:13:32.456Z'
                    quote_id: GYDdK40iSrSiyVAm2J_TKQ
                    tags:
                    - Mexico
                    - Wall
                    updated_at: '2017-02-15T16:13:32.456Z'
                    value: >-
                      When Mexico sends its people, they're not sending their best.
                    _links:
                      self:
                        href: /quote/GYDdK40iSrSiyVAm2J_TKQ
                    _embedded:
                      author:
                      - author_id: 86xX9JdJSlqIo86xJoiqAA
                        name: Donald Trump
                        slug: donald-trump
                        bio: 45th and 47th President of the United States.
                      source:
                      - source_id: 2u3o8DcvSluqZ27WtmlGCw
                        url: https://twitter.com/realDonaldTrump/status/780494805192454144
                        filename: '780494805192454144.txt'
                        created_at: '2017-02-15T16:13:32.456Z'
                        updated_at: '2017-02-15T16:13:32.456Z'
        '404':
          description: No quote available.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
              examples:
                GetRandomQuote404Example:
                  summary: Default getRandomQuote 404 response
                  x-microcks-default: true
                  value:
                    status: 404
                    message: No quote found
        '500':
          description: Internal server error.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
              examples:
                GetRandomQuote500Example:
                  summary: Default getRandomQuote 500 response
                  x-microcks-default: true
                  value:
                    status: 500
                    message: Internal server error
      x-microcks-operation:
        delay: 0
        dispatcher: FALLBACK
  /quote/{quote_id}:
    get:
      operationId: getQuoteById
      summary: Tronald Dump Get Quote by ID
      description: >-
        Returns a specific Donald Trump quote by its unique identifier, with
        HAL `_links` and `_embedded` author/source records.
      tags:
      - Quotes
      parameters:
      - name: quote_id
        in: path
        description: The unique identifier of the quote.
        required: true
        schema:
          type: string
        example: GYDdK40iSrSiyVAm2J_TKQ
      responses:
        '200':
          description: The quote was found and returned.
          content:
            application/hal+json:
              schema:
                $ref: '#/components/schemas/Quote'
              examples:
                GetQuoteById200Example:
                  summary: Default getQuoteById 200 response
                  x-microcks-default: true
                  value:
                    appeared_at: '2016-09-26T00:00:00.000Z'
                    created_at: '2017-02-15T16:13:32.456Z'
                    quote_id: GYDdK40iSrSiyVAm2J_TKQ
                    tags:
                    - Mexico
                    - Wall
                    updated_at: '2017-02-15T16:13:32.456Z'
                    value: I will build a great wall.
                    _links:
                      self:
                        href: /quote/GYDdK40iSrSiyVAm2J_TKQ
        '404':
          description: Quote not found.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
              examples:
                GetQuoteById404Example:
                  summary: Default getQuoteById 404 response
                  x-microcks-default: true
                  value:
                    status: 404
                    message: Quote not found
        '500':
          description: Internal server error.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
              examples:
                GetQuoteById500Example:
                  summary: Default getQuoteById 500 response
                  x-microcks-default: true
                  value:
                    status: 500
                    message: Internal server error
      x-microcks-operation:
        delay: 0
        dispatcher: FALLBACK
  /search/quote:
    get:
      operationId: searchQuotes
      summary: Tronald Dump Search Quotes
      description: >-
        Full text search across the corpus of Donald Trump quotes. Returns a
        HAL response with `_embedded.quotes`, total/count metadata, and
        pagination links.
      tags:
      - Quotes
      parameters:
      - name: query
        in: query
        description: Free text query string to search quote values against.
        required: true
        schema:
          type: string
        example: wall
      - name: page
        in: query
        description: Zero-indexed page number for pagination.
        required: false
        schema:
          type: integer
          default: 0
          minimum: 0
        example: 0
      - name: size
        in: query
        description: Number of results returned per page.
        required: false
        schema:
          type: integer
          default: 25
          minimum: 1
          maximum: 100
        example: 25
      responses:
        '200':
          description: Search returned successfully (may contain zero matches).
          content:
            application/hal+json:
              schema:
                $ref: '#/components/schemas/QuoteSearchResponse'
              examples:
                SearchQuotes200Example:
                  summary: Default searchQuotes 200 response
                  x-microcks-default: true
                  value:
                    count: 2
                    total: 2
                    _embedded:
                      quotes:
                      - appeared_at: '2016-09-26T00:00:00.000Z'
                        created_at: '2017-02-15T16:13:32.456Z'
                        quote_id: GYDdK40iSrSiyVAm2J_TKQ
                        tags:
                        - Mexico
                        - Wall
                        value: I will build a great wall.
                        _links:
                          self:
                            href: /quote/GYDdK40iSrSiyVAm2J_TKQ
                      - appeared_at: '2016-10-09T00:00:00.000Z'
                        created_at: '2017-02-15T16:13:32.456Z'
                        quote_id: 9aN8b3CMQpaLvSf7Z_ToWQ
                        tags:
                        - Wall
                        value: The wall just got 10 feet taller.
                        _links:
                          self:
                            href: /quote/9aN8b3CMQpaLvSf7Z_ToWQ
                    _links:
                      self:
                        href: /search/quote?query=wall&page=0&size=25
                      next:
                        href: /search/quote?query=wall&page=1&size=25
        '404':
          description: No quotes matched the query.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
              examples:
                SearchQuotes404Example:
                  summary: Default searchQuotes 404 response
                  x-microcks-default: true
                  value:
                    status: 404
                    message: No quotes found
        '500':
          description: Internal server error.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
              examples:
                SearchQuotes500Example:
                  summary: Default searchQuotes 500 response
                  x-microcks-default: true
                  value:
                    status: 500
                    message: Internal server error
      x-microcks-operation:
        delay: 0
        dispatcher: FALLBACK
  /tag:
    get:
      operationId: getAllTags
      summary: Tronald Dump Get All Tags
      description: >-
        Returns the controlled vocabulary of all tags that exist across the
        quote corpus.
      tags:
      - Tags
      responses:
        '200':
          description: Tag list returned successfully.
          content:
            application/hal+json:
              schema:
                $ref: '#/components/schemas/TagListResponse'
              examples:
                GetAllTags200Example:
                  summary: Default getAllTags 200 response
                  x-microcks-default: true
                  value:
                    count: 3
                    total: 3
                    _embedded:
                      tags:
                      - value: Wall
                        _links:
                          self:
                            href: /tag/Wall
                      - value: Mexico
                        _links:
                          self:
                            href: /tag/Mexico
                      - value: China
                        _links:
                          self:
                            href: /tag/China
                    _links:
                      self:
                        href: /tag
        '500':
          description: Internal server error.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
              examples:
                GetAllTags500Example:
                  summary: Default getAllTags 500 response
                  x-microcks-default: true
                  value:
                    status: 500
                    message: Internal server error
      x-microcks-operation:
        delay: 0
        dispatcher: FALLBACK
  /tag/{tag_value}:
    get:
      operationId: getQuotesByTag
      summary: Tronald Dump Get Quotes by Tag
      description: >-
        Returns the set of Donald Trump quotes associated with a specific tag
        value, with HAL pagination metadata.
      tags:
      - Tags
      parameters:
      - name: tag_value
        in: path
        description: The exact tag value to filter quotes by.
        required: true
        schema:
          type: string
        example: Wall
      - name: page
        in: query
        description: Zero-indexed page number for pagination.
        required: false
        schema:
          type: integer
          default: 0
          minimum: 0
        example: 0
      - name: size
        in: query
        description: Number of results returned per page.
        required: false
        schema:
          type: integer
          default: 25
          minimum: 1
          maximum: 100
        example: 25
      responses:
        '200':
          description: Tag matched and quotes returned successfully.
          content:
            application/hal+json:
              schema:
                $ref: '#/components/schemas/QuoteSearchResponse'
              examples:
                GetQuotesByTag200Example:
                  summary: Default getQuotesByTag 200 response
                  x-microcks-default: true
                  value:
                    count: 1
                    total: 1
                    _embedded:
                      quotes:
                      - appeared_at: '2016-09-26T00:00:00.000Z'
                        created_at: '2017-02-15T16:13:32.456Z'
                        quote_id: GYDdK40iSrSiyVAm2J_TKQ
                        tags:
                        - Wall
                        value: I will build a great wall.
                        _links:
                          self:
                            href: /quote/GYDdK40iSrSiyVAm2J_TKQ
                    _links:
                      self:
                        href: /tag/Wall
        '404':
          description: Tag not found.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
              examples:
                GetQuotesByTag404Example:
                  summary: Default getQuotesByTag 404 response
                  x-microcks-default: true
                  value:
                    status: 404
                    message: Tag not found
        '500':
          description: Internal server error.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
              examples:
                GetQuotesByTag500Example:
                  summary: Default getQuotesByTag 500 response
                  x-microcks-default: true
                  value:
                    status: 500
                    message: Internal server error
      x-microcks-operation:
        delay: 0
        dispatcher: FALLBACK
  /author:
    get:
      operationId: getAllAuthors
      summary: Tronald Dump Get All Authors
      description: Returns the list of all author records tracked in the corpus.
      tags:
      - Authors
      responses:
        '200':
          description: Author list returned successfully.
          content:
            application/hal+json:
              schema:
                $ref: '#/components/schemas/AuthorListResponse'
              examples:
                GetAllAuthors200Example:
                  summary: Default getAllAuthors 200 response
                  x-microcks-default: true
                  value:
                    count: 1
                    total: 1
                    _embedded:
                      authors:
                      - author_id: 86xX9JdJSlqIo86xJoiqAA
                        name: Donald Trump
                        slug: donald-trump
                        bio: 45th and 47th President of the United States.
                        _links:
                          self:
                            href: /author/86xX9JdJSlqIo86xJoiqAA
                    _links:
                      self:
                        href: /author
        '500':
          description: Internal server error.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
              examples:
                GetAllAuthors500Example:
                  summary: Default getAllAuthors 500 response
                  x-microcks-default: true
                  value:
                    status: 500
                    message: Internal server error
      x-microcks-operation:
        delay: 0
        dispatcher: FALLBACK
  /author/{author_id}:
    get:
      operationId: getAuthorById
      summary: Tronald Dump Get Author by ID
      description: Returns a specific author record by unique identifier.
      tags:
      - Authors
      parameters:
      - name: author_id
        in: path
        description: The unique identifier of the author.
        required: true
        schema:
          type: string
        example: 86xX9JdJSlqIo86xJoiqAA
      responses:
        '200':
          description: Author returned successfully.
          content:
            application/hal+json:
              schema:
                $ref: '#/components/schemas/Author'
              examples:
                GetAuthorById200Example:
                  summary: Default getAuthorById 200 response
                  x-microcks-default: true
                  value:
                    author_id: 86xX9JdJSlqIo86xJoiqAA
                    name: Donald Trump
                    slug: donald-trump
                    bio: 45th and 47th President of the United States.
                    _links:
                      self:
                        href: /author/86xX9JdJSlqIo86xJoiqAA
        '404':
          description: Author not found.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
              examples:
                GetAuthorById404Example:
                  summary: Default getAuthorById 404 response
                  x-microcks-default: true
                  value:
                    status: 404
                    message: Author not found
        '500':
          description: Internal server error.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
              examples:
                GetAuthorById500Example:
                  summary: Default getAuthorById 500 response
                  x-microcks-default: true
                  value:
                    status: 500
                    message: Internal server error
      x-microcks-operation:
        delay: 0
        dispatcher: FALLBACK
  /source:
    get:
      operationId: getAllSources
      summary: Tronald Dump Get All Sources
      description: >-
        Returns the list of all source documents (tweets, transcripts,
        articles) attached to quotes in the corpus.
      tags:
      - Sources
      responses:
        '200':
          description: Source list returned successfully.
          content:
            application/hal+json:
              schema:
                $ref: '#/components/schemas/SourceListResponse'
              examples:
                GetAllSources200Example:
                  summary: Default getAllSources 200 response
                  x-microcks-default: true
                  value:
                    count: 1
                    total: 1
                    _embedded:
                      sources:
                      - source_id: 2u3o8DcvSluqZ27WtmlGCw
                        url: https://twitter.com/realDonaldTrump/status/780494805192454144
                        filename: '780494805192454144.txt'
                        created_at: '2017-02-15T16:13:32.456Z'
                        updated_at: '2017-02-15T16:13:32.456Z'
                        _links:
                          self:
                            href: /source/2u3o8DcvSluqZ27WtmlGCw
                    _links:
                      self:
                        href: /source
        '500':
          description: Internal server error.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
              examples:
                GetAllSources500Example:
                  summary: Default getAllSources 500 response
                  x-microcks-default: true
                  value:
                    status: 500
                    message: Internal server error
      x-microcks-operation:
        delay: 0
        dispatcher: FALLBACK
  /source/{source_id}:
    get:
      operationId: getSourceById
      summary: Tronald Dump Get Source by ID
      description: Returns a specific source record by unique identifier.
      tags:
      - Sources
      parameters:
      - name: source_id
        in: path
        description: The unique identifier of the source.
        required: true
        schema:
          type: string
        example: 2u3o8DcvSluqZ27WtmlGCw
      responses:
        '200':
          description: Source returned successfully.
          content:
            application/hal+json:
              schema:
                $ref: '#/components/schemas/Source'
              examples:
                GetSourceById200Example:
                  summary: Default getSourceById 200 response
                  x-microcks-default: true
                  value:
                    source_id: 2u3o8DcvSluqZ27WtmlGCw
                    url: https://twitter.com/realDonaldTrump/status/780494805192454144
                    filename: '780494805192454144.txt'
                    created_at: '2017-02-15T16:13:32.456Z'
                    updated_at: '2017-02-15T16:13:32.456Z'
                    _links:
                      self:
                        href: /source/2u3o8DcvSluqZ27WtmlGCw
        '404':
          description: Source not found.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
              examples:
                GetSourceById404Example:
                  summary: Default getSourceById 404 response
                  x-microcks-default: true
                  value:
                    status: 404
                    message: Source not found
        '500':
          description: Internal server error.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
              examples:
                GetSourceById500Example:
                  summary: Default getSourceById 500 response
                  x-microcks-default: true
                  value:
                    status: 500
                    message: Internal server error
      x-microcks-operation:
        delay: 0
        dispatcher: FALLBACK
components:
  schemas:
    Quote:
      type: object
      description: A single Donald Trump quote with HAL hypermedia metadata.
      properties:
        appeared_at:
          type: string
          format: date-time
          description: The date and time the quote first appeared in the source.
          example: '2016-09-26T00:00:00.000Z'
        created_at:
          type: string
          format: date-time
          description: The date and time the quote was created in the system.
          example: '2017-02-15T16:13:32.456Z'
        quote_id:
          type: string
          description: Unique URL-safe identifier for the quote.
          example: GYDdK40iSrSiyVAm2J_TKQ
        tags:
          type: array
          items:
            type: string
          description: Tag values associated with the quote.
          example:
          - Mexico
          - Wall
        updated_at:
          type: string
          format: date-time
          description: The date and time the quote was last updated.
          example: '2017-02-15T16:13:32.456Z'
        value:
          type: string
          description: The actual quote text.
          example: I will build a great wall.
        _links:
          type: object
          description: HAL hypermedia links related to the quote (self, etc.).
          additionalProperties: true
        _embedded:
          type: object
          description: HAL embedded resources for the quote (author, source).
          properties:
            author:
              type: array
              items:
                $ref: '#/components/schemas/Author'
            source:
              type: array
              items:
                $ref: '#/components/schemas/Source'
    Author:
      type: object
      description: An author record (e.g. Donald Trump) attached to one or more quotes.
      properties:
        author_id:
          type: string
          description: Unique URL-safe identifier for the author.
          example: 86xX9JdJSlqIo86xJoiqAA
        name:
          type: string
          description: Display name of the author.
          example: Donald Trump
        slug:
          type: string
          description: URL-friendly slug for the author.
          example: donald-trump
        bio:
          type: string
          description: Short biography of the author.
          example: 45th and 47th President of the United States.
        _links:
          type: object
          description: HAL hypermedia links related to the author.
          additionalProperties: true
    Source:
      type: object
      description: A source document (tweet, transcript, article) underpinning a quote.
      properties:
        source_id:
          type: string
          description: Unique URL-safe identifier for the source.
          example: 2u3o8DcvSluqZ27WtmlGCw
        url:
          type: string
          format: uri
          description: Canonical URL of the source document.
          example: https://twitter.com/realDonaldTrump/status/780494805192454144
        filename:
          type: string
          description: Filename of the archived source on disk.
          example: '780494805192454144.txt'
        created_at:
          type: string
          format: date-time
          description: The date and time the source was created.
          example: '2017-02-15T16:13:32.456Z'
        updated_at:
          type: string
          format: date-time
          description: The date and time the source was last updated.
          example: '2017-02-15T16:13:32.456Z'
        _links:
          type: object
          description: HAL hypermedia links related to the source.
          additionalProperties: true
    Tag:
      type: object
      description: A tag in the controlled vocabulary applied to quotes.
      properties:
        value:
          type: string
          description: The tag value string.
          example: Wall
        _links:
          type: object
          description: HAL hypermedia links related to the tag.
          additionalProperties: true
    QuoteSearchResponse:
      type: object
      description: HAL response wrapper for paginated quote search and tag results.
      properties:
        count:
          type: integer
          description: Number of quotes returned on this page.
          example: 2
        total:
          type: integer
          description: Total number of quotes matching the query across all pages.
          example: 2
        _embedded:
          type: object
          properties:
            quotes:
              type: array
              items:
                $ref: '#/components/schemas/Quote'
        _links:
          type: object
          description: HAL pagination links (self, next, prev).
          additionalProperties: true
    TagListResponse:
      type: object
      description: HAL response wrapper for the tag vocabulary listing.
      properties:
        count:
          type: integer
          description: Number of tags returned on this page.
          example: 3
        total:
          type: integer
          description: Total number of tags in the vocabulary.
          example: 3
        _embedded:
          type: object
          properties:
            tags:
              type: array
              items:
                $ref: '#/components/schemas/Tag'
        _links:
          type: object
          description: HAL pagination links.
          additionalProperties: true
    AuthorListResponse:
      type: object
      description: HAL response wrapper for the author listing.
      properties:
        count:
          type: integer
          description: Number of authors returned on this page.
          example: 1
        total:
          type: integer
          description: Total number of authors in the system.
          example: 1
        _embedded:
          type: object
          properties:
            authors:
              type: array
              items:
                $ref: '#/components/schemas/Author'
        _links:
          type: object
          description: HAL pagination links.
          additionalProperties: true
    SourceListResponse:
      type: object
      description: HAL response wrapper for the source document listing.
      properties:
        count:
          type: integer
          description: Number of sources returned on this page.
          example: 1
        total:
          type: integer
          description: Total number of sources in the system.
          example: 1
        _embedded:
          type: object
          properties:
            sources:
              type: array
              items:
                $ref: '#/components/schemas/Source'
        _links:
          type: object
          description: HAL pagination links.
          additionalProperties: true
    Error:
      type: object
      description: Standard error response envelope.
      properties:
        status:
          type: integer
          description: HTTP status code.
          example: 404
        message:
          type: string
          description: Human-readable error message.
          example: Quote not found
externalDocs:
  description: Original Tronald Dump Documentation (historical)
  url: https://www.tronalddump.io/