Skip to main content
Glama
api-endpoints-discovery-phase1.3.md•3.88 kB
# API Endpoints Discovery - Phase 1.3 **Date**: June 28, 2025 **Status**: COMPLETE - Critical Endpoints Discovered **Goal**: Document composition creation/saving API endpoints for direct HTTP implementation ## šŸŽÆ **BREAKTHROUGH: Composition Saving API Discovered** ### **Primary Endpoint - Composition Management** ``` PUT https://api.digitalpages.com.br/storage/v1.0/content?uid={CONTENT_UID}&manual_project_uid=36c92686-c494-ec11-a22a-dc984041c95d ``` **Method**: PUT (update), likely POST for creation **Content-Type**: `multipart/form-data` **Authentication**: Bearer JWT token ### **Request Structure** ``` Content-Disposition: form-data; name="file"; filename="composition.rdpcomposer" Content-Type: digitalpages/composer {JSON_PAYLOAD} ``` ### **JSON Payload Structure** ```json { "version": "1.1", "metadata": { "title": "Test API Endpoints", "description": "", "thumb": null, "tags": [] }, "interface": { "content_language": "pt_br", "index_option": "buttons", "font_family": "Lato", "show_summary": "disabled", "finish_btn": "disabled" }, "structure": [ { "id": "1e74a4f0-53f1-11f0-b228-a70213bbc8c8", "type": "text-1", "content_title": null, "background_color": "#FFFFFF", "padding_top": 0, "padding_bottom": 0, "content": "<p>Sample text content</p>" } ] } ``` ### **Response Structure** ```json { "uid": "H4sIAAAAAAAAAwBiAZ3-AwAAAUEGAAAAADE0...", "success": true, "document": { "content_uid": "H4sIAAAAAAAAAwBiAZ3-AwAAAUEGAAAAADE0...", "content_type": "digitalpages/composer", "project_uid": "36c92686-c494-ec11-a22a-dc984041c95d", "user_uid": "5fb3dec6-c494-ec11-a22a-dc984041c95d", "created_at": "2025-06-28T07:19:59Z", "last_modified": "2025-06-28T07:27:48Z" } } ``` ## **Supporting Endpoints** ### **Template Search** ``` GET /storage/v1.0/search?filter=(content_type eq 'application/rdpcomposer_template_element_text_1') and (project_uid eq '36c92686-c494-ec11-a22a-dc984041c95d')&top=1000 ``` ### **Authentication Endpoints (Working)** ``` GET /auth/v1.0/user/me GET /auth/v1.0/projects ``` ### **Content Search** ``` GET /storage/v1.0/search?filter=(content_type eq 'digitalpages/composer-templates') and (project_uid eq '36c92686-c494-ec11-a22a-dc984041c95d') GET /storage/v1.0/search?filter=(content_type eq 'digitalpages/composer' or content_type eq 'digitalpages/audiobook') and (project_uid eq '36c92686-c494-ec11-a22a-dc984041c95d')&orderBy=last_modified desc ``` ## **Widget Types Mapping** ### **Text Widget (text-1)** ```json { "id": "generated-uuid", "type": "text-1", "content_title": null, "background_color": "#FFFFFF", "padding_top": 0, "padding_bottom": 0, "content": "<p>HTML content</p>" } ``` ## **Implementation Requirements** ### **Direct HTTP Composition Creation** 1. **Authentication**: Bearer JWT token from our analysis 2. **Project UID**: `36c92686-c494-ec11-a22a-dc984041c95d` 3. **Content Type**: `digitalpages/composer` 4. **Multipart Upload**: File-like structure required ### **Widget Addition Process** 1. Build JSON structure with metadata + interface + structure array 2. Add widget objects to `structure` array 3. POST/PUT to storage endpoint 4. Parse response for content UID ## **Critical Success** āœ… **EROFS Browser Automation Blocker BYPASSED** āœ… **Direct API Composition Creation ENABLED** āœ… **Widget Addition via HTTP CONFIRMED** āœ… **Authentication & Project Access WORKING** ## **Ready for Implementation** All requirements met for Phase 1.3 implementation: - Composition creation endpoint documented - Request/response format defined - Widget structure mapped - Authentication confirmed working - Project context established **Status**: Ready for Claude Code implementation of direct HTTP MCP server functionality.

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/rkm097git/euconquisto-composer-mcp-poc'

If you have feedback or need assistance with the MCP directory API, please join our Discord server