Search Services icon

Search Services

API for Internet Archive's Search-related services

COMMUNITYNO AUTH0 INSTALLS
OpenAPI Specificationv3.0
{
  "openapi": "3.0.0",
  "servers": [
    {
      "url": "https://api.archive.org"
    }
  ],
  "info": {
    "contact": {
      "x-twitter": "internetarchive"
    },
    "description": "API for Internet Archive's Search-related services\n",
    "title": "Search Services",
    "version": "1.0.0",
    "x-apisguru-categories": [
      "search"
    ],
    "x-logo": {
      "url": "https://api.apis.guru/v2/cache/logo/https_twitter.com_internetarchive_profile_image.jpeg"
    },
    "x-origin": [
      {
        "format": "openapi",
        "url": "https://raw.githubusercontent.com/ArchiveLabs/api.archive.org/master/swagger/search.yaml",
        "version": "3.0"
      }
    ],
    "x-providerName": "archive.org",
    "x-serviceName": "search"
  },
  "paths": {
    "/search/v1/fields": {
      "get": {
        "description": "Fields that can be requested",
        "parameters": [
          {
            "$ref": "#/components/parameters/callback"
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/javascript": {
                "schema": {
                  "items": {
                    "$ref": "#/components/schemas/Field"
                  },
                  "type": "array"
                }
              },
              "application/json": {
                "schema": {
                  "items": {
                    "$ref": "#/components/schemas/Field"
                  },
                  "type": "array"
                }
              }
            },
            "description": "Fields that can be requested"
          }
        }
      }
    },
    "/search/v1/organic": {
      "get": {
        "description": "Return relevance-based results from search queries\n",
        "parameters": [
          {
            "$ref": "#/components/parameters/query"
          },
          {
            "$ref": "#/components/parameters/field"
          },
          {
            "$ref": "#/components/parameters/size"
          },
          {
            "$ref": "#/components/parameters/total_only"
          },
          {
            "$ref": "#/components/parameters/callback"
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/javascript": {
                "schema": {
                  "$ref": "#/components/schemas/OrganicResult"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/OrganicResult"
                }
              }
            },
            "description": "Organic Search API. Returns results in descending relevance order"
          },
          "default": {
            "content": {
              "application/javascript": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Unexpected error"
          }
        }
      }
    },
    "/search/v1/scrape": {
      "get": {
        "description": "Scrape search results from Internet Archive, allowing a scrolling cursor\n",
        "parameters": [
          {
            "$ref": "#/components/parameters/query"
          },
          {
            "$ref": "#/components/parameters/field"
          },
          {
            "$ref": "#/components/parameters/sort"
          },
          {
            "$ref": "#/components/parameters/size"
          },
          {
            "$ref": "#/components/parameters/cursor"
          },
          {
            "$ref": "#/components/parameters/total_only"
          },
          {
            "$ref": "#/components/parameters/callback"
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/javascript": {
                "schema": {
                  "$ref": "#/components/schemas/ScrapeResult"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ScrapeResult"
                }
              }
            },
            "description": "Scaping API"
          },
          "default": {
            "content": {
              "application/javascript": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Unexpected error"
          }
        }
      }
    }
  },
  "components": {
    "parameters": {
      "callback": {
        "description": "Specifies a JavaScript function func, for a JSON-P response. When provided, results are wrapped as `callback(data)`, and the returned MIME type is application/javascript. This causes the caller to automatically run the func with the JSON results as its argument.",
        "in": "query",
        "name": "callback",
        "required": false,
        "schema": {
          "type": "string"
        }
      },
      "cursor": {
        "description": "Cursor for scrolling (used for subsequent calls)",
        "in": "query",
        "name": "cursor",
        "required": false,
        "schema": {
          "type": "string"
        }
      },
      "field": {
        "description": "Metadata field",
        "explode": true,
        "in": "query",
        "name": "field",
        "required": false,
        "schema": {
          "default": "identifier",
          "maxLength": 250,
          "minLength": 1,
          "type": "string"
        }
      },
      "query": {
        "description": "Lucene-type search query",
        "in": "query",
        "name": "q",
        "schema": {
          "type": "string"
        }
      },
      "size": {
        "description": "Number of query results to return",
        "in": "query",
        "name": "size",
        "required": false,
        "schema": {
          "default": 1000,
          "maximum": 10000,
          "minimum": 10,
          "type": "integer"
        }
      },
      "sort": {
        "description": "sort collations",
        "explode": true,
        "in": "query",
        "name": "sort",
        "required": false,
        "schema": {
          "maxLength": 250,
          "minLength": 5,
          "type": "string"
        }
      },
      "total_only": {
        "description": "Request total only; do not return hits",
        "in": "query",
        "name": "total_only",
        "required": false,
        "schema": {
          "default": false,
          "type": "boolean"
        }
      }
    },
    "schemas": {
      "Cursor": {
        "description": "A scroll handle",
        "type": "string"
      },
      "Error": {
        "properties": {
          "code": {
            "format": "int32",
            "type": "integer"
          },
          "message": {
            "type": "string"
          }
        }
      },
      "Field": {
        "description": "The name of a field",
        "type": "string"
      },
      "Hit": {
        "description": "One item returned (object of fields and values)",
        "type": "object"
      },
      "OrganicResult": {
        "description": "The result of a organic search request",
        "properties": {
          "count": {
            "description": "Number of results returned",
            "maximum": 10000,
            "minimum": 0,
            "type": "integer"
          },
          "items": {
            "items": {
              "$ref": "#/components/schemas/Hit"
            },
            "type": "array"
          },
          "total": {
            "description": "Approximate number of results meeting query",
            "minimum": 0,
            "type": "integer"
          }
        },
        "type": "object"
      },
      "ScrapeResult": {
        "description": "The result of a scrape request",
        "properties": {
          "count": {
            "description": "Number of results returned",
            "maximum": 10000,
            "minimum": 0,
            "type": "integer"
          },
          "cursor": {
            "$ref": "#/components/schemas/Cursor"
          },
          "items": {
            "items": {
              "$ref": "#/components/schemas/Hit"
            },
            "type": "array"
          },
          "previous": {
            "$ref": "#/components/schemas/Cursor"
          },
          "total": {
            "description": "Total number of results from this cursor point",
            "minimum": 0,
            "type": "integer"
          }
        },
        "type": "object"
      }
    }
  }
}