Fabric8Labs Search API

The Search API from Fabric8Labs — 1 anonymous read operation returning a unified search index across every public post type on www.fabric8labs.com.

OpenAPI Specification

fabric8labs-search-api-openapi.yml Raw ↑
openapi: 3.1.0
info:
  title: Fabric8Labs Search API
  version: wp/v2
  description: Read-only view of the public WordPress REST API (namespace wp/v2) served by www.fabric8labs.com.
    Derived by API Evangelist from the live, anonymous route index at https://www.fabric8labs.com/wp-json
    and the per-route OPTIONS schema documents the site serves. Only operations verified to answer anonymously
    with HTTP 200 are included; the write methods WordPress also registers on these routes require authentication
    and are not part of this public surface.
  contact:
    name: Fabric8Labs
    url: https://www.fabric8labs.com/contact-us/
servers:
- url: https://www.fabric8labs.com/wp-json
tags:
- name: Search
  description: Search resources on www.fabric8labs.com.
paths:
  /wp/v2/search:
    get:
      operationId: listSearch
      summary: List search
      description: Returns a paginated collection of search published on www.fabric8labs.com.
      tags:
      - Search
      parameters:
      - name: context
        in: query
        schema:
          type: string
          enum:
          - view
          - embed
          default: view
        description: Scope under which the request is made; determines fields present in response.
      - name: exclude
        in: query
        schema:
          type: array
          items:
            type: integer
          default: []
        description: Ensure result set excludes specific IDs.
      - name: include
        in: query
        schema:
          type: array
          items:
            type: integer
          default: []
        description: Limit result set to specific IDs.
      - name: page
        in: query
        schema:
          type: integer
          minimum: 1
          default: 1
        description: Current page of the collection.
      - name: per_page
        in: query
        schema:
          type: integer
          minimum: 1
          maximum: 100
          default: 10
        description: Maximum number of items to be returned in result set.
      - name: search
        in: query
        schema:
          type: string
        description: Limit results to those matching a string.
      - name: subtype
        in: query
        schema:
          type: array
          items:
            type: string
            enum:
            - post
            - page
            - team
            - popup
            - popup_theme
            - category
            - post_tag
            - any
          default: any
        description: Limit results to items of one or more object subtypes.
      - name: type
        in: query
        schema:
          type: string
          enum:
          - post
          - term
          - post-format
          default: post
        description: Limit results to items of an object type.
      responses:
        '200':
          description: A list of search.
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/SearchResult'
          headers:
            X-WP-Total:
              description: Total number of matching records.
              schema:
                type: integer
            X-WP-TotalPages:
              description: Total number of pages available.
              schema:
                type: integer
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '404':
          $ref: '#/components/responses/NotFound'
components:
  schemas:
    SearchResult:
      title: search-result
      type: object
      properties:
        id:
          description: Unique identifier for the object.
          type:
          - integer
          - string
        title:
          description: The title for the object.
          type: string
        url:
          description: URL to the object.
          type: string
          format: uri
        type:
          description: Object type.
          type: string
          enum:
          - post
          - term
          - post-format
        subtype:
          description: Object subtype.
          type: string
          enum:
          - post
          - page
          - team
          - popup
          - popup_theme
          - category
          - post_tag
    Error:
      type: object
      description: The WordPress REST API error envelope returned by www.fabric8labs.com.
      properties:
        code:
          type: string
          description: Machine-readable error code, e.g. rest_post_invalid_id.
        message:
          type: string
          description: Human-readable error message.
        data:
          type: object
          properties:
            status:
              type: integer
              description: HTTP status code.
            params:
              type: object
              description: Per-parameter validation messages, when present.
      required:
      - code
      - message
  responses:
    BadRequest:
      description: Invalid parameter.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error'
    Unauthorized:
      description: Authentication required or insufficient permission.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error'
    NotFound:
      description: No record matches the request.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error'