openapi: 3.2.0 info: title: Folio Search API version: v4.1.0 contact: name: Spitfire team description: 'Operations tagged search across 2 of this provider''s published API definitions: folio-mod-search-openapi.json, folio-mod-search-openapi.yml. Each path carries the servers of the definition it was published in.' servers: - description: Development environments. url: https://{environment}-okapi.ci.folio.org variables: environment: default: folio-dev-spitfire enum: - folio-dev-spitfire - folio-perf-spitfire - description: Reference environments. url: https://folio-{environment}-okapi.dev.folio.org variables: environment: default: snapshot enum: - snapshot - snapshot-2 tags: - description: Provides endpoints to search for records (e.g., instances, authorities) using CQL (Contextual Query Language) queries. Supports various search options and retrieval of search results. name: Search paths: /search/instances: get: description: Get a list of instances for CQL query operationId: searchInstances parameters: - description: X-Okapi-Tenant header value in: header name: x-okapi-tenant required: true schema: type: string - description: "A CQL query string\n
| Option | \nType | \nExample | \nDescription | \n
|---|---|---|---|
| keyword | \nfull-text | \nkeyword all "web semantic" | \nAn alias for: title, alternativeTitles, indexTitle, series, contributors.name | \n
| id | \nterm | \nid=="1234567" | \nMatches instance with the id | \n
| hrid | \nterm | \nhrid=="hr1*0" | \nMatches instances with given HRID | \n
| source | \nterm | \nsource=="MARC" | \nMatches instances with given source (FOLIO/MARC) | \n
| title | \nfull-text | \ntitle all "semantic web" | \nMatches instances with the given title, searches against title, alternativeTitles,\n indexTitle, series fields\n | \n
| alternativeTitles.alternativeTitle | \nfull-text | \nalternativeTitles.alternativeTitle all "semantic web" | \nMatches instances with the given alternative title | \n
| uniformTitle | \nfull-text | \nuniformTitle all "semantic web" | \nMatches instances with the given uniform title | \n
| indexTitle | \nfull-text | \nindexTitle all "semantic web" | \nMatches instances with the given index title | \n
| series | \nfull-text | \nseries all "series" | \nMatches instance with given series value | \n
| identifiers.value | \nterm | \nidentifiers.value = "1023*" | \nMatches instances with the given identifier value | \n
| identifiers.identifierTypeId | \nterm | \nidentifiers.identifierTypeId=="123" identifiers.value = "1023*"\n | \nMatches instances that have an identifier of type 123 and ANY\n identifier with value 1023*\n | \n
| contributors | \nfull-text | \ncontributors all "John" | \nMatches instances that have a John contributor | \n
| contributors.name | \nfull-text | \ncontributors.name all "John" | \nMatches instances that have a primary John contributor | \n
| contributors.contributorTypeId | \nterm | \ncontributors.contributorTypeId all "1234567" | \nMatches instances that have a contributor type Id 1234567 | \n
| contributors.contributorNameTypeId | \nterm | \ncontributors.contributorNameTypeId all "1234567" | \nMatches instances that have a contributor name type Id 1234567 | \n
| contributors.primary | \nterm | \ncontributors all "John" and contributors.primary==true | \nMatches instances that have a primary John contributor | \n
| contributors.authorityId | \nterm | \ncontributors.authorityId ==\n "81ae0f60-f2bc-450c-84c8-5a21096daed9"\n | \nMatches instances that have a contributor authorityId 81ae0f60-f2bc-450c-84c8-5a21096daed9\n | \n
| authorityId | \nterm | \nauthorityId == "81ae0f60-f2bc-450c-84c8-5a21096daed9" | \nMatches instances that have a contributor authorityId 81ae0f60-f2bc-450c-84c8-5a21096daed9\n | \n
| subjects | \nfull-text | \nsubjects all "Chemistry" | \nMatches instances that have a Chemistry subject | \n
| instanceTypeId | \nterm | \ninstanceTypeId == "123" | \nMatches instances with the 123 type | \n
| statusId | \nterm | \nstatusId == "123" | \nMatches instances with the 123 status | \n
| instanceFormatIds | \nterm | \ninstanceFormatIds == "123" | \nMatches instances with the 123 format id | \n
| languages | \nterm | \nlanguages == "eng" | \nMatches instances that have eng language | \n
| metadata.createdDate | \nterm | \nmetadata.createdDate > "2021-03-01T00:00:00.000+00:00"\n | \nMatches instances that were created after 2020-12-12 | \n
| metadata.updatedDate | \nterm | \nmetadata.updatedDate > "2020-12-12" | \nMatches instances that were updated after 2020-12-12 | \n
| modeOfIssuanceId | \nterm | \nmodeOfIssuanceId=="123" | \nMatches instances that have 123 mode of issuance | \n
| natureOfContentTermIds | \nterm | \nnatureOfContentTermIds=="123" | \nMatches instances that have 123 nature of content | \n
| publisher | \nfull-text | \npublisher all "Publisher of Ukraine" | \nMatches instances that have Publisher of Ukraine publisher | \n
| publication.place | \nfull-text | \npublication.place all "Ukraine" | \nMatches instances that have `Ukraine` in publication place | \n
| instanceTags | \nterm | \ninstanceTags=="important" | \nMatches instances that have important tag | \n
| classifications.classificationNumber | \nterm | \nclassifications.classificationNumber=="cl1" | \nMatches instances that have cl1 classification number | \n
| classifications.classificationTypeId | \nterm | \nclassifications.classificationTypeId == "123" | \nMatches instances that have classification type id 123 | \n
| electronicAccess | \nfull-text | \nelectronicAccess any "resource" | \nAn alias for electronicAccess fields - uri, linkText, publicNote\n | \n
| electronicAccess.uri | \nterm | \nelectronicAccess.uri="http://folio.org*" | \nSearch by electronic access URI | \n
| electronicAccess.linkText | \nfull-text | \nelectronicAccess.linkText="Folio website" | \nSearch by electronic access link text | \n
| electronicAccess.publicNote | \nfull-text | \nelectronicAccess.publicNote="a rare book" | \nSearch by electronic access public note | \n
| electronicAccess.relationshipId | \nterm | \nelectronicAccess.relationshipId="47d563ed-1ae2-41dc-97f8-8ebefce904f0" | \nSearch by electronic access relationship type ID | \n
| staffSuppress | \nterm | \nstaffSuppress==true | \nMatches instances that are staff suppressed | \n
| discoverySuppress | \nterm | \ndiscoverySuppress==true | \nMatches instances that are suppressed from discovery | \n
| publicNotes | \nfull-text | \npublicNotes all "public note" | \nMatches instances that have a public note (i.e. note.staffOnly is\n false)\n | \n
| administrativeNotes | \nfull-text | \nadministrativeNotes all "librarian note" | \nSearch by administrative notes | \n
| notes.note | \nfull-text | \nnotes.note all "librarian note" | \nSearch by instance notes (include staffOnly) | \n
| isbn | \nterm | \nisbn="1234*" | \nMatches instances that have an ISBN identifier with the given value | \n
| issn | \nterm | \nissn="1234*" | \nMatches instances that have an ISSN identifier with the given value | \n
| oclc | \nterm | \noclc="1234*" | \nMatches instances that have an OCLC identifier with the given value | \n
| lccn | \nterm | \nlccn = "LCCN" | \nMatches instances with the given lccn | \n
| canceledLccn | \nterm | \nlccn = "LCCN-OLD" | \nMatches instances with the given canceled lccn | \n
| normalizedClassificationNumber | \nterm | \nnormalizedClassificationNumber == "LCCN" | \nMatches instances with the given classification number (normalizes case,\n whitespaces, special characters, supports leading and trailing wildcard)\n | \n
| normalizedDate1 | \nterm | \nnormalizedDate1>=1990 | \nMatches instances with the given Date1 (normalizes alpha u characters) | \n
| classificationId | \nterm | \nclassificationId = "c4f60d7413158e9466856f4c0250d91d312f86cf" | \nMatches instances with the given classificationId | \n
| Option | \nSecondary sort | \nDescription | \n
|---|---|---|
| title | \nrelevancy | \nSort instances by title | \n
| contributors | \nrelevancy | \nSort instances by contributors | \n
| item.status.name | \ntitle | \nSort instances by status | \n
| normalizedDate1 | \nrelevancy | \nSort instances by normalizedDate1 | \n
| metadata.createdDate | \nrelevancy | \nSort instances by created date | \n
| metadata.updatedDate | \nrelevancy | \nSort instances by updated date | \n
| Option | \nType | \nExample | \nDescription | \n
|---|---|---|---|
| holdings.id | \nterm | \nholdings.id=="1234567" | \nMatches instances that have a holding with the id | \n
| holdings.sourceId | \nterm | \nholdings.sourceId=="FOLIO" | \nMatches instances that have a holding with the source FOLIO | \n
| holdings.holdingsTypeId | \nterm | \nholdings.holdingsTypeId=="1234567" | \nMatches instances that have a holding with the holdings type id 1234567\n | \n
| holdings.permanentLocationId | \nterm | \nholdings.permanentLocationId=="123765" | \nMatches instances that have holdings with given statisticalCodeId | \n
| holdings.statisticalCodeIds | \nterm | \nholdings.statisticalCodeIds=="123765" | \nMatches instances that have holdings with given permanentLocationId | \n
| holdings.discoverySuppress | \nterm | \nholdings.discoverySuppress==true | \nMatches instances that have holdings suppressed/not suppressed from discovery | \n
| holdings.hrid | \nterm | \nholdings.hrid=="hr10*3" | \nMatches instances that have a holding with given HRID | \n
| holdingsTags | \nterm | \nholdingsTags=="important" | \nMatches instances that have holdings with given tags | \n
| holdingsFullCallNumbers | \nterm | \nholdingsFullCallNumbers="cn*434" | \nMatches instances that have holdings with given call number string (prefix + call\n number + suffix)\n | \n
| holdingsNormalizedCallNumbers | \nterm | \nholdingsNormalizedCallNumbers="cn434" | \nMatches instances that have holdings with given call number and might not be\n formatted correctly\n | \n
| holdings.electronicAccess | \nfull-text | \nholdings.electronicAccess any "resource" | \nAn alias for electronicAccess fields - uri, linkText, publicNote\n | \n
| holdings.electronicAccess.uri | \nterm | \nholdings.electronicAccess.uri="http://folio.org*" | \nSearch by electronic access URI | \n
| holdings.electronicAccess.linkText | \nfull-text | \nholdings.electronicAccess.linkText="Folio website" | \nSearch by electronic access link text | \n
| holdings.electronicAccess.publicNote | \nfull-text | \nholdings.electronicAccess.publicNote="a rare book" | \nSearch by electronic access public note | \n
| holdings.electronicAccess.relationshipId | \nterm | \nholdings.electronicAccess.relationshipId="0b460e53-aee9-41a8-a447-0755cdac22ca" | \nSearch by holdings electronic access relationship type ID | \n
| holdings.administrativeNotes | \nfull-text | \nholdings.administrativeNotes all "librarian note" | \nSearch by holdings administrative notes | \n
| holdings.notes.note | \nfull-text | \nholdings.notes.note all "librarian note" | \nSearch by holdings notes | \n
| holdingsTypeId | \nterm | \nholdingsTypeId=="123" | \nSearch by holdings type id | \n
| holdingsPublicNotes | \nfull-text | \nholdingsPublicNotes all "public note" | \nSearch by holdings public notes | \n
| holdingsIdentifiers | \nterm | \nholdingsIdentifiers == "ho00000000006" | \nSearch by holdings Identifiers: holdings.id, holdings.hrid,\n holdings.formerIds\n | \n
| holdings.metadata.createdDate | \nterm | \nmetadata.createdDate > "2020-12-12" | \nMatches instances with holdings that were created after 2020-12-12 | \n
| holdings.metadata.updatedDate | \nterm | \nmetadata.updatedDate > "2020-12-12" | \nMatches instances with holdings that were updated after 2020-12-12 | \n
| Option | \nType | \nExample | \nDescription | \n
|---|---|---|---|
| item.id | \nterm | \nitem.id=="1234567" | \nMatches instances that have an item with the id | \n
| item.hrid | \nterm | \nitem.hrid=="it001" | \nMatches instances that have an item with the HRID | \n
| item.barcode | \nterm | \nitem.barcode=="10011" | \nMatches instances that have an item with the barcode | \n
| item.effectiveLocationId | \nterm | \nitem.effectiveLocationId=="1212" | \nMatches instances that have item with the effective location | \n
| item.statisticalCodeIds | \nterm | \nitem.statisticalCodeIds=="1212" | \nMatches instances that have item with the statistical code Id | \n
| item.status.name | \nterm | \nitem.status.name=="Available" | \nMatches instances that have item with given status | \n
| item.materialTypeId | \nterm | \nitem.materialTypeId="23434" | \nMatches instances that have item with given material type | \n
| item.discoverySuppress | \nterm | \nitem.discoverySuppress=true | \nMatches instances that have item suppressed/not suppressed from discovery | \n
| itemFullCallNumbers | \nterm | \nitemFullCallNumbers="cn*434" | \nMatches instances that have item with given call number string (prefix + call number\n + suffix)\n | \n
| itemNormalizedCallNumbers | \nterm | \nitemNormalizedCallNumbers="cn434" | \nMatches instances that have item with given call number and might not be formatted\n correctly\n | \n
| itemLevelCallNumberTypeId | \nterm | \n\n itemLevelCallNumberTypeId="81ae0f60-f2bc-450c-84c8-5a21096daed9"\n | \nMatches instances that have item with given call number type id | \n
| itemTags | \nterm | \nitemTags="important" | \nMatches instances that have item with given tag | \n
| item.electronicAccess | \nfull-text | \nitem.electronicAccess any "resource" | \nAn alias for electronicAccess fields - uri, linkText, publicNote\n | \n
| item.electronicAccess.uri | \nterm | \nitem.electronicAccess.uri="http://folio.org*" | \nSearch by electronic access URI | \n
| item.electronicAccess.linkText | \nfull-text | \nitem.electronicAccess.linkText="Folio website" | \nSearch by electronic access link text | \n
| item.electronicAccess.publicNote | \nfull-text | \nitem.electronicAccess.publicNote="a rare book" | \nSearch by electronic access public note | \n
| item.electronicAccess.relationshipId | \nterm | \nitem.electronicAccess.relationshipId="0b460e53-aee9-41a8-a447-0755cdac22ca" | \nSearch by item electronic access relationship type ID | \n
| item.administrativeNotes | \nfull-text | \nitem.administrativeNotes all "librarian note" | \nSearch by item administrative notes | \n
| item.notes.note | \nfull-text | \nitem.notes.note all "librarian note" | \nSearch by item notes and circulation notes | \n
| item.circulationNotes.note | \nfull-text | \nitem.circulationNotes.note all "circulation note" | \nSearch by item circulation notes | \n
| itemPublicNotes | \nfull-text | \nitemPublicNotes all "public note" | \nSearch by item public notes and circulation notes | \n
| itemIdentifiers | \nterm | \nitemIdentifiers all "81ae0f60-f2bc-450c-84c8-5a21096daed9"\n | \nSearch by item Identifiers: item.id, item.hrid, item.formerIds,\n item.accessionNumber, item.itemIdentifier\n | \n
| item.metadata.createdDate | \nterm | \nitem.metadata.createdDate > "2020-12-12" | \nMatches instances with item that were created after 2020-12-12 | \n
| item.metadata.updatedDate | \nterm | \nitem.metadata.updatedDate > "2020-12-12" | \nMatches instances with item that were updated after 2020-12-12 | \n
| callNumberType | \nterm | \ncallNumberType = "lc" | \nMatches instances with item that has call number with type Library of Congress classification. Supported values: lc, dewey, nlm, sudoc, other, local. | \n