Skip to main content

Search

Search entities

This endpoint allows searching for entities in the Foundry world based on a query string. Search world entities and compendiums using the native built-in search engine. No third-party modules required. Results are ranked by relevance: exact match, prefix match, substring match, word-prefix match, and subsequence match.

Required scope: search

Parameters

NameTypeRequiredSourceDescription
clientIdstringqueryClient ID for the Foundry world
querystringquerySearch query string (omit to browse all entities matching filter)
filterstringqueryFilter string — simple: filter="Actor"; compound: filter="documentType:Item,subType:weapon". Supported keys: documentType, subType, folder, package, resultType
excludeCompendiumsbooleanqueryExclude compendium entries from results (default: false — compendiums are included by default)
limitnumberqueryMaximum number of results to return (default: 200, max: 500)
minifiedbooleanqueryReturn minimal fields only — uuid, id, name, img, documentType (default: false)
ownedByUserIdstringqueryFilter results to only documents the specified Foundry user (ID or username) has Owner permission on
userIdstringquery, bodyFoundry user ID or username to scope permissions (omit for GM-level access)

Returns

object - Search results containing matching entities

Try It Out

Code Examples

const baseUrl = 'http://localhost:3011';
const path = '/search';
const params = {
clientId: 'qsl-integration-test',
filter: 'documentType:Actor',
excludeCompendiums: 'true'
};
const queryString = new URLSearchParams(params).toString();
const url = `${baseUrl}${path}?${queryString}`;

const response = await fetch(url, {
method: 'GET',
headers: {
'x-api-key': 'your-api-key-here'
}
});
const data = await response.json();
console.log(data);

Response

Status: 200

{
"type": "search-result",
"requestId": "search_1782956918505",
"filter": "documentType:Actor",
"results": [
0: {
"documentType": "Actor",
"folder": null,
"id": "w8wIGpE73y2AYrCo",
"name": "test-perrin (halfling monk)",
"package": null,
"packageName": null,
"subType": "character",
"uuid": "Actor.w8wIGpE73y2AYrCo",
"icon": "systems/dnd5e/tokens/heroes/MonkStaff.webp",
"journalLink": "@UUID[Actor.w8wIGpE73y2AYrCo]{test-perrin (halfling monk)}",
"tagline": "Actors Directory",
"formattedMatch": "test-perrin (halfling monk)",
"resultType": "WorldEntity"
},
1: {
"documentType": "Actor",
"folder": null,
"id": "V5OF1QXHjaIy6iO8",
"name": "Updated Test Actor",
"package": null,
"packageName": null,
"subType": "character",
"uuid": "Actor.V5OF1QXHjaIy6iO8",
"icon": "systems/dnd5e/tokens/heroes/MonkStaff.webp",
"journalLink": "@UUID[Actor.V5OF1QXHjaIy6iO8]{Updated Test Actor}",
"tagline": "Actors Directory",
"formattedMatch": "Updated Test Actor",
"resultType": "WorldEntity"
}
]
}