Introduction Everything you need to build with the IFO4 Cost Intelligence API
The IFO4 API is a comprehensive cost intelligence platform that provides programmatic access to cloud pricing data, FinOps benchmarks, cost optimization recommendations, anomaly detection, forecasting, compliance assessments, and much more. It is designed for teams building FinOps tooling, cloud management platforms, internal cost dashboards, and procurement automation.
Who is it for? FinOps practitioners, cloud architects, platform engineers, procurement teams, and software developers building tools that need real-time cost intelligence data.
What you can do: Query normalized pricing across 12+ cloud providers, benchmark your spend against industry peers, detect cost anomalies, forecast future spend, optimize SaaS licenses, simulate commitment scenarios, and assess FinOps maturity - all through a single, consistent REST API.
Quick Start Make your first API call in seconds. Fetch normalized pricing data for AWS EC2:
bash Copy
"color:#fbbf24" >curl https://api. style="color:#fbbf24" >ifo4 .org/v1/cost-intelligence/pricing \
"color:#67e8f9" >-H "X-API-Key: ">ifo4 _pro_abc123def456ghi789jkl012mno345" \
"color:#67e8f9" >-H "Content-Type: application/json" \
"color:#67e8f9" >-d '{
"provider" : "aws" ,
"service" : "ec2" ,
"region" : "us-east-1" ,
"instance_type" : "m5.xlarge"
}'json Copy
{
"status" : "success" ,
"data" : {
"provider" : "aws" ,
"service" : "ec2" ,
"region" : "us-east-1" ,
"instance_type" : "m5.xlarge" ,
"pricing" : {
"on_demand" : {
"hourly" : 0.192 ,
"monthly" : 140.16 ,
"annual" : 1681.92 ,
"currency" : "USD"
},
"reserved_1yr" : {
"hourly" : 0.121 ,
"monthly" : 88.33 ,
"savings_pct" : 37.0
},
"spot" : {
"hourly" : 0.0576 ,
"monthly" : 42.05 ,
"savings_pct" : 70.0
}
},
"specs" : {
"vcpus" : 4 ,
"memory_gb" : 16 ,
"storage" : "EBS Only" ,
"network" : "Up to 10 Gbps"
},
"last_updated" : "2026-03-24T00: 00 : 00 Z"
},
"metadata" : {
"request_id" : "req_a1b2c3d4e5" ,
"processing_time_ms" : 45
}
} Authentication Secure your API requests with API key authentication
All API requests must include your API key in the X-API-Key header. API keys are tied to your account and plan, and control your rate limits, access permissions, and billing.
Getting an API Key Generate your API key from the API Keys dashboard . Each key is scoped to a plan and environment.
Key Format Keys follow the pattern: ifo4_[plan]_[32 alphanumeric chars]
Plan Prefix Example Description ifo4_free_ ifo4_free_abc123def456... Free tier key ifo4_starter_ ifo4_starter_abc123def456... Starter plan key ifo4_pro_ ifo4_pro_abc123def456... Professional plan key ifo4_ent_ ifo4_ent_abc123def456... Enterprise plan key
Example Request bash Copy
"color:#fbbf24" >curl https://api. style="color:#fbbf24" >ifo4 .org/v1/cost-intelligence/pricing \
"color:#67e8f9" >-H "X-API-Key: ">ifo4 _pro_abc123def456ghi789jkl012mno345" \
"color:#67e8f9" >-H "Content-Type: application/json" Security Best Practices ⚠️ Never expose your API keys in client-side code. API keys should only be used in server-side environments. If a key is compromised, rotate it immediately from the dashboard.
Store keys in environment variables, never hardcode them in source files Use a secrets manager (e.g., AWS Secrets Manager, HashiCorp Vault) in production Rotate keys every 90 days Create separate keys for development, staging, and production environments Use the principle of least privilege - only request the plan tier you need Monitor key usage in the API dashboard for unauthorized access patterns Base URL API endpoints and environments
Environment Base URL Description Production https://api.ifo4.org/v1 Live API - real data, metered usage Sandbox https://sandbox.api.ifo4.org/v1 Test environment - synthetic data, not metered
ℹ️ All requests must use HTTPS with TLS 1.2 or higher. HTTP requests are rejected. All endpoints return JSON responses with Content-Type: application/json.
Rate Limiting Understand your request limits and how to handle throttling
Plan Requests / Month Requests / Second Burst Free 1,000 1 5 Starter 25,000 10 50 Professional 250,000 50 200 Enterprise Unlimited 200 1,000
Rate Limit Headers Every API response includes headers to help you track your usage:
Header Description Example X-RateLimit-Limit Maximum requests allowed in the current window 50 X-RateLimit-Remaining Requests remaining in the current window 47 X-RateLimit-Reset Unix timestamp when the window resets 1711296000 Retry-After Seconds to wait before retrying (only on 429) 30
Rate Limit Exceeded Response json Copy
{
"status" : "error" ,
"error" : {
"code" : "rate_limit_exceeded" ,
"message" : "Rate limit exceeded. Retry after 30 seconds." ,
"retry_after" : 30
},
"metadata" : {
"request_id" : "req_f6g7h8i9j0" ,
"timestamp" : "2026-03-24T12: 00 : 00 Z"
}
} Handling Rate Limits 💡 Use exponential backoff with jitter when retrying rate-limited requests. Start with a 1-second delay, then double it on each retry (2s, 4s, 8s...), adding random jitter of 0-500ms to avoid thundering herd problems.
javascript Copy
"color:#8b5cf6" >async "color:#8b5cf6" >function fetchWithRetry(url, options, maxRetries = 5) {
for ("color:#8b5cf6" >let attempt = 0; attempt < maxRetries; attempt++) {
"color:#8b5cf6" >const response = "color:#8b5cf6" >await fetch(url, options);
"color:#8b5cf6" >if (response.status !== 429) "color:#8b5cf6" >return response;
"color:#8b5cf6" >const retryAfter = response.headers.get("color:#86efac" >'Retry-After');
"color:#8b5cf6" >const baseDelay = retryAfter
? parseInt(retryAfter) * 1000
: Math.pow(2, attempt) * 1000;
"color:#8b5cf6" >const jitter = Math.random() * 500;
"color:#8b5cf6" >await "color:#8b5cf6" >new Promise(r => setTimeout(r, baseDelay + jitter));
}
throw "color:#8b5cf6" >new Error("color:#86efac" >'Max retries exceeded');
}Error Handling Complete reference for API error codes and response formats
HTTP Status Error Code Description Action 400 invalid_request Malformed request body Check JSON syntax, required fields 400 validation_error Field validation failed Check field types, ranges, formats 401 unauthorized Missing or invalid API key Verify X-API-Key header 401 key_expired API key has expired Generate new key at /api-platform/keys 403 forbidden Key lacks access to this endpoint Upgrade plan or check permissions 404 not_found Endpoint or resource not found Check URL path 409 conflict Resource already exists Use update instead of create 422 unprocessable_entity Valid JSON but invalid data Check field values and constraints 429 rate_limit_exceeded Too many requests Implement backoff, check plan limits 500 internal_error Server error Retry with backoff, contact support 502 bad_gateway Upstream service unavailable Retry after 30 seconds 503 service_unavailable Planned maintenance Check status.ifo4.org
Error Response Format json Copy
{
"status" : "error" ,
"error" : {
"code" : "validation_error" ,
"message" : "Field 'cloud_spend' must be a positive number" ,
"details" : [
{
"field" : "cloud_spend" ,
"issue" : "must be > 0" ,
"received" : -500
}
]
},
"metadata" : {
"request_id" : "req_abc123def456" ,
"timestamp" : "2026-03-24T12: 00 : 00 Z"
}
} List endpoints support pagination with page and per_page query parameters.
Name Type Required Description Default Example page integer Optional Page number to retrieve 1 3 per_page integer Optional Number of results per page (max 100) 20 50
json Copy
{
"data" : [ ... ],
"pagination" : {
"total" : 150 ,
"page" : 1 ,
"per_page" : 20 ,
"total_pages" : 8
}
} Versioning API version lifecycle and backward compatibility policy
Current version: v1Version location: URL path (/v1/...)Breaking changes: result in a new version number (v2, v3...)Non-breaking changes: additive fields and new endpoints are added to the current version without a version bumpDeprecation policy: 12 months notice before removing or modifying endpointsSunset header: deprecated endpoints return Sunset: <date> and Deprecation: <date> headersWebhooks Receive real-time notifications for important events
Configure webhook URLs in your API dashboard to receive push notifications when specific events occur. Webhooks are sent as HTTP POST requests with a JSON body.
Available Events Event Description Trigger scan.completed A cost scan has finished processing After each scheduled or manual scan anomaly.detected A cost anomaly has been identified When spend exceeds threshold compliance.changed Compliance status has changed When a check passes or fails forecast.ready A forecasting analysis is complete After forecast computation credential.verified A credential has been verified After credential verification benchmark.updated Benchmark data has been refreshed After data pipeline update
Webhook Payload Format json Copy
{
"event" : "anomaly.detected" ,
"timestamp" : "2026-03-24T12: 00 : 00 Z" ,
"data" : {
"anomaly_id" : "anom_xyz789" ,
"resource" : "aws/ec2/us-east-1" ,
"expected_cost" : 1200.00 ,
"actual_cost" : 3450.00 ,
"severity" : "critical" ,
"detected_at" : "2026-03-24T11: 55 : 00 Z"
},
"metadata" : {
"webhook_id" : "wh_abc123" ,
"delivery_attempt" : 1
}
} Signature Verification Every webhook request includes an X-IFO4-Signature header. Verify this HMAC-SHA256 signature to ensure the request is authentic.
javascript Copy
"color:#8b5cf6" >const crypto = "color:#8b5cf6" >require("color:#86efac" >'crypto');
"color:#8b5cf6" >const express = "color:#8b5cf6" >require("color:#86efac" >'express');
"color:#8b5cf6" >const app = express();
app.post("color:#86efac" >'/webhooks/ifo4', express.raw({ type: "color:#86efac" >'application/json' }), (req, res) => {
"color:#8b5cf6" >const signature = req.headers["color:#86efac" >'x-ifo4-signature'];
"color:#8b5cf6" >const secret = process.env.IFO4_WEBHOOK_SECRET;
"color:#8b5cf6" >const expected = crypto
.createHmac("color:#86efac" >'sha256', secret)
.update(req.body)
.digest("color:#86efac" >'hex');
"color:#8b5cf6" >if (signature !== `sha256=${expected}` ) {
"color:#8b5cf6" >return res.status(401).json({ error: "color:#86efac" >'Invalid signature' });
}
"color:#8b5cf6" >const event = JSON.parse(req.body);
console.log("color:#86efac" >'Received event:', event.event);
// Process the webhook event
switch (event.event) {
case "color:#86efac" >'anomaly.detected':
handleAnomaly(event.data);
break;
case "color:#86efac" >'scan.completed':
handleScanComplete(event.data);
break;
}
res.status(200).json({ received: true });
});Retry Policy Webhooks that receive a non-2xx response are retried up to 3 times Retry intervals: 30 seconds, 5 minutes, 30 minutes After 3 failed attempts, the webhook is marked as failed and can be replayed from the dashboard Your endpoint must respond within 10 seconds to be considered successful Cost Intelligence API 9 endpoints for cloud cost analysis, optimization, and governance
Pricing Data Retrieve normalized cloud pricing across 12+ providers
POST /cost-intelligence/pricing
Get Cloud Pricing Retrieve normalized pricing data for any cloud service, region, and instance type. Returns on-demand, reserved, savings plan, and spot pricing with full specification details. Data is updated every 6 hours from provider APIs.
Parameters Name Type Required Description Default Example provider string Required Cloud provider identifier - "aws" service string Required Service name (e.g., ec2, rds, s3) - "ec2" region string Optional Cloud region code us-east-1 "eu-west-1" instance_type string Optional Instance type or SKU - "m5.xlarge" operating_system string Optional OS filter (linux, windows, rhel) linux "linux" tenancy string Optional Tenancy type (shared, dedicated, host) shared "shared"
cURL Python Node.js
bash Copy
"color:#fbbf24" >curl "color:#67e8f9" >-X POST https://api. style="color:#fbbf24" >ifo4 .org/v1/cost-intelligence/pricing \
"color:#67e8f9" >-H "X-API-Key: ">ifo4 _pro_abc123def456ghi789jkl012mno345" \
"color:#67e8f9" >-H "Content-Type: application/json" \
"color:#67e8f9" >-d '{
"provider" : "aws" ,
"service" : "ec2" ,
"region" : "us-east-1" ,
"instance_type" : "m5.xlarge"
}'Response json Copy
{
"status" : "success" ,
"data" : {
"provider" : "aws" ,
"service" : "ec2" ,
"region" : "us-east-1" ,
"instance_type" : "m5.xlarge" ,
"pricing" : {
"on_demand" : { "hourly" : 0.192 , "monthly" : 140.16 , "currency" : "USD" },
"reserved_1yr" : { "hourly" : 0.121 , "monthly" : 88.33 , "savings_pct" : 37.0 },
"reserved_3yr" : { "hourly" : 0.078 , "monthly" : 56.94 , "savings_pct" : 59.4 },
"spot" : { "hourly" : 0.0576 , "monthly" : 42.05 , "savings_pct" : 70.0 }
},
"specs" : { "vcpus" : 4 , "memory_gb" : 16 , "storage" : "EBS Only" , "network" : "Up to 10 Gbps" },
"last_updated" : "2026-03-24T00: 00 : 00 Z"
},
"metadata" : { "request_id" : "req_a1b2c3d4e5" , "processing_time_ms" : 45 }
} ▶ Error Scenarios (3)
Benchmark Compare your cloud spending against industry peers
POST /cost-intelligence/benchmark
Run Cost Benchmark Compare your organization's cloud spend against anonymized industry benchmarks. Returns percentile rankings, peer comparisons, and optimization gap analysis across multiple cost dimensions. Data is sourced from 2,500+ anonymized organizations.
Parameters Name Type Required Description Default Example cloud_spend number Required Total monthly cloud spend in USD - 125000 industry string Required Industry vertical code - "technology" company_size string Required Company size bracket - "mid_market" providers string[] Optional Cloud providers in use - ["aws", "azure"] include_details boolean Optional Include per-service breakdown false true
cURL Python Node.js
bash Copy
"color:#fbbf24" >curl "color:#67e8f9" >-X POST https://api. style="color:#fbbf24" >ifo4 .org/v1/cost-intelligence/benchmark \
"color:#67e8f9" >-H "X-API-Key: ">ifo4 _pro_abc123def456ghi789jkl012mno345" \
"color:#67e8f9" >-H "Content-Type: application/json" \
"color:#67e8f9" >-d '{
"cloud_spend" : 125000,
"industry" : "technology" ,
"company_size" : "mid_market" ,
"providers" : ["aws" , "azure" ],
"include_details" : true
}'Response json Copy
{
"status" : "success" ,
"data" : {
"overall_percentile" : 62 ,
"peer_group" : { "count" : 284 , "industry" : "technology" , "size" : "mid_market" },
"benchmarks" : {
"cost_per_employee" : { "yours" : 425 , "median" : 380 , "p25" : 290 , "p75" : 520 },
"compute_efficiency" : { "yours" : 0.68 , "median" : 0.72 , "p25" : 0.65 , "p75" : 0.81 },
"reservation_coverage" : { "yours" : 0.45 , "median" : 0.62 , "p25" : 0.40 , "p75" : 0.78 },
"waste_ratio" : { "yours" : 0.18 , "median" : 0.14 , "p25" : 0.08 , "p75" : 0.22 }
},
"optimization_gap" : { "potential_savings_monthly" : 18750 , "potential_savings_pct" : 15.0 },
"last_updated" : "2026-03-20T00: 00 : 00 Z"
},
"metadata" : { "request_id" : "req_b2c3d4e5f6" , "processing_time_ms" : 230 }
} ▶ Error Scenarios (2)
Optimization AI-powered cost optimization recommendations
POST /cost-intelligence/optimization
Get Optimization Recommendations Analyze your cloud resource usage and return prioritized optimization recommendations. Includes rightsizing, commitment coverage, idle resource elimination, storage tiering, and architecture recommendations. Each recommendation includes estimated savings and implementation difficulty.
Parameters Name Type Required Description Default Example provider string Required Cloud provider to analyze - "aws" account_id string Optional Specific account to analyze - "123456789012" categories string[] Optional Optimization categories to include ["all"] ["rightsizing", "commitments"] min_savings number Optional Minimum monthly savings threshold in USD 10 100 risk_tolerance string Optional Risk level for recommendations (low, medium, high) "medium" "low"
cURL Python Node.js
bash Copy
"color:#fbbf24" >curl "color:#67e8f9" >-X POST https://api. style="color:#fbbf24" >ifo4 .org/v1/cost-intelligence/optimization \
"color:#67e8f9" >-H "X-API-Key: ">ifo4 _pro_abc123def456ghi789jkl012mno345" \
"color:#67e8f9" >-H "Content-Type: application/json" \
"color:#67e8f9" >-d '{
"provider" : "aws" ,
"categories" : ["rightsizing" , "commitments" , "idle" ],
"min_savings" : 100,
"risk_tolerance" : "low"
}'Response json Copy
{
"status" : "success" ,
"data" : {
"total_potential_savings" : { "monthly" : 24500 , "annual" : 294000 , "currency" : "USD" },
"recommendations" : [
{
"id" : "opt_001" ,
"category" : "rightsizing" ,
"title" : "Downsize 12 over-provisioned EC2 instances" ,
"description" : "12 m5.2xlarge instances averaging 15% CPU utilization" ,
"estimated_savings" : { "monthly" : 8400 },
"difficulty" : "low" ,
"risk" : "low" ,
"resources_affected" : 12 ,
"current_cost" : 16800 ,
"optimized_cost" : 8400
},
{
"id" : "opt_002" ,
"category" : "commitments" ,
"title" : "Purchase Reserved Instances for stable workloads" ,
"description" : "42 instances running 24/7 for 90+ days without RI coverage" ,
"estimated_savings" : { "monthly" : 12100 },
"difficulty" : "medium" ,
"risk" : "medium" ,
"resources_affected" : 42
}
],
"summary" : { "total_recommendations" : 8 , "by_difficulty" : { "low" : 3 , "medium" : 4 , "high" : 1 } }
},
"metadata" : { "request_id" : "req_c3d4e5f6g7" , "processing_time_ms" : 1250 }
} ▶ Error Scenarios (2)
Anomaly Detection Detect unexpected cost spikes and unusual spending patterns
POST /cost-intelligence/anomaly
Detect Cost Anomalies Analyze historical spend data to identify cost anomalies using statistical models and machine learning. Returns anomalies ranked by severity with root cause analysis and remediation suggestions.
Parameters Name Type Required Description Default Example provider string Required Cloud provider to analyze - "aws" lookback_days integer Optional Historical days to analyze 30 60 sensitivity string Optional Detection sensitivity (low, medium, high) "medium" "high" services string[] Optional Specific services to monitor ["all"] ["ec2", "rds"] threshold_pct number Optional Minimum deviation percentage to flag 20 15
cURL Python Node.js
bash Copy
"color:#fbbf24" >curl "color:#67e8f9" >-X POST https://api. style="color:#fbbf24" >ifo4 .org/v1/cost-intelligence/anomaly \
"color:#67e8f9" >-H "X-API-Key: ">ifo4 _pro_abc123def456ghi789jkl012mno345" \
"color:#67e8f9" >-H "Content-Type: application/json" \
"color:#67e8f9" >-d '{
"provider" : "aws" ,
"lookback_days" : 30,
"sensitivity" : "high" ,
"threshold_pct" : 15
}'Response json Copy
{
"status" : "success" ,
"data" : {
"anomalies_detected" : 3 ,
"anomalies" : [
{
"id" : "anom_001" ,
"severity" : "critical" ,
"service" : "ec2" ,
"region" : "us-east-1" ,
"detected_at" : "2026-03-22T14: 30 : 00 Z" ,
"expected_daily_cost" : 1200 ,
"actual_daily_cost" : 3450 ,
"deviation_pct" : 187.5 ,
"root_cause" : "Auto Scaling group launched 45 additional instances due to misconfigured scaling policy" ,
"remediation" : "Review ASG scaling policy thresholds and set maximum instance limits"
}
],
"monitoring_period" : { "start" : "2026-02-22" , "end" : "2026-03-24" },
"baseline" : { "daily_avg" : 4200 , "daily_std" : 380 }
},
"metadata" : { "request_id" : "req_d4e5f6g7h8" , "processing_time_ms" : 890 }
} ▶ Error Scenarios (2)
Forecasting Predict future cloud costs with ML-powered models
POST /cost-intelligence/forecast
Generate Cost Forecast Generate forward-looking cost forecasts using time-series ML models. Supports multiple forecast horizons with confidence intervals. Models incorporate seasonality, growth trends, and planned changes.
Parameters Name Type Required Description Default Example provider string Required Cloud provider to forecast - "aws" horizon_months integer Optional Forecast horizon in months 3 6 granularity string Optional Forecast granularity (daily, weekly, monthly) "monthly" "weekly" include_confidence boolean Optional Include confidence intervals true true planned_changes object[] Optional Known upcoming changes to factor in - [{"date":"2026-06-01","impact":5000}]
cURL Python Node.js
bash Copy
"color:#fbbf24" >curl "color:#67e8f9" >-X POST https://api. style="color:#fbbf24" >ifo4 .org/v1/cost-intelligence/forecast \
"color:#67e8f9" >-H "X-API-Key: ">ifo4 _pro_abc123def456ghi789jkl012mno345" \
"color:#67e8f9" >-H "Content-Type: application/json" \
"color:#67e8f9" >-d '{
"provider" : "aws" ,
"horizon_months" : 6,
"granularity" : "monthly" ,
"include_confidence" : true
}'Response json Copy
{
"status" : "success" ,
"data" : {
"forecast" : [
{ "period" : "2026-04" , "predicted" : 128500 , "lower_bound" : 118200 , "upper_bound" : 139800 , "confidence" : 0.90 },
{ "period" : "2026-05" , "predicted" : 131200 , "lower_bound" : 117800 , "upper_bound" : 145600 , "confidence" : 0.85 },
{ "period" : "2026-06" , "predicted" : 134000 , "lower_bound" : 116500 , "upper_bound" : 152500 , "confidence" : 0.80 },
{ "period" : "2026-07" , "predicted" : 136800 , "lower_bound" : 115000 , "upper_bound" : 160600 , "confidence" : 0.75 },
{ "period" : "2026-08" , "predicted" : 139500 , "lower_bound" : 113200 , "upper_bound" : 168800 , "confidence" : 0.70 },
{ "period" : "2026-09" , "predicted" : 142300 , "lower_bound" : 111000 , "upper_bound" : 177600 , "confidence" : 0.65 }
],
"model" : { "type" : "prophet_ensemble" , "accuracy_mape" : 8.2 , "training_data_months" : 18 },
"trend" : { "direction" : "increasing" , "monthly_growth_rate" : 2.1 }
},
"metadata" : { "request_id" : "req_e5f6g7h8i9" , "processing_time_ms" : 2100 }
} ▶ Error Scenarios (2)
Allocation Allocate cloud costs to teams, projects, and business units
POST /cost-intelligence/allocation
Get Cost Allocation Retrieve cost allocation breakdowns by team, project, environment, or custom dimensions. Supports showback and chargeback models with configurable allocation rules for shared services.
Parameters Name Type Required Description Default Example provider string Required Cloud provider - "aws" period string Required Billing period (YYYY-MM) - "2026-03" group_by string Required Dimension to group by (team, project, environment, service) - "team" allocation_model string Optional How to allocate shared costs (proportional, even, custom) "proportional" "proportional"
cURL Python Node.js
bash Copy
"color:#fbbf24" >curl "color:#67e8f9" >-X POST https://api. style="color:#fbbf24" >ifo4 .org/v1/cost-intelligence/allocation \
"color:#67e8f9" >-H "X-API-Key: ">ifo4 _pro_abc123def456ghi789jkl012mno345" \
"color:#67e8f9" >-H "Content-Type: application/json" \
"color:#67e8f9" >-d '{
"provider" : "aws" ,
"period" : "2026-03" ,
"group_by" : "team" ,
"allocation_model" : "proportional"
}'Response json Copy
{
"status" : "success" ,
"data" : {
"period" : "2026-03" ,
"total_cost" : 125000 ,
"allocations" : [
{ "group" : "platform-engineering" , "direct_cost" : 42000 , "shared_cost" : 8500 , "total" : 50500 , "pct" : 40.4 },
{ "group" : "data-science" , "direct_cost" : 28000 , "shared_cost" : 5600 , "total" : 33600 , "pct" : 26.9 },
{ "group" : "backend" , "direct_cost" : 18000 , "shared_cost" : 3600 , "total" : 21600 , "pct" : 17.3 },
{ "group" : "frontend" , "direct_cost" : 12000 , "shared_cost" : 2400 , "total" : 14400 , "pct" : 11.5 },
{ "group" : "devops" , "direct_cost" : 3500 , "shared_cost" : 1400 , "total" : 4900 , "pct" : 3.9 }
],
"unallocated" : 0 ,
"shared_cost_total" : 21500
},
"metadata" : { "request_id" : "req_f6g7h8i9j0" , "processing_time_ms" : 320 }
} ▶ Error Scenarios (2)
Tagging Analyze and enforce cloud resource tagging policies
POST /cost-intelligence/tagging
Analyze Tag Coverage Analyze resource tagging coverage and compliance across your cloud accounts. Returns tag coverage metrics, untagged resource reports, and tagging policy enforcement recommendations.
Parameters Name Type Required Description Default Example provider string Required Cloud provider to analyze - "aws" required_tags string[] Optional Tags that should be present on all resources - ["team", "environment", "project"] account_id string Optional Specific account to analyze - "123456789012"
cURL Python Node.js
bash Copy
"color:#fbbf24" >curl "color:#67e8f9" >-X POST https://api. style="color:#fbbf24" >ifo4 .org/v1/cost-intelligence/tagging \
"color:#67e8f9" >-H "X-API-Key: ">ifo4 _pro_abc123def456ghi789jkl012mno345" \
"color:#67e8f9" >-H "Content-Type: application/json" \
"color:#67e8f9" >-d '{
"provider" : "aws" ,
"required_tags" : ["team" , "environment" , "project" , "cost-center" ]
}'Response json Copy
{
"status" : "success" ,
"data" : {
"total_resources" : 1842 ,
"fully_tagged" : 1290 ,
"coverage_pct" : 70.0 ,
"by_tag" : [
{ "tag" : "team" , "coverage_pct" : 85.2 , "missing_count" : 272 },
{ "tag" : "environment" , "coverage_pct" : 92.1 , "missing_count" : 146 },
{ "tag" : "project" , "coverage_pct" : 71.4 , "missing_count" : 527 },
{ "tag" : "cost-center" , "coverage_pct" : 58.3 , "missing_count" : 767 }
],
"untagged_cost_pct" : 22.5 ,
"untagged_cost_monthly" : 28125 ,
"top_untagged_services" : [
{ "service" : "ec2" , "untagged_count" : 156 , "untagged_cost" : 12400 },
{ "service" : "s3" , "untagged_count" : 89 , "untagged_cost" : 4200 }
]
},
"metadata" : { "request_id" : "req_g7h8i9j0k1" , "processing_time_ms" : 450 }
} ▶ Error Scenarios (1)
Compliance Check FinOps compliance policies and governance rules
POST /cost-intelligence/compliance
Run Compliance Check Evaluate cloud resources against FinOps compliance policies. Checks include budget adherence, tagging policies, reservation coverage targets, waste thresholds, and custom rules. Returns a compliance score with detailed findings.
Parameters Name Type Required Description Default Example provider string Required Cloud provider to check - "aws" policies string[] Optional Specific policies to evaluate ["all"] ["budget", "tagging", "reservations"] scope string Optional Evaluation scope (organization, account, project) "organization" "account"
cURL Python Node.js
bash Copy
"color:#fbbf24" >curl "color:#67e8f9" >-X POST https://api. style="color:#fbbf24" >ifo4 .org/v1/cost-intelligence/compliance \
"color:#67e8f9" >-H "X-API-Key: ">ifo4 _pro_abc123def456ghi789jkl012mno345" \
"color:#67e8f9" >-H "Content-Type: application/json" \
"color:#67e8f9" >-d '{
"provider" : "aws" ,
"policies" : ["budget" , "tagging" , "reservations" , "waste" ],
"scope" : "organization"
}'Response json Copy
{
"status" : "success" ,
"data" : {
"overall_score" : 72 ,
"grade" : "B" ,
"checks" : [
{ "policy" : "budget" , "status" : "pass" , "score" : 90 , "details" : "All teams within 10% of budget" },
{ "policy" : "tagging" , "status" : "warn" , "score" : 70 , "details" : "Tag coverage at 70%, target is 90%" },
{ "policy" : "reservations" , "status" : "fail" , "score" : 45 , "details" : "RI coverage at 45%, target is 70%" },
{ "policy" : "waste" , "status" : "pass" , "score" : 82 , "details" : "Waste ratio at 12%, below 15% threshold" }
],
"trend" : { "direction" : "improving" , "change_30d" : 4 },
"recommendations" : 6
},
"metadata" : { "request_id" : "req_h8i9j0k1l2" , "processing_time_ms" : 680 }
} ▶ Error Scenarios (1)
GCCF Assessment Assess maturity against the Government Cloud Cost Framework
POST /cost-intelligence/gccf
Run GCCF Assessment Evaluate your organization against the Government Cloud Cost Framework (GCCF). Assesses across all four framework layers: Policy Authority, Capital Control, Mission Execution, and Execution Platform. Returns maturity scores, gap analysis, and prioritized improvement actions.
Parameters Name Type Required Description Default Example organization_type string Required Type of organization (federal, state, local, defense, contractor) - "federal" current_practices object Required Current FinOps practices data (see docs) - { ... } include_roadmap boolean Optional Generate an improvement roadmap false true
cURL Python Node.js
bash Copy
"color:#fbbf24" >curl "color:#67e8f9" >-X POST https://api. style="color:#fbbf24" >ifo4 .org/v1/cost-intelligence/gccf \
"color:#67e8f9" >-H "X-API-Key: ">ifo4 _pro_abc123def456ghi789jkl012mno345" \
"color:#67e8f9" >-H "Content-Type: application/json" \
"color:#67e8f9" >-d '{
"organization_type" : "federal" ,
"current_practices" : {
"governance" : true,
"budget_tracking" : true,
"automated_reporting" : false,
"chargeback_model" : false,
"commitment_strategy" : true
},
"include_roadmap" : true
}'Response json Copy
{
"status" : "success" ,
"data" : {
"overall_maturity" : "Developing" ,
"overall_score" : 2.4 ,
"max_score" : 5.0 ,
"layers" : {
"policy_authority" : { "score" : 3.2 , "level" : "Defined" , "gaps" : 2 },
"capital_control" : { "score" : 2.8 , "level" : "Developing" , "gaps" : 3 },
"mission_execution" : { "score" : 1.8 , "level" : "Initial" , "gaps" : 5 },
"execution_platform" : { "score" : 1.6 , "level" : "Initial" , "gaps" : 4 }
},
"top_gaps" : [
{ "layer" : "mission_execution" , "gap" : "No automated chargeback model" , "impact" : "high" , "effort" : "medium" },
{ "layer" : "execution_platform" , "gap" : "Manual reporting processes" , "impact" : "high" , "effort" : "low" }
],
"roadmap" : [
{ "phase" : 1 , "actions" : ["Implement automated cost reporting", "Define chargeback policies"], "timeline" : "0-3 months" },
{ "phase" : 2 , "actions" : ["Deploy commitment management", "Automate tagging enforcement"], "timeline" : "3-6 months" }
]
},
"metadata" : { "request_id" : "req_i9j0k1l2m3" , "processing_time_ms" : 1450 }
} ▶ Error Scenarios (2)
PRISM API 3 endpoints for cloud billing data normalization and validation
Normalize Normalize billing data into a universal schema
POST /prism/normalize
Normalize Billing Data Transform raw cloud billing data from any provider into the IFO4 Universal Billing Schema. Handles provider-specific field mappings, currency normalization, cost categorization, and data enrichment. Supports AWS CUR, Azure Cost Management, GCP BigQuery Export, and 9 other provider formats.
Parameters Name Type Required Description Default Example provider string Required Source provider format - "aws" format string Optional Input format (cur, cost_export, billing_export) auto-detect "cur" records object[] Required Array of raw billing records - [{ ... }] enrich boolean Optional Add service categorization and metadata true true
cURL Python Node.js
bash Copy
"color:#fbbf24" >curl "color:#67e8f9" >-X POST https://api. style="color:#fbbf24" >ifo4 .org/v1/prism/normalize \
"color:#67e8f9" >-H "X-API-Key: ">ifo4 _pro_abc123def456ghi789jkl012mno345" \
"color:#67e8f9" >-H "Content-Type: application/json" \
"color:#67e8f9" >-d '{
"provider" : "aws" ,
"format" : "cur" ,
"records" : [
{
"lineItem/UsageType" : "USW2-BoxUsage:m5.xlarge" ,
"lineItem/UnblendedCost" : "4.608" ,
"lineItem/UsageStartDate" : "2026-03-24T00:00:00Z" ,
"product/region" : "us-west-2"
}
],
"enrich" : true
}'Response json Copy
{
"status" : "success" ,
"data" : {
"normalized_records" : [
{
"provider" : "aws" ,
"service" : "ec2" ,
"category" : "compute" ,
"resource_type" : "m5.xlarge" ,
"region" : "us-west-2" ,
"cost" : 4.608 ,
"currency" : "USD" ,
"usage_start" : "2026-03-24T00: 00 : 00 Z" ,
"usage_end" : "2026-03-25T00: 00 : 00 Z" ,
"unit" : "hours" ,
"quantity" : 24 ,
"tags" : {},
"ifo4_schema_version" : "1.0"
}
],
"summary" : { "total_records" : 1 , "total_cost" : 4.608 , "providers" : ["aws"], "services" : ["ec2"] }
},
"metadata" : { "request_id" : "req_j0k1l2m3n4" , "processing_time_ms" : 85 }
} ▶ Error Scenarios (2)
Validate Validate billing data against the IFO4 schema
POST /prism/validate
Validate Billing Data Validate that billing records conform to the IFO4 Universal Billing Schema. Returns detailed validation results for each record, including field-level errors, warnings, and data quality scores.
Parameters Name Type Required Description Default Example records object[] Required Array of billing records to validate - [{ ... }] strict boolean Optional Fail on warnings (not just errors) false true schema_version string Optional Schema version to validate against "1.0" "1.0"
cURL Python Node.js
bash Copy
"color:#fbbf24" >curl "color:#67e8f9" >-X POST https://api. style="color:#fbbf24" >ifo4 .org/v1/prism/validate \
"color:#67e8f9" >-H "X-API-Key: ">ifo4 _pro_abc123def456ghi789jkl012mno345" \
"color:#67e8f9" >-H "Content-Type: application/json" \
"color:#67e8f9" >-d '{
"records" : [
{
"provider" : "aws" ,
"service" : "ec2" ,
"cost" : 4.608,
"currency" : "USD" ,
"usage_start" : "2026-03-24T00:00:00Z"
}
],
"strict" : true
}'Response json Copy
{
"status" : "success" ,
"data" : {
"valid" : true ,
"total_records" : 1 ,
"valid_records" : 1 ,
"invalid_records" : 0 ,
"quality_score" : 85 ,
"results" : [
{
"record_index" : 0 ,
"valid" : true ,
"errors" : [],
"warnings" : [
{ "field" : "region" , "message" : "Missing region field - recommended for accurate analysis" },
{ "field" : "tags" , "message" : "No tags provided - reduces allocation accuracy" }
]
}
]
},
"metadata" : { "request_id" : "req_k1l2m3n4o5" , "processing_time_ms" : 35 }
} ▶ Error Scenarios (1)
Providers List supported cloud providers and their billing formats
GET /prism/providers
List Supported Providers Returns the complete list of cloud providers supported by the PRISM normalization engine, including their supported billing export formats, field mappings, and data freshness intervals.
cURL Python Node.js
bash Copy
"color:#fbbf24" >curl https://api. style="color:#fbbf24" >ifo4 .org/v1/prism/providers \
"color:#67e8f9" >-H "X-API-Key: ">ifo4 _pro_abc123def456ghi789jkl012mno345" Response json Copy
{
"status" : "success" ,
"data" : {
"providers" : [
{
"id" : "aws" ,
"name" : "Amazon Web Services" ,
"formats" : ["cur", "cur_2.0", "cost_explorer"],
"services_count" : 240 ,
"regions_count" : 32 ,
"update_frequency" : "6h"
},
{
"id" : "azure" ,
"name" : "Microsoft Azure" ,
"formats" : ["cost_management", "ea_billing", "mca_billing"],
"services_count" : 180 ,
"regions_count" : 60 ,
"update_frequency" : "6h"
},
{
"id" : "gcp" ,
"name" : "Google Cloud Platform" ,
"formats" : ["bigquery_export", "billing_export"],
"services_count" : 150 ,
"regions_count" : 40 ,
"update_frequency" : "6h"
}
],
"total_providers" : 12
},
"metadata" : { "request_id" : "req_l2m3n4o5p6" , "processing_time_ms" : 18 }
} Phantom API 4 endpoints for shadow IT discovery, SaaS license optimization, and vendor risk
Discover Shadow IT Detect unapproved cloud services and subscriptions
POST /phantom/shadow-it
Discover Shadow IT Scan your organization's network traffic, SSO logs, expense reports, and email metadata to identify unapproved SaaS applications and cloud services being used without IT approval. Returns categorized discoveries with risk assessments and estimated spend.
Parameters Name Type Required Description Default Example data_sources string[] Required Sources to scan for shadow IT - ["sso_logs", "network", "expenses"] lookback_days integer Optional Days of data to analyze 30 90 exclude_approved string[] Optional Known approved app domains to exclude - ["slack.com", "github.com"]
cURL Python Node.js
bash Copy
"color:#fbbf24" >curl "color:#67e8f9" >-X POST https://api. style="color:#fbbf24" >ifo4 .org/v1/phantom/shadow-it \
"color:#67e8f9" >-H "X-API-Key: ">ifo4 _pro_abc123def456ghi789jkl012mno345" \
"color:#67e8f9" >-H "Content-Type: application/json" \
"color:#67e8f9" >-d '{
"data_sources" : ["sso_logs" , "network" , "expenses" ],
"lookback_days" : 90,
"exclude_approved" : ["slack.com" , "github.com" , "jira.atlassian.com" ]
}'Response json Copy
{
"status" : "success" ,
"data" : {
"discoveries" : 23 ,
"estimated_annual_spend" : 186000 ,
"risk_summary" : { "high" : 4 , "medium" : 12 , "low" : 7 },
"applications" : [
{
"name" : "Notion" ,
"domain" : "notion.so" ,
"category" : "productivity" ,
"users" : 47 ,
"first_seen" : "2026-01-15" ,
"estimated_monthly_cost" : 940 ,
"risk_level" : "medium" ,
"risk_factors" : ["no_sso", "data_residency_unknown", "no_baa"],
"approved_alternative" : "Confluence"
},
{
"name" : "Retool" ,
"domain" : "retool.com" ,
"category" : "development" ,
"users" : 12 ,
"first_seen" : "2026-02-01" ,
"estimated_monthly_cost" : 1200 ,
"risk_level" : "high" ,
"risk_factors" : ["database_access", "no_audit_logs", "admin_access"],
"approved_alternative" : null
}
]
},
"metadata" : { "request_id" : "req_m3n4o5p6q7" , "processing_time_ms" : 3200 }
} ▶ Error Scenarios (2)
Shadow AI Detection Discover unauthorized AI tool usage across your organization
POST /phantom/shadow-ai
Detect Shadow AI Identify unauthorized usage of AI tools and services across your organization. Detects usage of LLM APIs, AI coding assistants, image generators, and other AI services that may pose data security, compliance, or cost risks.
Parameters Name Type Required Description Default Example data_sources string[] Required Sources to scan - ["network", "sso_logs"] lookback_days integer Optional Days of historical data 30 60 include_api_usage boolean Optional Include direct API key usage true true
cURL Python Node.js
bash Copy
"color:#fbbf24" >curl "color:#67e8f9" >-X POST https://api. style="color:#fbbf24" >ifo4 .org/v1/phantom/shadow-ai \
"color:#67e8f9" >-H "X-API-Key: ">ifo4 _pro_abc123def456ghi789jkl012mno345" \
"color:#67e8f9" >-H "Content-Type: application/json" \
"color:#67e8f9" >-d '{
"data_sources" : ["network" , "sso_logs" , "expenses" ],
"lookback_days" : 60,
"include_api_usage" : true
}'Response json Copy
{
"status" : "success" ,
"data" : {
"ai_tools_detected" : 8 ,
"total_users" : 156 ,
"estimated_monthly_spend" : 4200 ,
"tools" : [
{
"name" : "ChatGPT (Personal)" ,
"provider" : "OpenAI" ,
"users" : 89 ,
"category" : "llm_chat" ,
"risk_level" : "high" ,
"risk_factors" : ["data_leakage", "no_enterprise_agreement", "no_dlp"],
"estimated_monthly_cost" : 1780 ,
"data_sensitivity" : "high"
},
{
"name" : "Midjourney" ,
"provider" : "Midjourney Inc" ,
"users" : 12 ,
"category" : "image_generation" ,
"risk_level" : "medium" ,
"risk_factors" : ["ip_ownership_unclear", "no_enterprise_plan"],
"estimated_monthly_cost" : 360
}
],
"recommendations" : [
"Consolidate LLM usage under enterprise OpenAI or Anthropic agreement",
"Implement DLP policies for AI chat interfaces",
"Create an approved AI tools catalog"
]
},
"metadata" : { "request_id" : "req_n4o5p6q7r8" , "processing_time_ms" : 2800 }
} ▶ Error Scenarios (1)
License Optimization Optimize SaaS license allocation and reduce waste
POST /phantom/license-optimization
Optimize Licenses Analyze SaaS license utilization across your organization. Identifies unused licenses, underutilized subscriptions, duplicate tools, and optimal license tier recommendations. Supports 500+ SaaS applications.
Parameters Name Type Required Description Default Example applications string[] Optional Specific apps to analyze (omit for all) - ["salesforce", "slack", "zoom"] usage_threshold number Optional Usage percentage below which a license is considered underutilized 10 15 lookback_days integer Optional Days of usage data to analyze 30 90
cURL Python Node.js
bash Copy
"color:#fbbf24" >curl "color:#67e8f9" >-X POST https://api. style="color:#fbbf24" >ifo4 .org/v1/phantom/license-optimization \
"color:#67e8f9" >-H "X-API-Key: ">ifo4 _pro_abc123def456ghi789jkl012mno345" \
"color:#67e8f9" >-H "Content-Type: application/json" \
"color:#67e8f9" >-d '{
"applications" : ["salesforce" , "slack" , "zoom" , "github" ],
"usage_threshold" : 15,
"lookback_days" : 90
}'Response json Copy
{
"status" : "success" ,
"data" : {
"total_licenses" : 1420 ,
"active_licenses" : 1180 ,
"underutilized_licenses" : 145 ,
"unused_licenses" : 95 ,
"potential_savings" : { "monthly" : 14250 , "annual" : 171000 },
"by_application" : [
{
"name" : "Salesforce" ,
"total_licenses" : 200 ,
"active" : 142 ,
"underutilized" : 28 ,
"unused" : 30 ,
"monthly_cost_per_license" : 150 ,
"potential_monthly_savings" : 8700 ,
"recommendation" : "Downgrade 28 underutilized users to Platform license ($25/mo)"
},
{
"name" : "Zoom" ,
"total_licenses" : 500 ,
"active" : 380 ,
"underutilized" : 65 ,
"unused" : 55 ,
"monthly_cost_per_license" : 20 ,
"potential_monthly_savings" : 2400 ,
"recommendation" : "Remove 55 unused licenses and convert 65 to Basic plan"
}
]
},
"metadata" : { "request_id" : "req_o5p6q7r8s9" , "processing_time_ms" : 1600 }
} ▶ Error Scenarios (1)
Vendor Risk Assess security and compliance risk of SaaS vendors
POST /phantom/vendor-risk
Assess Vendor Risk Evaluate the security posture and compliance risk of SaaS vendors and cloud services. Checks against SOC 2, ISO 27001, GDPR, HIPAA, and other compliance frameworks. Returns a risk score with detailed findings and recommendations.
Parameters Name Type Required Description Default Example vendor string Required Vendor name or domain - "notion.so" frameworks string[] Optional Compliance frameworks to check ["soc2", "gdpr"] ["soc2", "hipaa", "gdpr"] data_classification string Optional Sensitivity of data shared with vendor "internal" "confidential"
cURL Python Node.js
bash Copy
"color:#fbbf24" >curl "color:#67e8f9" >-X POST https://api. style="color:#fbbf24" >ifo4 .org/v1/phantom/vendor-risk \
"color:#67e8f9" >-H "X-API-Key: ">ifo4 _pro_abc123def456ghi789jkl012mno345" \
"color:#67e8f9" >-H "Content-Type: application/json" \
"color:#67e8f9" >-d '{
"vendor" : "notion.so" ,
"frameworks" : ["soc2" , "hipaa" , "gdpr" ],
"data_classification" : "confidential"
}'Response json Copy
{
"status" : "success" ,
"data" : {
"vendor" : "Notion" ,
"domain" : "notion.so" ,
"overall_risk" : "medium" ,
"risk_score" : 62 ,
"compliance" : {
"soc2" : { "status" : "certified" , "report_date" : "2025-12-01" , "type" : "Type II" },
"hipaa" : { "status" : "not_certified" , "baa_available" : false },
"gdpr" : { "status" : "compliant" , "dpa_available" : true , "data_residency" : ["US", "EU"] }
},
"security_findings" : [
{ "category" : "authentication" , "finding" : "SSO via SAML/OIDC supported" , "risk" : "low" },
{ "category" : "encryption" , "finding" : "AES-256 at rest, TLS 1.3 in transit" , "risk" : "low" },
{ "category" : "data_residency" , "finding" : "No option to restrict data to specific region" , "risk" : "medium" }
],
"recommendation" : "Suitable for internal data. Not recommended for confidential data without BAA and data residency controls."
},
"metadata" : { "request_id" : "req_p6q7r8s9t0" , "processing_time_ms" : 920 }
} ▶ Error Scenarios (2)
Oracle API 5 endpoints for SaaS portfolio management, utilization, and contract optimization
Portfolio Management Manage your complete SaaS application portfolio
GET /oracle/portfolio
Get SaaS Portfolio Retrieve your organization's complete SaaS application portfolio with spend, usage, contract, and compliance data for each application. Supports filtering, sorting, and pagination.
Parameters Name Type Required Description Default Example category string Optional Filter by application category - "productivity" status string Optional Filter by status (active, inactive, pending) "active" "active" sort_by string Optional Sort field (name, spend, users, renewal_date) "spend" "renewal_date" page integer Optional Page number 1 1 per_page integer Optional Results per page 20 50
cURL Python Node.js
bash Copy
"color:#fbbf24" >curl "https://api. style=" color:#fbbf24">ifo4 .org/v1/oracle/portfolio?status=active&sort_by=spend&per_page=50" \
"color:#67e8f9" >-H "X-API-Key: ">ifo4 _pro_abc123def456ghi789jkl012mno345" Response json Copy
{
"status" : "success" ,
"data" : {
"applications" : [
{
"id" : "app_001" ,
"name" : "Salesforce" ,
"category" : "crm" ,
"vendor" : "Salesforce Inc" ,
"status" : "active" ,
"monthly_spend" : 30000 ,
"annual_contract_value" : 345000 ,
"total_licenses" : 200 ,
"active_users" : 172 ,
"utilization_pct" : 86 ,
"contract" : { "start_date" : "2025-07-01" , "end_date" : "2026-06-30" , "auto_renew" : true },
"compliance" : { "soc2" : true , "hipaa" : true , "gdpr" : true }
},
{
"id" : "app_002" ,
"name" : "Slack" ,
"category" : "communication" ,
"vendor" : "Salesforce Inc" ,
"status" : "active" ,
"monthly_spend" : 8500 ,
"annual_contract_value" : 102000 ,
"total_licenses" : 500 ,
"active_users" : 485 ,
"utilization_pct" : 97 ,
"contract" : { "start_date" : "2025-01-01" , "end_date" : "2025-12-31" , "auto_renew" : true },
"compliance" : { "soc2" : true , "hipaa" : false , "gdpr" : true }
}
],
"summary" : { "total_applications" : 45 , "total_monthly_spend" : 186000 , "total_annual_spend" : 2232000 }
},
"pagination" : { "total" : 45 , "page" : 1 , "per_page" : 50 , "total_pages" : 1 },
"metadata" : { "request_id" : "req_q7r8s9t0u1" , "processing_time_ms" : 180 }
} ▶ Error Scenarios (1)
Utilization Tracking Track real-time SaaS application utilization
GET /oracle/utilization
Get Utilization Metrics Track real-time utilization metrics for SaaS applications. Returns login frequency, feature adoption, active user trends, and engagement scores. Helps identify underutilized subscriptions and optimize license counts.
Parameters Name Type Required Description Default Example app_id string Optional Specific application ID to query - "app_001" period string Optional Analysis period (7d, 30d, 90d, 12m) "30d" "90d" granularity string Optional Data granularity (daily, weekly, monthly) "weekly" "daily"
cURL Python Node.js
bash Copy
"color:#fbbf24" >curl "https://api. style=" color:#fbbf24">ifo4 .org/v1/oracle/utilization?app_id=app_001&period=90d&granularity=weekly" \
"color:#67e8f9" >-H "X-API-Key: ">ifo4 _pro_abc123def456ghi789jkl012mno345" Response json Copy
{
"status" : "success" ,
"data" : {
"app_id" : "app_001" ,
"app_name" : "Salesforce" ,
"period" : "90d" ,
"summary" : {
"total_licenses" : 200 ,
"active_users_avg" : 168 ,
"utilization_pct" : 84 ,
"engagement_score" : 72 ,
"logins_per_user_avg" : 18.5
},
"trends" : [
{ "week" : "2026-01-06" , "active_users" : 162 , "logins" : 2916 , "utilization_pct" : 81 },
{ "week" : "2026-01-13" , "active_users" : 165 , "logins" : 3135 , "utilization_pct" : 82.5 },
{ "week" : "2026-01-20" , "active_users" : 170 , "logins" : 3230 , "utilization_pct" : 85 }
],
"user_segments" : {
"power_users" : { "count" : 45 , "pct" : 22.5 },
"regular_users" : { "count" : 98 , "pct" : 49 },
"light_users" : { "count" : 25 , "pct" : 12.5 },
"inactive" : { "count" : 32 , "pct" : 16 }
}
},
"metadata" : { "request_id" : "req_r8s9t0u1v2" , "processing_time_ms" : 220 }
} ▶ Error Scenarios (2)
Commitment Simulation Model contract scenarios to optimize SaaS spending
POST /oracle/commitment-simulation
Simulate Commitment Scenarios Model different contract commitment scenarios for SaaS applications. Compare multi-year vs annual contracts, volume tiers, prepayment discounts, and negotiation levers. Returns NPV analysis, break-even points, and risk-adjusted recommendations.
Parameters Name Type Required Description Default Example app_id string Required Application to simulate for - "app_001" scenarios object[] Required Array of scenarios to model - [{ ... }] discount_rate number Optional Annual discount rate for NPV (decimal) 0.08 0.10 growth_rate number Optional Expected annual user growth rate (decimal) 0.10 0.15
cURL Python Node.js
bash Copy
"color:#fbbf24" >curl "color:#67e8f9" >-X POST https://api. style="color:#fbbf24" >ifo4 .org/v1/oracle/commitment-simulation \
"color:#67e8f9" >-H "X-API-Key: ">ifo4 _pro_abc123def456ghi789jkl012mno345" \
"color:#67e8f9" >-H "Content-Type: application/json" \
"color:#67e8f9" >-d '{
"app_id" : "app_001" ,
"scenarios" : [
{ "type" : "annual" , "term_years" : 1, "prepay" : false },
{ "type" : "multi_year" , "term_years" : 3, "prepay" : true, "discount_pct" : 20 },
{ "type" : "multi_year" , "term_years" : 2, "prepay" : false, "discount_pct" : 12 }
],
"discount_rate" : 0.08,
"growth_rate" : 0.10
}'Response json Copy
{
"status" : "success" ,
"data" : {
"app_name" : "Salesforce" ,
"current_annual_cost" : 345000 ,
"scenarios" : [
{
"name" : "1-Year Annual" ,
"total_cost" : 345000 ,
"npv" : 345000 ,
"savings_vs_current" : 0 ,
"risk" : "low" ,
"flexibility" : "high"
},
{
"name" : "3-Year Prepaid (20% off)" ,
"total_cost" : 828000 ,
"npv" : 756800 ,
"savings_vs_current" : 207000 ,
"savings_pct" : 20 ,
"risk" : "medium" ,
"flexibility" : "low" ,
"break_even_months" : 15
},
{
"name" : "2-Year Monthly (12% off)" ,
"total_cost" : 607200 ,
"npv" : 565600 ,
"savings_vs_current" : 82800 ,
"savings_pct" : 12 ,
"risk" : "low" ,
"flexibility" : "medium" ,
"break_even_months" : 0
}
],
"recommendation" : {
"best_value" : "3-Year Prepaid (20% off)" ,
"best_flexibility" : "2-Year Monthly (12% off)" ,
"rationale" : "3-year prepaid offers highest NPV savings but locks in commitment. 2-year monthly balances savings with flexibility."
}
},
"metadata" : { "request_id" : "req_s9t0u1v2w3" , "processing_time_ms" : 340 }
} ▶ Error Scenarios (2)
Negotiation AI-powered contract negotiation intelligence
POST /oracle/negotiation
Get Negotiation Intelligence Generate data-driven negotiation strategies for SaaS contract renewals and new purchases. Provides market pricing benchmarks, negotiation levers, discount expectations by vendor, and suggested counter-offer positions based on peer data from 2,500+ organizations.
Parameters Name Type Required Description Default Example vendor string Required Vendor name - "Salesforce" product string Required Product or edition - "Sales Cloud Enterprise" current_price number Optional Current price per unit per month - 150 license_count integer Required Number of licenses - 200 contract_type string Optional Renewal or new purchase "renewal" "renewal"
cURL Python Node.js
bash Copy
"color:#fbbf24" >curl "color:#67e8f9" >-X POST https://api. style="color:#fbbf24" >ifo4 .org/v1/oracle/negotiation \
"color:#67e8f9" >-H "X-API-Key: ">ifo4 _pro_abc123def456ghi789jkl012mno345" \
"color:#67e8f9" >-H "Content-Type: application/json" \
"color:#67e8f9" >-d '{
"vendor" : "Salesforce" ,
"product" : "Sales Cloud Enterprise" ,
"current_price" : 150,
"license_count" : 200,
"contract_type" : "renewal"
}'Response json Copy
{
"status" : "success" ,
"data" : {
"vendor" : "Salesforce" ,
"product" : "Sales Cloud Enterprise" ,
"market_pricing" : {
"list_price" : 165 ,
"median_price" : 132 ,
"p25_price" : 115 ,
"p75_price" : 148 ,
"your_price" : 150 ,
"percentile" : 72
},
"negotiation_levers" : [
{ "lever" : "Multi-year commitment" , "typical_discount" : "15-25%" , "risk" : "lock-in" },
{ "lever" : "Volume tier upgrade" , "typical_discount" : "10-18%" , "risk" : "overcommitment" },
{ "lever" : "Prepayment" , "typical_discount" : "5-10%" , "risk" : "cash flow" },
{ "lever" : "Bundle products" , "typical_discount" : "8-15%" , "risk" : "unused features" },
{ "lever" : "End-of-quarter timing" , "typical_discount" : "5-12%" , "risk" : "deadline pressure" }
],
"recommended_counter" : {
"target_price" : 120 ,
"aggressive_price" : 108 ,
"walk_away_price" : 140 ,
"estimated_annual_savings" : 72000 ,
"strategy" : "Lead with competitor comparison, emphasize multi-year commitment willingness, negotiate at end of Q2."
},
"peer_data" : { "sample_size" : 142 , "industry" : "technology" , "similar_size" : true }
},
"metadata" : { "request_id" : "req_t0u1v2w3x4" , "processing_time_ms" : 450 }
} ▶ Error Scenarios (1)
Renewals Track and optimize upcoming contract renewals
GET /oracle/renewals
Get Upcoming Renewals Retrieve a calendar of upcoming SaaS contract renewals with optimization recommendations, risk assessments, and preparation timelines. Helps prevent auto-renewals and ensures timely negotiation for the best terms.
Parameters Name Type Required Description Default Example days_ahead integer Optional Look-ahead window in days 90 180 min_value number Optional Minimum annual contract value to include 0 10000 sort_by string Optional Sort by (date, value, risk) "date" "value"
cURL Python Node.js
bash Copy
"color:#fbbf24" >curl "https://api. style=" color:#fbbf24">ifo4 .org/v1/oracle/renewals?days_ahead=180&min_value=10000&sort_by=date" \
"color:#67e8f9" >-H "X-API-Key: ">ifo4 _pro_abc123def456ghi789jkl012mno345" Response json Copy
{
"status" : "success" ,
"data" : {
"upcoming_renewals" : [
{
"app_id" : "app_003" ,
"name" : "Datadog" ,
"vendor" : "Datadog Inc" ,
"renewal_date" : "2026-05-15" ,
"days_until_renewal" : 52 ,
"annual_value" : 96000 ,
"auto_renew" : true ,
"cancel_deadline" : "2026-04-15" ,
"utilization_pct" : 72 ,
"risk_level" : "medium" ,
"recommendations" : [
"Negotiate volume discount - usage has grown 30%",
"Consider rightsizing monitoring tier",
"Request multi-year lock at current rate"
],
"preparation_status" : "action_needed"
},
{
"app_id" : "app_004" ,
"name" : "Snowflake" ,
"vendor" : "Snowflake Inc" ,
"renewal_date" : "2026-07-01" ,
"days_until_renewal" : 99 ,
"annual_value" : 240000 ,
"auto_renew" : false ,
"cancel_deadline" : null ,
"utilization_pct" : 85 ,
"risk_level" : "low" ,
"recommendations" : [
"Lock in current per-credit pricing",
"Pre-purchase credits for 10% additional discount"
],
"preparation_status" : "on_track"
}
],
"summary" : {
"total_renewals" : 8 ,
"total_value_at_risk" : 680000 ,
"action_needed" : 3 ,
"auto_renew_warning" : 2
}
},
"metadata" : { "request_id" : "req_u1v2w3x4y5" , "processing_time_ms" : 150 }
} ▶ Error Scenarios (1)
Credentials API Verify FinOps professional credentials and certifications
Verify Credential Verify the authenticity of an IFO4 credential or certification
POST /credentials/verify
Verify a Credential Verify the authenticity and status of an IFO4-issued credential, certification, or badge. Returns the credential holder's name, credential type, issue date, expiration, and current status. Useful for hiring platforms, job boards, and enterprise HR systems.
Parameters Name Type Required Description Default Example credential_id string Required Credential ID (from certificate or badge) - "IFO4-FCCO-2026-00142" holder_email string Optional Email for additional verification - "jane@example.com"
cURL Python Node.js
bash Copy
"color:#fbbf24" >curl "color:#67e8f9" >-X POST https://api. style="color:#fbbf24" >ifo4 .org/v1/credentials/verify \
"color:#67e8f9" >-H "X-API-Key: ">ifo4 _pro_abc123def456ghi789jkl012mno345" \
"color:#67e8f9" >-H "Content-Type: application/json" \
"color:#67e8f9" >-d '{
"credential_id" : "IFO4-FCCO-2026-00142"
}'Response json Copy
{
"status" : "success" ,
"data" : {
"valid" : true ,
"credential_id" : "IFO4-FCCO-2026-00142" ,
"credential_type" : "FinOps Certified Cost Optimizer" ,
"credential_code" : "FCCO" ,
"holder" : {
"name" : "Jane Smith" ,
"organization" : "Acme Corp"
},
"issued_date" : "2026-01-15" ,
"expiration_date" : "2028-01-15" ,
"status" : "active" ,
"verification_url" : "https://ifo4.org/verify/IFO4-FCCO-2026-00142"
},
"metadata" : { "request_id" : "req_v2w3x4y5z6" , "processing_time_ms" : 28 }
} ▶ Error Scenarios (2)
Maturity API Assess and benchmark your FinOps maturity level
Assess Maturity Evaluate your organization's FinOps maturity across key dimensions
POST /maturity/assess
Run Maturity Assessment Evaluate your organization's FinOps maturity across six key dimensions: visibility, optimization, operations, governance, culture, and tooling. Returns a maturity level (Crawl, Walk, Run), dimensional scores, peer comparison, and a prioritized improvement roadmap.
Parameters Name Type Required Description Default Example responses object Required Assessment questionnaire responses - { ... } industry string Optional Industry for peer comparison - "technology" company_size string Optional Company size bracket - "mid_market" include_roadmap boolean Optional Generate an improvement roadmap true true
cURL Python Node.js
bash Copy
"color:#fbbf24" >curl "color:#67e8f9" >-X POST https://api. style="color:#fbbf24" >ifo4 .org/v1/maturity/assess \
"color:#67e8f9" >-H "X-API-Key: ">ifo4 _pro_abc123def456ghi789jkl012mno345" \
"color:#67e8f9" >-H "Content-Type: application/json" \
"color:#67e8f9" >-d '{
"responses" : {
"visibility" : {
"cost_allocation" : 3,
"showback" : 2,
"reporting_frequency" : 4,
"dashboard_adoption" : 3
},
"optimization" : {
"rightsizing" : 2,
"commitment_coverage" : 3,
"waste_elimination" : 2,
"automation" : 1
},
"governance" : {
"policies_defined" : 4,
"policy_enforcement" : 2,
"budget_process" : 3,
"approval_workflows" : 3
}
},
"industry" : "technology" ,
"company_size" : "mid_market" ,
"include_roadmap" : true
}'Response json Copy
{
"status" : "success" ,
"data" : {
"overall_maturity" : "Walk" ,
"overall_score" : 2.6 ,
"max_score" : 5.0 ,
"dimensions" : {
"visibility" : { "score" : 3.0 , "level" : "Walk" , "peer_avg" : 3.2 },
"optimization" : { "score" : 2.0 , "level" : "Crawl" , "peer_avg" : 2.8 },
"operations" : { "score" : 2.5 , "level" : "Walk" , "peer_avg" : 2.6 },
"governance" : { "score" : 3.0 , "level" : "Walk" , "peer_avg" : 2.9 },
"culture" : { "score" : 2.2 , "level" : "Crawl" , "peer_avg" : 2.4 },
"tooling" : { "score" : 2.8 , "level" : "Walk" , "peer_avg" : 3.1 }
},
"peer_comparison" : {
"percentile" : 45 ,
"sample_size" : 186 ,
"industry" : "technology"
},
"roadmap" : [
{
"priority" : 1 ,
"dimension" : "optimization" ,
"action" : "Implement automated rightsizing recommendations" ,
"impact" : "high" ,
"effort" : "medium" ,
"timeline" : "1-3 months" ,
"estimated_savings" : "$25,000/month"
},
{
"priority" : 2 ,
"dimension" : "optimization" ,
"action" : "Increase reservation coverage from 45% to 70%" ,
"impact" : "high" ,
"effort" : "low" ,
"timeline" : "1-2 months" ,
"estimated_savings" : "$18,000/month"
},
{
"priority" : 3 ,
"dimension" : "culture" ,
"action" : "Launch FinOps training program for engineering teams" ,
"impact" : "medium" ,
"effort" : "medium" ,
"timeline" : "2-4 months"
}
]
},
"metadata" : { "request_id" : "req_w3x4y5z6a7" , "processing_time_ms" : 780 }
} ▶ Error Scenarios (2)
Troubleshooting Common issues, debugging tips, and frequently asked questions
Common Errors How to diagnose and resolve the most frequently encountered issues
1. "unauthorized" - API Key Issues Key not in header: Ensure you include the X-API-Key header, not AuthorizationWrong prefix: Keys must start with ifo4_ followed by the plan codeKey expired: Keys expire after 12 months. Generate a new one from the dashboardWrong environment: Sandbox keys won't work with the production API and vice versa2. "rate_limit_exceeded" - Too Many Requests Check plan limits: Free plan allows only 1 req/sec. Upgrade for higher throughputImplement caching: Cache pricing and benchmark data for at least 1 hourUse batch endpoints: Where available, batch multiple requests into one callExponential backoff: Implement jittered backoff starting at 1 second3. "validation_error" - Bad Request Data Required fields: Check the parameter table - fields marked Required must be presentData types: Numbers must be numbers (not strings). Use 125000 not "125000"Date formats: All dates must be ISO 8601: YYYY-MM-DDTHH:mm:ssZEnum values: Check the docs for valid enum options (e.g., "low", "medium", "high")4. "internal_error" - Server Issues Retry: Use exponential backoff with max 5 retriesCheck status: Visit status.ifo4.org for known outagesContact support: Include the request_id from the error response for faster resolution5. CORS Issues Not designed for browsers: The API does not include CORS headers by designUse a server-side proxy: Route browser requests through your backendUse the SDKs: Our official SDKs handle this automatically6. Timeout Issues Default timeout: API requests timeout after 30 secondsLarge requests: Analysis endpoints (forecasting, anomaly) may take longerAsync mode: For long-running jobs, use webhooks to receive results when ready7. Data Format Issues Content-Type: Always send Content-Type: application/jsonDates: Must be ISO 8601 format: YYYY-MM-DDTHH:mm:ssZCurrency: All monetary amounts in USD unless otherwise specifiedNumbers: Use numeric types, not strings, for all numeric fieldsDebugging Tips Best practices for diagnosing and resolving API issues
Always check the request_id: Every error response includes a request_id. Include this when contacting support for the fastest resolutionUse the Playground: Test requests interactively at api-platform/playground before writing codeEnable verbose logging: All official SDKs support verbose mode for detailed request/response loggingMonitor rate limit headers: Check X-RateLimit-Remaining proactively to avoid hitting limitsUse the sandbox: Test against sandbox.api.ifo4.org to avoid consuming production quotasCheck response status: Always check the top-level status field ("success" or "error") before processing dataValidate JSON payloads: Use a JSON validator before sending requests if you are constructing JSON manuallyInspect processing_time_ms: Unusually long response times may indicate complex queries that could be optimized💡 For complex debugging scenarios, reach out to support@ifo4.org with your request_id, the full request (redacting your API key), and the response you received. Our team typically responds within 4 hours during business days.
Frequently Asked Questions Quick answers to the most common questions about the IFO4 API
How do I get an API key?▼
What's the difference between plans?▼
Can I use the API from the browser?▼
How accurate is the pricing data?▼
How often is benchmark data updated?▼
Can I use the API for commercial products?▼
What happens if I exceed my rate limit?▼
How do I report a bug or request a feature?▼
Is there a status page?▼
Do you support GraphQL?▼
Can I get historical data?▼
How do I handle webhook retries?▼
What's the SLA for the API?▼
Can I test without a key?▼
How do I upgrade my plan?▼
What SDKs are available?▼