openapi: 3.0.0
servers:
  - url: https://randomlovecraft.com/api
info:
  description: Random sentences from the complete works of H.P. Lovecraft. CORS-enabled.
  title: Random Lovecraft
  version: "1.0"
  x-apisguru-categories:
    - text
  x-origin:
    - format: openapi
      url: https://raw.githubusercontent.com/dekadans/randomlovecraft.com/master/public/openapi.yaml
      version: "3.0"
  x-providerName: randomlovecraft.com
  x-logo:
    url: https://api.apis.guru/v2/cache/logo/https_apis.guru_assets_images_no-logo.svg
tags:
  - name: Sentences
  - name: Books
paths:
  /books:
    get:
      description: ""
      operationId: get-books
      responses:
        "200":
          content:
            application/json:
              schema:
                properties:
                  data:
                    items:
                      $ref: "#/components/schemas/book"
                    type: array
                type: object
          description: ""
      summary: List all books
      tags:
        - Books
    summary: ""
  "/books/{id}/sentences":
    get:
      description: ""
      operationId: get-sentences-from-book
      responses:
        "200":
          content:
            application/json:
              schema:
                properties:
                  data:
                    items:
                      $ref: "#/components/schemas/sentence"
                    type: array
                type: object
          description: ""
      summary: Random sentences from a specific book
      tags:
        - Sentences
    parameters:
      - description: Book ID
        in: path
        name: id
        required: true
        schema:
          type: string
      - in: query
        name: limit
        schema:
          default: 1
          maximum: 100
          type: integer
    summary: ""
  /sentences:
    get:
      description: ""
      operationId: get-sentences
      responses:
        "200":
          content:
            application/json:
              schema:
                properties:
                  data:
                    items:
                      $ref: "#/components/schemas/sentence"
                    type: array
                type: object
          description: ""
      summary: A random sentence
      tags:
        - Sentences
    parameters:
      - in: query
        name: limit
        schema:
          default: 1
          maximum: 100
          type: integer
    summary: ""
  "/sentences/{id}":
    get:
      description: ""
      operationId: get-specific-sentence
      responses:
        "200":
          content:
            application/json:
              schema:
                properties:
                  data:
                    $ref: "#/components/schemas/sentence"
                type: object
          description: ""
      summary: A specific sentence
      tags:
        - Sentences
    parameters:
      - description: Sentence ID
        in: path
        name: id
        required: true
        schema:
          type: string
    summary: ""
components:
  schemas:
    book:
      properties:
        id:
          example: afd6
          type: string
        name:
          example: The Shadow Out of Time
          type: string
        year:
          example: "1934"
          type: string
      type: object
    sentence:
      properties:
        book:
          $ref: "#/components/schemas/book"
        id:
          example: d75b3350
          type: string
        sentence:
          example: Around the first week in July I developed an unaccountable set of mixed emotions about that general northeasterly region.
          type: string
      type: object
