{ "openapi": "3.0.0", "x-api-id": "lighthouse", "info": { "version": "0.0.1", "title": "Lighthouse", "license": { "name": "MIT", "url": "https://raw.githubusercontent.com/lbryio/lighthouse/master/LICENSE" }, "contact": { "name": "LBRY Inc", "url": "https://lbry.com", "email": "filip@lbry.com" }, "description": "Lighthouse is a search engine for the LBRY blockchain based on elasticsearch, chainquery and Node.JS." }, "servers": [ { "url": "https://lighthouse.lbry.com" } ], "paths": { "/search": { "get": { "description": "Returns all the searches matching the search query.", "tags": [ "Search API" ], "parameters": [ { "in": "query", "name": "s", "required": true, "description": "The search text", "schema": { "type": "string" } }, { "in": "query", "name": "channel", "description": "The channel to search, if none, will return all search results", "schema": { "type": "string" } }, { "in": "query", "name": "size", "description": "The amount of results to return at max", "schema": { "type": "integer" } }, { "in": "query", "name": "from", "description": "The number to start from, good for pagination", "schema": { "type": "integer" } }, { "in": "query", "name": "nsfw", "description": "If search should return nsfw content or not.", "schema": { "type": "boolean" } }, { "in": "query", "name": "contentType", "description": "Filter by MIME type.", "schema": { "type": "string" } }, { "in": "query", "name": "mediaType", "description": "Filter by media type, can be audio, video, image, application, text or cad.", "schema": { "type": "string" } }, { "in": "query", "name": "claimType", "description": "Return channels or files only, value can be 'channel' or 'file'.", "schema": { "type": "string" } } ], "responses": { "200": { "description": "The search API returns an array of the found matching search items.", "content": { "application/json": { "schema": { "type": "array", "items": { "type": "object", "required": [ "name", "claimId" ], "properties": { "name": { "type": "integer", "description": "The name of the claim.", "example": "LBRY" }, "claimId": { "type": "string", "description": "The claimId of the claim.", "example": "3db81c073f82fd1bb670c65f526faea3b8546720" }, "value": { "type": "object", "description": "Here is the decoded claimdata/metadata from the claim in an object." } } } } } } } } } }, "/autocomplete": { "get": { "tags": [ "Autocomplete API" ], "description": "Returns an array of autocompleted strings.", "parameters": [ { "in": "query", "name": "s", "required": true, "description": "The string to be autocompleted.", "schema": { "type": "string" } } ], "responses": { "200": { "description": "The autocomplete API returns an array of the found matching autocompleted strings.", "content": { "application/json": { "schema": { "type": "array", "items": { "type": "string", "description": "A autocompleted string", "example": "lbryisawesome" } } } } } } } }, "/status": { "get": { "tags": [ "Status API" ], "description": "Returns the current status of the lighthouse instance.", "responses": { "200": { "description": "Returns the current status of the lighthouse instance.", "content": { "application/json": { "schema": { "type": "object", "required": [ "spaceUsed", "claimsInIndex", "totSearches" ], "properties": { "spaceUsed": { "type": "string", "description": "The size of the elasticsearch database.", "example": "632.3MB" }, "claimsInIndex": { "type": "integer", "description": "The amount of claims in the search index.", "example": 97615085 }, "totSearches": { "type": "integer", "description": "The amount of searches since the start of the lighthouse instance.", "example": 100000 } } } } } } } } } }, "tags": [ { "name": "Search API" }, { "name": "Autocomplete API" }, { "name": "Status API" } ] }