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
| Name | Type | Required | Source | Description |
|---|---|---|---|---|
| uuid | string | ✓ | body, query | UUID of the actor or token to query |
| clientId | string | query | Client ID for the Foundry world | |
| userId | string | query, body | Foundry user ID or username to scope permissions (omit for GM-level access) |
Returns
array - Array of active effects
Try It Out
Code Examples
- JavaScript
- cURL
- Python
- TypeScript
- Emojicode
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);
curl -X GET 'http://localhost:3010/effects?clientId=fvtt_099ad17ea199e7e3&uuid=Actor.S6Nh5SfYPcyyUhRg' \
-H "x-api-key: your-api-key-here"
import requests
base_url = 'http://localhost:3010'
path = '/effects'
params = {
'clientId': 'fvtt_099ad17ea199e7e3',
'uuid': 'Actor.S6Nh5SfYPcyyUhRg'
}
url = f'{base_url}{path}'
response = requests.get(
url,
params=params,
headers={
'x-api-key': 'your-api-key-here'
}
)
data = response.json()
print(data)
import axios from 'axios';
(async () => {
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 axios({
method: 'get',
headers: {
'x-api-key': 'your-api-key-here'
},
url
});
const data = response.data;
console.log(data);
})();
📦 sockets 🏠
💭 Emojicode HTTP Client
💭 Compile: emojicodec example.🍇 -o example
💭 Run: ./example
🏁 🍇
💭 Connection settings
🔤localhost🔤 ➡️ host
3010 ➡️ port
🔤/effects🔤 ➡️ path
💭 Query parameters
🔤clientId=fvtt_099ad17ea199e7e3🔤 ➡️ clientId
🔤uuid=Actor.S6Nh5SfYPcyyUhRg🔤 ➡️ uuid
🔤?🧲clientId🧲&🧲uuid🧲🔤 ➡️ queryString
💭 Build HTTP request
🔤GET /effects🧲queryString🧲 HTTP/1.1❌r❌nHost: localhost:3010❌r❌nx-api-key: your-api-key-here❌r❌n❌r❌n🔤 ➡️ request
💭 Connect and send
🍺 🆕📞 host port❗ ➡️ socket
🍺 💬 socket 📇 request❗❗
💭 Read and print response
🍺 👂 socket 4096❗ ➡️ data
😀 🍺 🔡 data❗❗
💭 Close socket
🚪 socket❗
🍉
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
| Name | Type | Required | Source | Description |
|---|---|---|---|---|
| clientId | string | query | Client ID for the Foundry world | |
| userId | string | query, body | Foundry 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
- JavaScript
- cURL
- Python
- TypeScript
- Emojicode
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);
curl -X GET 'http://localhost:3010/effects/list?clientId=fvtt_099ad17ea199e7e3' \
-H "x-api-key: your-api-key-here"
import requests
base_url = 'http://localhost:3010'
path = '/effects/list'
params = {
'clientId': 'fvtt_099ad17ea199e7e3'
}
url = f'{base_url}{path}'
response = requests.get(
url,
params=params,
headers={
'x-api-key': 'your-api-key-here'
}
)
data = response.json()
print(data)
import axios from 'axios';
(async () => {
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 axios({
method: 'get',
headers: {
'x-api-key': 'your-api-key-here'
},
url
});
const data = response.data;
console.log(data);
})();
📦 sockets 🏠
💭 Emojicode HTTP Client
💭 Compile: emojicodec example.🍇 -o example
💭 Run: ./example
🏁 🍇
💭 Connection settings
🔤localhost🔤 ➡️ host
3010 ➡️ port
🔤/effects/list🔤 ➡️ path
💭 Query parameters
🔤clientId=fvtt_099ad17ea199e7e3🔤 ➡️ clientId
🔤?🧲clientId🧲🔤 ➡️ queryString
💭 Build HTTP request
🔤GET /effects/list🧲queryString🧲 HTTP/1.1❌r❌nHost: localhost:3010❌r❌nx-api-key: your-api-key-here❌r❌n❌r❌n🔤 ➡️ request
💭 Connect and send
🍺 🆕📞 host port❗ ➡️ socket
🍺 💬 socket 📇 request❗❗
💭 Read and print response
🍺 👂 socket 4096❗ ➡️ data
😀 🍺 🔡 data❗❗
💭 Close socket
🚪 socket❗
🍉
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
| Name | Type | Required | Source | Description |
|---|---|---|---|---|
| uuid | string | ✓ | body, query | UUID of the actor or token to add the effect to |
| clientId | string | query | Client ID for the Foundry world | |
| statusId | string | body, query | Standard status condition ID (e.g., "poisoned", "blinded", "prone") | |
| effectData | object | body, query | Custom ActiveEffect data object (name, icon, duration, changes) | |
| userId | string | query, body | Foundry user ID or username to scope permissions (omit for GM-level access) |
Returns
object - Result of the add operation
Try It Out
Code Examples
- JavaScript
- cURL
- Python
- TypeScript
- Emojicode
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);
curl -X POST 'http://localhost:3010/effects?clientId=fvtt_099ad17ea199e7e3' \
-H "x-api-key: your-api-key-here" \
-H "Content-Type: application/json" \
-d '{"uuid":"Actor.S6Nh5SfYPcyyUhRg","effectData":{"name":"Test Effect","icon":"icons/svg/aura.svg","changes":[]}}'
import requests
base_url = 'http://localhost:3010'
path = '/effects'
params = {
'clientId': 'fvtt_099ad17ea199e7e3'
}
url = f'{base_url}{path}'
response = requests.post(
url,
params=params,
headers={
'x-api-key': 'your-api-key-here',
'Content-Type': 'application/json'
},
json={
"uuid": "Actor.S6Nh5SfYPcyyUhRg",
"effectData": {
"name": "Test Effect",
"icon": "icons/svg/aura.svg",
"changes": []
}
}
)
data = response.json()
print(data)
import axios from 'axios';
(async () => {
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 axios({
method: 'post',
headers: {
'x-api-key': 'your-api-key-here',
'Content-Type': 'application/json'
},
url,
data: {
"uuid": "Actor.S6Nh5SfYPcyyUhRg",
"effectData": {
"name": "Test Effect",
"icon": "icons/svg/aura.svg",
"changes": []
}
}
});
const data = response.data;
console.log(data);
})();
📦 sockets 🏠
💭 Emojicode HTTP Client
💭 Compile: emojicodec example.🍇 -o example
💭 Run: ./example
🏁 🍇
💭 Connection settings
🔤localhost🔤 ➡️ host
3010 ➡️ port
🔤/effects🔤 ➡️ path
💭 Query parameters
🔤clientId=fvtt_099ad17ea199e7e3🔤 ➡️ clientId
🔤?🧲clientId🧲🔤 ➡️ queryString
💭 Request body
🔤{"uuid":"Actor.S6Nh5SfYPcyyUhRg","effectData":{"name":"Test Effect","icon":"icons/svg/aura.svg","changes":[]}}🔤 ➡️ body
💭 Build HTTP request
🔤POST /effects🧲queryString🧲 HTTP/1.1❌r❌nHost: localhost:3010❌r❌nx-api-key: your-api-key-here❌r❌nContent-Type: application/json❌r❌nContent-Length: 110❌r❌n❌r❌n🧲body🧲🔤 ➡️ request
💭 Connect and send
🍺 🆕📞 host port❗ ➡️ socket
🍺 💬 socket 📇 request❗❗
💭 Read and print response
🍺 👂 socket 4096❗ ➡️ data
😀 🍺 🔡 data❗❗
💭 Close socket
🚪 socket❗
🍉
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
| Name | Type | Required | Source | Description |
|---|---|---|---|---|
| uuid | string | ✓ | body, query | UUID of the actor or token to remove the effect from |
| clientId | string | query | Client ID for the Foundry world | |
| effectId | string | body, query | The ActiveEffect document ID to remove | |
| statusId | string | body, query | Standard status condition ID to remove (e.g., "poisoned") | |
| userId | string | query, body | Foundry user ID or username to scope permissions (omit for GM-level access) |
Returns
object - Result of the remove operation
Try It Out
Code Examples
- JavaScript
- cURL
- Python
- TypeScript
- Emojicode
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);
curl -X DELETE 'http://localhost:3010/effects?clientId=fvtt_099ad17ea199e7e3' \
-H "x-api-key: your-api-key-here" \
-H "Content-Type: application/json" \
-d '{"uuid":"Actor.S6Nh5SfYPcyyUhRg","effectId":"5vNMiR0j5G43FQDq"}'
import requests
base_url = 'http://localhost:3010'
path = '/effects'
params = {
'clientId': 'fvtt_099ad17ea199e7e3'
}
url = f'{base_url}{path}'
response = requests.delete(
url,
params=params,
headers={
'x-api-key': 'your-api-key-here',
'Content-Type': 'application/json'
},
json={
"uuid": "Actor.S6Nh5SfYPcyyUhRg",
"effectId": "5vNMiR0j5G43FQDq"
}
)
data = response.json()
print(data)
import axios from 'axios';
(async () => {
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 axios({
method: 'delete',
headers: {
'x-api-key': 'your-api-key-here',
'Content-Type': 'application/json'
},
url,
data: {
"uuid": "Actor.S6Nh5SfYPcyyUhRg",
"effectId": "5vNMiR0j5G43FQDq"
}
});
const data = response.data;
console.log(data);
})();
📦 sockets 🏠
💭 Emojicode HTTP Client
💭 Compile: emojicodec example.🍇 -o example
💭 Run: ./example
🏁 🍇
💭 Connection settings
🔤localhost🔤 ➡️ host
3010 ➡️ port
🔤/effects🔤 ➡️ path
💭 Query parameters
🔤clientId=fvtt_099ad17ea199e7e3🔤 ➡️ clientId
🔤?🧲clientId🧲🔤 ➡️ queryString
💭 Request body
🔤{"uuid":"Actor.S6Nh5SfYPcyyUhRg","effectId":"5vNMiR0j5G43FQDq"}🔤 ➡️ body
💭 Build HTTP request
🔤DELETE /effects🧲queryString🧲 HTTP/1.1❌r❌nHost: localhost:3010❌r❌nx-api-key: your-api-key-here❌r❌nContent-Type: application/json❌r❌nContent-Length: 63❌r❌n❌r❌n🧲body🧲🔤 ➡️ request
💭 Connect and send
🍺 🆕📞 host port❗ ➡️ socket
🍺 💬 socket 📇 request❗❗
💭 Read and print response
🍺 👂 socket 4096❗ ➡️ data
😀 🍺 🔡 data❗❗
💭 Close socket
🚪 socket❗
🍉
Response
Status: 200
{ "type": "remove-effect-result", "requestId": "remove-effect_1778896442593", "data": { "uuid": "Actor.S6Nh5SfYPcyyUhRg", "removedEffectId": "5vNMiR0j5G43FQDq" }}