Skip to main content
Glama
test-umbrellacost-api.cjs5.96 kB
const axios = require('axios'); const baseURL = 'https://umbrellacost.com'; async function testAPI() { console.log('='.repeat(80)); console.log('Testing Umbrella Cost Public Pricing API'); console.log('='.repeat(80)); // Test 1: Provider Cost endpoint console.log('\n1. Testing /provider-cost endpoint with AWS EC2'); try { const response = await axios.get(`${baseURL}/provider-cost`, { params: { provider: 'AWS', serviceCode: 'AmazonEC2', regionCode: 'us-east-1' }, timeout: 10000 }); console.log('✅ Success!'); console.log('Response structure:', Object.keys(response.data)); if (Array.isArray(response.data)) { console.log('Response is array, length:', response.data.length); console.log('First item:', JSON.stringify(response.data[0], null, 2)); } else { console.log('Response:', JSON.stringify(response.data, null, 2)); } } catch (error) { console.log('❌ Error:', error.response?.status, error.message); } // Test 2: Instance endpoint console.log('\n2. Testing /instance endpoint for specific instance type'); try { const response = await axios.get(`${baseURL}/instance/AWS/AmazonEC2/t2.micro`, { params: { region: 'us-east-1' }, timeout: 10000 }); console.log('✅ Success!'); console.log('Response:', JSON.stringify(response.data, null, 2)); } catch (error) { console.log('❌ Error:', error.response?.status, error.message); } // Test 3: RDS instance console.log('\n3. Testing /instance endpoint for RDS instance (db.r5.xlarge)'); try { const response = await axios.get(`${baseURL}/instance/AWS/AmazonRDS/db.r5.xlarge`, { params: { region: 'us-east-1' }, timeout: 10000 }); console.log('✅ Success!'); console.log('Response:', JSON.stringify(response.data, null, 2)); } catch (error) { console.log('❌ Error:', error.response?.status, error.message); } // Test 4: Instance family types console.log('\n4. Testing /instance-family-types endpoint'); try { const response = await axios.get(`${baseURL}/instance-family-types/AmazonEC2/General`, { timeout: 10000 }); console.log('✅ Success!'); console.log('Response structure:', typeof response.data); if (Array.isArray(response.data)) { console.log('Array length:', response.data.length); console.log('First 5 items:', response.data.slice(0, 5)); } else { console.log('Response:', JSON.stringify(response.data, null, 2)); } } catch (error) { console.log('❌ Error:', error.response?.status, error.message); } // Test 5: Region prices console.log('\n5. Testing /region-prices endpoint'); try { const response = await axios.get(`${baseURL}/region-prices/AWS/AmazonEC2/t2.micro`, { timeout: 10000 }); console.log('✅ Success!'); if (Array.isArray(response.data)) { console.log('Response is array, length:', response.data.length); console.log('First 3 regions:', JSON.stringify(response.data.slice(0, 3), null, 2)); } else { console.log('Response:', JSON.stringify(response.data, null, 2)); } } catch (error) { console.log('❌ Error:', error.response?.status, error.message); } // Test 6: Azure SQL Database console.log('\n6. Testing Azure SQL Database'); try { const response = await axios.get(`${baseURL}/provider-cost`, { params: { provider: 'Azure', serviceCode: 'AzureSQLDatabase', regionCode: 'eastus' }, timeout: 10000 }); console.log('✅ Success!'); if (Array.isArray(response.data)) { console.log('Response is array, length:', response.data.length); console.log('First 3 items:', JSON.stringify(response.data.slice(0, 3), null, 2)); } else { console.log('Response:', JSON.stringify(response.data, null, 2)); } } catch (error) { console.log('❌ Error:', error.response?.status, error.message); } // Test 7: Search or filter endpoint console.log('\n7. Testing if there\'s a search endpoint'); try { const response = await axios.get(`${baseURL}/search`, { params: { query: 'r5.xlarge' }, timeout: 10000 }); console.log('✅ Success!'); console.log('Response:', JSON.stringify(response.data, null, 2)); } catch (error) { console.log('❌ Error:', error.response?.status, error.message); } // Test 8: Last update console.log('\n8. Testing /last-update endpoint'); try { const response = await axios.get(`${baseURL}/last-update`, { timeout: 10000 }); console.log('✅ Success!'); console.log('Response:', JSON.stringify(response.data, null, 2)); } catch (error) { console.log('❌ Error:', error.response?.status, error.message); } // Test 9: Try provider-cost with search/filter params console.log('\n9. Testing /provider-cost with additional filter params'); try { const response = await axios.get(`${baseURL}/provider-cost`, { params: { provider: 'AWS', serviceCode: 'AmazonRDS', regionCode: 'us-east-1', instanceType: 'db.r5.xlarge' }, timeout: 10000 }); console.log('✅ Success!'); console.log('Response:', JSON.stringify(response.data, null, 2)); } catch (error) { console.log('❌ Error:', error.response?.status, error.message); } // Test 10: Check if there's an API endpoint discovery console.log('\n10. Testing root endpoint for API documentation'); try { const response = await axios.get(`${baseURL}/api`, { timeout: 10000 }); console.log('✅ Success!'); console.log('Response:', response.data); } catch (error) { console.log('❌ Error:', error.response?.status, error.message); } console.log('\n' + '='.repeat(80)); console.log('Testing Complete'); console.log('='.repeat(80)); } testAPI().catch(console.error);

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/daviddraiumbrella/invoice-monitoring'

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