# Search API v0.6.4

6 groups · 8 operations · 8 paths · 147 schemas
Source: https://plasapi.com/search/v0.6.4/

The read side of the catalogue — works, publications, agents and suggestions.

Generated from `search_v0_6_4.yaml` · OpenAPI 3.0.0

- **Implemented by:** The library system — the API can also be implemented on its own
- **Called by:** Services that show the catalogue — apps, websites, self-service
- **Profile of Provider API:** [8 of the 53 operations in Provider API](https://plasapi.com/provider/v0.6.4/)

The Search API is the read side of the catalogue: eight `GET` operations —
works (`work`), publications (`publication`), agents (`agent`), suggestions
(`suggestions`), the search configuration and the version.

None of them write, and search can be implemented on its own, without
patrons, loans and holdings.

## How to integrate

Authentication, base URL and the `version` parameter are the same as in the
Provider API — the same token endpoint, the same `Bearer` token. Here the
specification also declares two scopes, `read` and `write`; the Provider API
declares none.

Start with `GetSearchConfiguration` (`GET /configuration/search`). It tells you
which filters and sort orders the provider supports.

## How it relates to the Provider API

The Search API is a **profile** of the Provider API: all eight operations are
also there, with the same `operationId`, method and path. The difference is
scope — search can be implemented on its own.

If the library system has the whole Provider API, the service calls the same
operations there. This reference is the shorter read when only search is
involved.

## Shared across operations

These definitions are shared by the API’s operations. They are documented once here; an operation lists only what is specific to it, plus the codes it can return.

### Authentication

- `BearerAuth` · `oauth2` · Flow: `clientCredentials` · Token URL: `/authentication/oauth2/token`

### Parameters

- `version` (In `query`, [`Version`](https://plasapi.com/search/v0.6.4/schemas/#Version), optional, used by 7 of 8) — The version of Open Library the vendor expects to receive, if this version isn't supported by the provider an error code 600 (Unsupported Open Library API version) is returned.
- `ui_language` (In `query`, `string`, optional, used by 6 of 8) — The UI language the provider will return the content in.

All ui language codes should be on this list https://www.loc.gov/marc/languages/


### Error responses

- `HttpCode400` ([`Errors`](https://plasapi.com/search/v0.6.4/schemas/#Errors), used by 7 of 8) — The list of errors.
- `HttpCode401Bearer` (`No response body.`, used by 7 of 8) — Bearer token invalid, missing, or expired.
- `HttpCode404` (`No response body.`, used by 6 of 8) — Resource not found.

## All groups

- [Version](https://plasapi.com/search/v0.6.4/version/) — 1 operation
- [Configuration](https://plasapi.com/search/v0.6.4/configuration/) — 1 operation
- [Work](https://plasapi.com/search/v0.6.4/work/) — 2 operations
- [Publication](https://plasapi.com/search/v0.6.4/publication/) — 1 operation
- [Suggestion](https://plasapi.com/search/v0.6.4/suggestion/) — 1 operation
- [Agent](https://plasapi.com/search/v0.6.4/agent/) — 2 operations
- [Schema index](https://plasapi.com/search/v0.6.4/schemas/) — 147 schemas
