Search Core is a networking library for interacting with the Yext Search API.
- Works in both the browser and Node.js
- 100% TypeScript, with detailed request and response models
- Compatible with both CommonJS and ES6 imports
- Offers a ponyfilled ES5 bundle which doesn't pollute the global namespace
For a full getting started walk through, view our official Hitchhiker Guide.
First, install Search-core via npm:
npm install @yext/search-core
Next, import and initialize the core library in your application.
The apiKey and experienceKey will come from your Search experience on yext.com. You can signup for a free trial at https://www.yext.com/free-trial/.
import { provideCore } from '@yext/search-core';
const core = provideCore({
apiKey: '<your api key>',
experienceKey: '<one of your experience keys>',
locale: 'en',
experienceVersion: 'PRODUCTION',
});
To use the library with Node, use the following import instead:
const { provideCore } = require('@yext/search-core');
Now that the core is initialized, let's run a search on an "FAQs" vertical.
core.verticalSearch({
verticalKey: 'FAQs',
query: 'What is Yext Search?',
}).then(results => {
// Do something with the search results
}).catch(err => {
// Handle errors thrown by the core library
});
- The ESM (ES6) build will be used automatically by module bundlers that support it (e.g. Webpack). It can be specified directly by importing
@yext/search-core/lib/esm
- The CommonJS build will be used automatically by Node, but it can be specified directly by importing
@yext/search-core/lib/commonjs
- The Legacy (UMD) bundle should be used for supporting IE11 out of the box. It is compiled to ES5 and it contains the necessary ponyfills for IE11. If your application already contains polyfills, we recommend bundling one of the other builds in order to prevent your application from including duplicate polyfills. This bundle can be specified by importing
@yext/search-core/legacy
And that's it! See our documentation for a full list of supported API calls.
Yext Search-core is an open-sourced library licensed under the BSD-3 License.
The licenses of our 3rd party dependencies are collected here: THIRD-PARTY-NOTICES.