configureApiRequestAction
Configure API request actions in Spline 3D scenes to map response data to scene variables for dynamic content integration.
Input Schema
TableJSON Schema
| Name | Required | Description | Default |
|---|---|---|---|
| sceneId | Yes | Scene ID | |
| actionId | Yes | Action ID | |
| apiId | Yes | API configuration ID | |
| mappings | No | Response mappings |
Implementation Reference
- src/tools/action-tools.js:314-344 (handler)Handler function that updates the API request action configuration by sending a PUT request to the API with the provided apiId and optional mappings.async ({ sceneId, actionId, apiId, mappings }) => { try { const parameters = { apiId, ...(mappings && { mappings }), }; await apiClient.request('PUT', `/scenes/${sceneId}/actions/${actionId}`, { type: 'apiRequest', parameters }); return { content: [ { type: 'text', text: `API request action ${actionId} configured successfully` } ] }; } catch (error) { return { content: [ { type: 'text', text: `Error configuring API request action: ${error.message}` } ], isError: true }; }
- src/tools/action-tools.js:305-313 (schema)Zod schema defining the input parameters: sceneId, actionId, apiId, and optional mappings for response fields to variables.sceneId: z.string().min(1).describe('Scene ID'), actionId: z.string().min(1).describe('Action ID'), apiId: z.string().min(1).describe('API configuration ID'), mappings: z.array(z.object({ responseField: z.string().describe('Field from API response'), variableName: z.string().describe('Spline variable name'), variableType: z.enum(['string', 'number', 'boolean']).describe('Variable type'), })).optional().describe('Response mappings'), },
- src/tools/action-tools.js:303-346 (registration)Registration of the 'configureApiRequestAction' tool using server.tool(), including schema and handler.'configureApiRequestAction', { sceneId: z.string().min(1).describe('Scene ID'), actionId: z.string().min(1).describe('Action ID'), apiId: z.string().min(1).describe('API configuration ID'), mappings: z.array(z.object({ responseField: z.string().describe('Field from API response'), variableName: z.string().describe('Spline variable name'), variableType: z.enum(['string', 'number', 'boolean']).describe('Variable type'), })).optional().describe('Response mappings'), }, async ({ sceneId, actionId, apiId, mappings }) => { try { const parameters = { apiId, ...(mappings && { mappings }), }; await apiClient.request('PUT', `/scenes/${sceneId}/actions/${actionId}`, { type: 'apiRequest', parameters }); return { content: [ { type: 'text', text: `API request action ${actionId} configured successfully` } ] }; } catch (error) { return { content: [ { type: 'text', text: `Error configuring API request action: ${error.message}` } ], isError: true }; } } );