Ron Swanson Quotes Quotes API

Read-only operations that return one or more Ron Swanson quotes from the static quote corpus.

Documentation

Specifications

Schemas & Data

Other Resources

OpenAPI Specification

ron-swanson-quotes-quotes-api-openapi.yml Raw ↑
openapi: 3.0.3
info:
  title: Ron Swanson Quotes API
  version: 1.0.0
  description: A community-built, read-only HTTP API that returns Ron Swanson quotes from the NBC television series Parks and Recreation. Authored by James Wright as a Node.js / TypeScript Express service hosted on Heroku. The API requires no authentication, enables CORS for all origins, and returns every response as a JSON array of strings. The upstream GitHub repository was archived on 2026-01-19 but the public Heroku endpoint remains available as of 2026-05-30.
  contact:
    name: James Wright
    url: https://jamesswright.co.uk
    email: james@jamesswright.co.uk
  license:
    name: Apache License 2.0
    url: https://www.apache.org/licenses/LICENSE-2.0.html
  x-generated-from: provider-published-schema
  x-source-url: https://ron-swanson-quotes.herokuapp.com/v2/schema
  x-status: deprecated
  x-status-reason: Upstream repository archived 2026-01-19; API host remains live without an SLA. Suitable for tutorials and demos, not for production use.
servers:
- url: https://ron-swanson-quotes.herokuapp.com/v2
  description: Production Heroku host
tags:
- name: Quotes
  description: Read-only operations that return one or more Ron Swanson quotes from the static quote corpus.
paths:
  /quotes:
    get:
      operationId: getRandomQuote
      summary: Ron Swanson Quotes Get Random Quote
      description: Return a single random Ron Swanson quote wrapped in a one-element JSON array of strings. Equivalent to calling /quotes/1.
      tags:
      - Quotes
      responses:
        '200':
          description: A one-element array containing one random quote.
          headers:
            X-RateLimit-Limit:
              description: Maximum number of requests allowed in the current rolling window.
              schema:
                type: integer
            X-RateLimit-Remaining:
              description: Remaining number of requests in the current rolling window.
              schema:
                type: integer
            X-RateLimit-Reset:
              description: Unix epoch seconds at which the rate-limit window resets.
              schema:
                type: integer
            Access-Control-Allow-Origin:
              description: Always set to "*"; CORS is open for all origins.
              schema:
                type: string
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/QuoteList'
              examples:
                GetRandomQuote200Example:
                  summary: Default getRandomQuote 200 response
                  x-microcks-default: true
                  value:
                  - Capitalism is God's way of determining who is smart and who is poor.
        '429':
          description: Too Many Requests - the per-client rate limit has been exceeded.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/RateLimitError'
              examples:
                GetRandomQuote429Example:
                  summary: Default getRandomQuote 429 response
                  x-microcks-default: true
                  value:
                    error: rate_limit_exceeded
                    message: You have exceeded the request rate limit for this endpoint. Please wait until the time specified by X-RateLimit-Reset before retrying.
      x-microcks-operation:
        delay: 0
        dispatcher: FALLBACK
  /quotes/{count}:
    get:
      operationId: getRandomQuotes
      summary: Ron Swanson Quotes Get Random Quotes
      description: Return a JSON array of `count` random Ron Swanson quotes. The service does not document an upper bound on `count`; reasonable values are in the low tens. Negative or non-integer values yield a single quote.
      tags:
      - Quotes
      parameters:
      - name: count
        in: path
        required: true
        description: Number of random quotes to return.
        schema:
          type: integer
          minimum: 1
          example: 5
      responses:
        '200':
          description: An array of `count` random quotes.
          headers:
            X-RateLimit-Limit:
              description: Maximum number of requests allowed in the current rolling window.
              schema:
                type: integer
            X-RateLimit-Remaining:
              description: Remaining number of requests in the current rolling window.
              schema:
                type: integer
            X-RateLimit-Reset:
              description: Unix epoch seconds at which the rate-limit window resets.
              schema:
                type: integer
            Access-Control-Allow-Origin:
              description: Always set to "*"; CORS is open for all origins.
              schema:
                type: string
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/QuoteList'
              examples:
                GetRandomQuotes200Example:
                  summary: Default getRandomQuotes 200 response
                  x-microcks-default: true
                  value:
                  - I don't want to paint with a broad brush here, but every single contractor in the world is a miserable, incompetent thief.
                  - Just give me all the bacon and eggs you have.
                  - Say what you want about organized religion, but those bastards knew how to construct an edifice.
                  - Go back to the library where you belong.
                  - We have one activity planned - not getting killed.
        '429':
          description: Too Many Requests - the per-client rate limit has been exceeded.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/RateLimitError'
              examples:
                GetRandomQuotes429Example:
                  summary: Default getRandomQuotes 429 response
                  x-microcks-default: true
                  value:
                    error: rate_limit_exceeded
                    message: You have exceeded the request rate limit for this endpoint. Please wait until the time specified by X-RateLimit-Reset before retrying.
      x-microcks-operation:
        delay: 0
        dispatcher: FALLBACK
  /quotes/search/{term}:
    get:
      operationId: searchQuotes
      summary: Ron Swanson Quotes Search Quotes
      description: Return every Ron Swanson quote whose text contains the URL-escaped `term` substring. Matching is case-insensitive. The response is an array of zero or more quote strings; an empty array is returned when no quotes match.
      tags:
      - Quotes
      parameters:
      - name: term
        in: path
        required: true
        description: URL-encoded search term. Matched against the quote corpus without case sensitivity. Whole-word matching is not enforced - substrings also match.
        schema:
          type: string
          example: bacon
      responses:
        '200':
          description: An array of zero or more quotes that contain `term`.
          headers:
            X-RateLimit-Limit:
              description: Maximum number of requests allowed in the current rolling window.
              schema:
                type: integer
            X-RateLimit-Remaining:
              description: Remaining number of requests in the current rolling window.
              schema:
                type: integer
            X-RateLimit-Reset:
              description: Unix epoch seconds at which the rate-limit window resets.
              schema:
                type: integer
            Access-Control-Allow-Origin:
              description: Always set to "*"; CORS is open for all origins.
              schema:
                type: string
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/QuoteList'
              examples:
                SearchQuotes200Example:
                  summary: Default searchQuotes 200 response
                  x-microcks-default: true
                  value:
                  - 'Just give me all the bacon and eggs you have. Wait...wait. I worry what you just heard was: Give me a lot of bacon and eggs. What I said was: Give me all the bacon and eggs you have. Do you understand?'
        '429':
          description: Too Many Requests - the per-client rate limit has been exceeded.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/RateLimitError'
              examples:
                SearchQuotes429Example:
                  summary: Default searchQuotes 429 response
                  x-microcks-default: true
                  value:
                    error: rate_limit_exceeded
                    message: You have exceeded the request rate limit for this endpoint. Please wait until the time specified by X-RateLimit-Reset before retrying.
      x-microcks-operation:
        delay: 0
        dispatcher: FALLBACK
components:
  schemas:
    QuoteList:
      type: array
      title: QuoteList
      description: Ordered JSON array of Ron Swanson quote strings. Every endpoint of this API returns this shape regardless of the requested count or search term. An empty array is a valid response for searches with no matches.
      items:
        $ref: '#/components/schemas/Quote'
      example:
      - Capitalism is God's way of determining who is smart and who is poor.
      - Clear alcohols are for rich women on diets.
    RateLimitError:
      type: object
      title: RateLimitError
      description: Error body returned when the per-client request rate limit has been exceeded. Companion to the X-RateLimit-* response headers.
      properties:
        error:
          type: string
          description: Short machine-readable error code.
          example: rate_limit_exceeded
        message:
          type: string
          description: Human-readable explanation of the rate-limit condition.
          example: You have exceeded the request rate limit for this endpoint. Please wait until the time specified by X-RateLimit-Reset before retrying.
      required:
      - error
      - message
    Quote:
      type: string
      title: Quote
      description: A single Ron Swanson quote represented as a plain UTF-8 string. Includes punctuation, smart quotes, and original capitalisation as delivered by the upstream corpus.
      example: Give a man a fish and feed him for a day. Don't teach a man to fish, and feed yourself. He's a grown man. Fishing's not that hard.