Skip to main content

Effects

GET /effects

Get all active effects on an actor or token

Returns the collection of ActiveEffect documents currently applied to the specified actor or token.

Required scope: effects:read

Parameters

NameTypeRequiredSourceDescription
uuidstringbody, queryUUID of the actor or token to query
clientIdstringqueryClient ID for the Foundry world
userIdstringquery, bodyFoundry user ID or username to scope permissions (omit for GM-level access)

Returns

array - Array of active effects

Try It Out

Code Examples

const baseUrl = 'http://localhost:3010';
const path = '/effects';
const params = {
clientId: 'fvtt_099ad17ea199e7e3',
uuid: 'Actor.S6Nh5SfYPcyyUhRg'
};
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": "get-effects-result",
"requestId": "get-effects_1778896442402",
"data": {
"uuid": "Actor.S6Nh5SfYPcyyUhRg",
"effects": []
}
}

GET /effects/list

List all available status effects

Returns all status effects defined by the game system's configuration. Useful for discovering valid statusId values for the add/remove effect endpoints.

Required scope: effects:read

Parameters

NameTypeRequiredSourceDescription
clientIdstringqueryClient ID for the Foundry world
userIdstringquery, bodyFoundry user ID or username to scope permissions (omit for GM-level access)

Returns

array - Array of available status effects with id, name, and icon

Try It Out

Code Examples

const baseUrl = 'http://localhost:3010';
const path = '/effects/list';
const params = {
clientId: 'fvtt_099ad17ea199e7e3'
};
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": "get-status-effects-result",
"requestId": "get-status-effects_1778896442398",
"data": {
"effects": [
0: { 3 keys },
1: { 3 keys },
2: { 3 keys },
3: { 3 keys },
4: { 3 keys },
5: { 3 keys },
6: { 3 keys },
7: { 3 keys },
8: { 3 keys },
9: { 3 keys },
10: { 3 keys },
11: { 3 keys },
12: { 3 keys },
13: { 3 keys },
14: { 3 keys },
15: { 3 keys },
16: { 3 keys },
17: { 3 keys },
18: { 3 keys },
19: { 3 keys },
20: { 3 keys },
21: { 3 keys },
22: { 3 keys },
23: { 3 keys },
24: { 3 keys },
25: { 3 keys },
26: { 3 keys },
27: { 3 keys },
28: { 3 keys },
29: { 3 keys },
30: { 3 keys },
31: { 3 keys },
32: { 3 keys },
33: { 3 keys },
34: { 3 keys },
35: { 3 keys },
36: { 3 keys },
37: { 3 keys },
38: { 3 keys },
39: { 3 keys },
40: { 3 keys },
41: { 3 keys },
42: { 3 keys }
]
}
}

POST /effects

Add an active effect to an actor or token

Adds a status condition (by statusId) or a custom ActiveEffect (via effectData) to the specified actor or token.

Required scope: effects:write

Parameters

NameTypeRequiredSourceDescription
uuidstringbody, queryUUID of the actor or token to add the effect to
clientIdstringqueryClient ID for the Foundry world
statusIdstringbody, queryStandard status condition ID (e.g., "poisoned", "blinded", "prone")
effectDataobjectbody, queryCustom ActiveEffect data object (name, icon, duration, changes)
userIdstringquery, bodyFoundry user ID or username to scope permissions (omit for GM-level access)

Returns

object - Result of the add operation

Try It Out

Code Examples

const baseUrl = 'http://localhost:3010';
const path = '/effects';
const params = {
clientId: 'fvtt_099ad17ea199e7e3'
};
const queryString = new URLSearchParams(params).toString();
const url = `${baseUrl}${path}?${queryString}`;

const response = await fetch(url, {
method: 'POST',
headers: {
'x-api-key': 'your-api-key-here',
'Content-Type': 'application/json'
},
body: JSON.stringify({
"uuid": "Actor.S6Nh5SfYPcyyUhRg",
"effectData": {
"name": "Test Effect",
"icon": "icons/svg/aura.svg",
"changes": []
}
})
});
const data = await response.json();
console.log(data);

Response

Status: 200

{
"type": "add-effect-result",
"requestId": "add-effect_1778896442409",
"data": {
"uuid": "Actor.S6Nh5SfYPcyyUhRg",
"effect": {
"id": "5vNMiR0j5G43FQDq",
"uuid": "Actor.S6Nh5SfYPcyyUhRg.ActiveEffect.5vNMiR0j5G43FQDq",
"name": "Test Effect",
"icon": "icons/svg/aura.svg",
"statuses": []
}
}
}

DELETE /effects

Remove an active effect from an actor or token

Removes an effect by its document ID (effectId) or by status condition identifier (statusId).

Required scope: effects:write

Parameters

NameTypeRequiredSourceDescription
uuidstringbody, queryUUID of the actor or token to remove the effect from
clientIdstringqueryClient ID for the Foundry world
effectIdstringbody, queryThe ActiveEffect document ID to remove
statusIdstringbody, queryStandard status condition ID to remove (e.g., "poisoned")
userIdstringquery, bodyFoundry user ID or username to scope permissions (omit for GM-level access)

Returns

object - Result of the remove operation

Try It Out

Code Examples

const baseUrl = 'http://localhost:3010';
const path = '/effects';
const params = {
clientId: 'fvtt_099ad17ea199e7e3'
};
const queryString = new URLSearchParams(params).toString();
const url = `${baseUrl}${path}?${queryString}`;

const response = await fetch(url, {
method: 'DELETE',
headers: {
'x-api-key': 'your-api-key-here',
'Content-Type': 'application/json'
},
body: JSON.stringify({
"uuid": "Actor.S6Nh5SfYPcyyUhRg",
"effectId": "5vNMiR0j5G43FQDq"
})
});
const data = await response.json();
console.log(data);

Response

Status: 200

{
"type": "remove-effect-result",
"requestId": "remove-effect_1778896442593",
"data": {
"uuid": "Actor.S6Nh5SfYPcyyUhRg",
"removedEffectId": "5vNMiR0j5G43FQDq"
}
}