From Zero to Search
Guides
API Reference
App Search API Clients
Self-Managed App Search
Resources
Engines
Engines index documents and perform various search functions.
You may have multiple Engines per account - this endpoint will help you manage your various Engines.
Authentication
For authentication, theEngines endpoint requires...
- AHost Identifier:
[HOST_IDENTIFIER]
- The name of yourEngine:
[ENGINE]
- APrivate API Key:
[PRIVATE_API_KEY]
curl -X GET 'https://[HOST_IDENTIFIER].api.swiftype.com/api/as/v1/engines' \-H 'Content-Type: application/json' \-H 'Authorization: Bearer [PRIVATE_API_KEY]'
Retrieve an Engine
Retrieves an Engine byname
. Returns a JSON object containing aname
,type
andlanguage
property.
curl -X GET 'https://host-2376rb.api.swiftype.com/api/as/v1/engines/national-parks-demo' \-H 'Authorization: Bearer private-xxxxxxxxxxxxxxxxxxxx'
{ "name": "national-parks-demo", "type": "default", "language": "en"}
curl -X GET 'https://host-2376rb.api.swiftype.com/api/as/v1/engines/national-parks-demo' \-H 'Authorization: Bearer private-xxxxxxxxxxxxxxxxxxxx'
{ "name": "national-parks-demo", "type": "default", "language": "en"}
curl -X GET 'https://host-2376rb.api.swiftype.com/api/as/v1/engines/national-parks-demo' \-H 'Authorization: Bearer private-xxxxxxxxxxxxxxxxxxxx'
{ "name": "national-parks-demo", "type": "default", "language": "en"}
curl -X GET 'https://host-2376rb.api.swiftype.com/api/as/v1/engines/national-parks-demo' \-H 'Authorization: Bearer private-xxxxxxxxxxxxxxxxxxxx'
{ "name": "national-parks-demo", "type": "default", "language": "en"}
curl -X GET 'https://host-2376rb.api.swiftype.com/api/as/v1/engines/national-parks-demo' \-H 'Authorization: Bearer private-xxxxxxxxxxxxxxxxxxxx'
{ "name": "national-parks-demo", "type": "default", "language": "en"}
curl -X GET 'https://host-2376rb.api.swiftype.com/api/as/v1/engines/national-parks-demo' \-H 'Authorization: Bearer private-xxxxxxxxxxxxxxxxxxxx'
{ "name": "national-parks-demo", "type": "default", "language": "en"}
List Engines
Retrieves all Engines that the API Key is scoped to access.
- page
- optional
- JSON object containing
current
andsize
, wherecurrent
is the current page number andsize
is the page size. The maximum forsize
is25
, and be will truncated if a largersize
is requested. The default is the first page of engines with pagination at25
.
You have two options as to how you might send in your parameters:
JSON Object
A JSON object...
current
andsize
parameters. Expects the first page of results, with 20 documents per result.curl -X GET 'https://host-2376rb.api.swiftype.com/api/as/v1/engines' \-H 'Authorization: Bearer private-xxxxxxxxxxxxxxxxxxxx' \-d '{ "page": { "current": "1", "size": "20" }}'
{ "meta": { "page": { "current": 1, "total_pages": 1, "total_results": 1, "size": 20 } }, "results": [ { "name": "national-parks-demo", "type": "default", "language": null } ]}
current
andsize
parameters. Expects the first page of results, with 20 documents per result.curl -X GET 'https://host-2376rb.api.swiftype.com/api/as/v1/engines' \-H 'Authorization: Bearer private-xxxxxxxxxxxxxxxxxxxx' \-d '{ "page": { "current": "1", "size": "20" }}'
{ "meta": { "page": { "current": 1, "total_pages": 1, "total_results": 1, "size": 20 } }, "results": [ { "name": "national-parks-demo", "type": "default", "language": null } ]}
current
andsize
parameters. Expects the first page of results, with 20 documents per result.curl -X GET 'https://host-2376rb.api.swiftype.com/api/as/v1/engines' \-H 'Authorization: Bearer private-xxxxxxxxxxxxxxxxxxxx' \-d '{ "page": { "current": "1", "size": "20" }}'
{ "meta": { "page": { "current": 1, "total_pages": 1, "total_results": 1, "size": 20 } }, "results": [ { "name": "national-parks-demo", "type": "default", "language": null } ]}
current
andsize
parameters. Expects the first page of results, with 20 documents per result.curl -X GET 'https://host-2376rb.api.swiftype.com/api/as/v1/engines' \-H 'Authorization: Bearer private-xxxxxxxxxxxxxxxxxxxx' \-d '{ "page": { "current": "1", "size": "20" }}'
{ "meta": { "page": { "current": 1, "total_pages": 1, "total_results": 1, "size": 20 } }, "results": [ { "name": "national-parks-demo", "type": "default", "language": null } ]}
current
andsize
parameters. Expects the first page of results, with 20 documents per result.curl -X GET 'https://host-2376rb.api.swiftype.com/api/as/v1/engines' \-H 'Authorization: Bearer private-xxxxxxxxxxxxxxxxxxxx' \-d '{ "page": { "current": "1", "size": "20" }}'
{ "meta": { "page": { "current": 1, "total_pages": 1, "total_results": 1, "size": 20 } }, "results": [ { "name": "national-parks-demo", "type": "default", "language": null } ]}
current
andsize
parameters. Expects the first page of results, with 20 documents per result.curl -X GET 'https://host-2376rb.api.swiftype.com/api/as/v1/engines' \-H 'Authorization: Bearer private-xxxxxxxxxxxxxxxxxxxx' \-d '{ "page": { "current": "1", "size": "20" }}'
{ "meta": { "page": { "current": 1, "total_pages": 1, "total_results": 1, "size": 20 } }, "results": [ { "name": "national-parks-demo", "type": "default", "language": null } ]}
Query Parameters
Rails-style query parameters:
current
andsize
parameters. Expects the first page of results, with 20 documents per result.curl -X GET 'https://host-2376rb.api.swiftype.com/api/as/v1/engines?page[size]=20&page[current]=1' \-H 'Authorization: Bearer private-xxxxxxxxxxxxxxxxxxxx'
{ "meta": { "page": { "current": 1, "total_pages": 1, "total_results": 1, "size": 20 } }, "results": [ { "name": "national-parks-demo", "type": "default", "language": null } ]}
current
andsize
parameters. Expects the first page of results, with 20 documents per result.curl -X GET 'https://host-2376rb.api.swiftype.com/api/as/v1/engines?page[size]=20&page[current]=1' \-H 'Authorization: Bearer private-xxxxxxxxxxxxxxxxxxxx'
{ "meta": { "page": { "current": 1, "total_pages": 1, "total_results": 1, "size": 20 } }, "results": [ { "name": "national-parks-demo", "type": "default", "language": null } ]}
current
andsize
parameters. Expects the first page of results, with 20 documents per result.curl -X GET 'https://host-2376rb.api.swiftype.com/api/as/v1/engines?page[size]=20&page[current]=1' \-H 'Authorization: Bearer private-xxxxxxxxxxxxxxxxxxxx'
{ "meta": { "page": { "current": 1, "total_pages": 1, "total_results": 1, "size": 20 } }, "results": [ { "name": "national-parks-demo", "type": "default", "language": null } ]}
current
andsize
parameters. Expects the first page of results, with 20 documents per result.curl -X GET 'https://host-2376rb.api.swiftype.com/api/as/v1/engines?page[size]=20&page[current]=1' \-H 'Authorization: Bearer private-xxxxxxxxxxxxxxxxxxxx'
{ "meta": { "page": { "current": 1, "total_pages": 1, "total_results": 1, "size": 20 } }, "results": [ { "name": "national-parks-demo", "type": "default", "language": null } ]}
current
andsize
parameters. Expects the first page of results, with 20 documents per result.curl -X GET 'https://host-2376rb.api.swiftype.com/api/as/v1/engines?page[size]=20&page[current]=1' \-H 'Authorization: Bearer private-xxxxxxxxxxxxxxxxxxxx'
{ "meta": { "page": { "current": 1, "total_pages": 1, "total_results": 1, "size": 20 } }, "results": [ { "name": "national-parks-demo", "type": "default", "language": null } ]}
current
andsize
parameters. Expects the first page of results, with 20 documents per result.curl -X GET 'https://host-2376rb.api.swiftype.com/api/as/v1/engines?page[size]=20&page[current]=1' \-H 'Authorization: Bearer private-xxxxxxxxxxxxxxxxxxxx'
{ "meta": { "page": { "current": 1, "total_pages": 1, "total_results": 1, "size": 20 } }, "results": [ { "name": "national-parks-demo", "type": "default", "language": null } ]}
Create an Engine
Creates a new Engine object. Returns a JSON object with aname
,type
andlanguage
property.
Reserved names include:new
,collection
,create_engine
, andengine_limit
.
- name
- required
- Name of the Engine. Can only contain lowercase letters, numbers, and hyphens.
- language
- optional
- The language associated with a given Engine. Will default toUniversal, which will return
null
. To specify a language, see thelist of supported languages.
curl -X POST 'https://host-2376rb.api.swiftype.com/api/as/v1/engines' \-H 'Content-Type: application/json' \-H 'Authorization: Bearer private-xxxxxxxxxxxxxxxxxxxx' \-d '{ "name": "national-parks-demo"}'
{ "name": "national-parks-demo", "type": "default", "language": null}
curl -X POST 'https://host-2376rb.api.swiftype.com/api/as/v1/engines' \-H 'Content-Type: application/json' \-H 'Authorization: Bearer private-xxxxxxxxxxxxxxxxxxxx' \-d '{ "name": "national-parks-demo"}'
{ "name": "national-parks-demo", "type": "default", "language": null}
curl -X POST 'https://host-2376rb.api.swiftype.com/api/as/v1/engines' \-H 'Content-Type: application/json' \-H 'Authorization: Bearer private-xxxxxxxxxxxxxxxxxxxx' \-d '{ "name": "national-parks-demo"}'
{ "name": "national-parks-demo", "type": "default", "language": null}
curl -X POST 'https://host-2376rb.api.swiftype.com/api/as/v1/engines' \-H 'Content-Type: application/json' \-H 'Authorization: Bearer private-xxxxxxxxxxxxxxxxxxxx' \-d '{ "name": "national-parks-demo"}'
{ "name": "national-parks-demo", "type": "default", "language": null}
curl -X POST 'https://host-2376rb.api.swiftype.com/api/as/v1/engines' \-H 'Content-Type: application/json' \-H 'Authorization: Bearer private-xxxxxxxxxxxxxxxxxxxx' \-d '{ "name": "national-parks-demo"}'
{ "name": "national-parks-demo", "type": "default", "language": null}
curl -X POST 'https://host-2376rb.api.swiftype.com/api/as/v1/engines' \-H 'Content-Type: application/json' \-H 'Authorization: Bearer private-xxxxxxxxxxxxxxxxxxxx' \-d '{ "name": "national-parks-demo"}'
{ "name": "national-parks-demo", "type": "default", "language": null}
curl -X POST 'https://host-2376rb.api.swiftype.com/api/as/v1/engines' \-H 'Content-Type: application/json' \-H 'Authorization: Bearer private-xxxxxxxxxxxxxxxxxxxx' \-d '{ "name": "national-parks-demo", "language": "ko"}'
{ "name": "korean-example", "type": "default", "language": "ko"}
curl -X POST 'https://host-2376rb.api.swiftype.com/api/as/v1/engines' \-H 'Content-Type: application/json' \-H 'Authorization: Bearer private-xxxxxxxxxxxxxxxxxxxx' \-d '{ "name": "national-parks-demo", "language": "ko"}'
{ "name": "korean-example", "type": "default", "language": "ko"}
curl -X POST 'https://host-2376rb.api.swiftype.com/api/as/v1/engines' \-H 'Content-Type: application/json' \-H 'Authorization: Bearer private-xxxxxxxxxxxxxxxxxxxx' \-d '{ "name": "national-parks-demo", "language": "ko"}'
{ "name": "korean-example", "type": "default", "language": "ko"}
curl -X POST 'https://host-2376rb.api.swiftype.com/api/as/v1/engines' \-H 'Content-Type: application/json' \-H 'Authorization: Bearer private-xxxxxxxxxxxxxxxxxxxx' \-d '{ "name": "national-parks-demo", "language": "ko"}'
{ "name": "korean-example", "type": "default", "language": "ko"}
curl -X POST 'https://host-2376rb.api.swiftype.com/api/as/v1/engines' \-H 'Content-Type: application/json' \-H 'Authorization: Bearer private-xxxxxxxxxxxxxxxxxxxx' \-d '{ "name": "national-parks-demo", "language": "ko"}'
{ "name": "korean-example", "type": "default", "language": "ko"}
curl -X POST 'https://host-2376rb.api.swiftype.com/api/as/v1/engines' \-H 'Content-Type: application/json' \-H 'Authorization: Bearer private-xxxxxxxxxxxxxxxxxxxx' \-d '{ "name": "national-parks-demo", "language": "ko"}'
{ "name": "korean-example", "type": "default", "language": "ko"}
Delete an Engine
Delete an Engine by name. Returns a JSON object with adeleted
property denoting whether the engine was successfully deleted.
curl -X DELETE 'https://host-2376rb.api.swiftype.com/api/as/v1/engines/national-parks-demo' \-H 'Authorization: Bearer private-xxxxxxxxxxxxxxxxxxxx'
{ "deleted": true}
curl -X DELETE 'https://host-2376rb.api.swiftype.com/api/as/v1/engines/national-parks-demo' \-H 'Authorization: Bearer private-xxxxxxxxxxxxxxxxxxxx'
{ "deleted": true}
curl -X DELETE 'https://host-2376rb.api.swiftype.com/api/as/v1/engines/national-parks-demo' \-H 'Authorization: Bearer private-xxxxxxxxxxxxxxxxxxxx'
{ "deleted": true}
curl -X DELETE 'https://host-2376rb.api.swiftype.com/api/as/v1/engines/national-parks-demo' \-H 'Authorization: Bearer private-xxxxxxxxxxxxxxxxxxxx'
{ "deleted": true}
curl -X DELETE 'https://host-2376rb.api.swiftype.com/api/as/v1/engines/national-parks-demo' \-H 'Authorization: Bearer private-xxxxxxxxxxxxxxxxxxxx'
{ "deleted": true}
curl -X DELETE 'https://host-2376rb.api.swiftype.com/api/as/v1/engines/national-parks-demo' \-H 'Authorization: Bearer private-xxxxxxxxxxxxxxxxxxxx'
{ "deleted": true}
Supported Languages
Engines can be optimized for the following languages:
Language | Language Code,ISO 639-1 andISO 3166-1. |
"Brazilian Portuguese" | pt-br |
“Chinese" | zh |
"Danish"" | da |
“Dutch" | nl |
“English" | en |
"French" | fr |
“German" | de |
"Italian" | it |
"Japanese" | ja |
"Korean | ko |
“Portuguese" | pt |
“Russian" | ru |
“Spanish" | es |
“Thai" | th |
"Universal" | null |
Errors
The endpoint will return an error if:
- The API Key does not have read permissions for the requested Engine.
- The requested Engine does not exist.
- The Engine object is not well formed.
- The API Key does not have permissions to create an Engine.
- The Engine already exists and so cannot be created.
What's Next?
AnEngine is the beating heart of the search experience. Now you may want to learn more about how you can add, destroy and update, theDocuments - the life-blood - within them. If you want a deep look into how users are interacting with your engines, then theAnalytics andClickthrough endpoints are worth discovering.
Stuck? Looking for help?Contact support or check out theApp Search community forum!