Base URL: https://app.cloudfix.com/api/v3
Conventions
-
Use HTTPS only.
-
Send Authorization headers for all protected endpoints.
-
Replace placeholders like and with real values.
Auth method options
You can authenticate either with a session token (Bearer) from login/SSO or with an API token generated in the CloudFix UI. Both are accepted by the API.
Workflow: Login and call a protected endpoint
-
Login to get a token
curl -s -X POST "https://app.cloudfix.com/api/v3/auth/login" \
-H "Content-Type: application/json" \
-d '{"username":"user@example.com","password":"YOUR_PASSWORD"}'
-
Call a protected endpoint with the token
curl -s "https://app.cloudfix.com/api/v3/recommendations?pageNumber=1&pageLimit=10" \ -H "Authorization: Bearer <token>"
Workflow: Refresh an access token
curl -s -X POST "https://app.cloudfix.com/api/v3/auth/refresh" \
-H "Content-Type: application/json" \
-d '{"refreshToken":"<refresh_token>"}'
Workflow: Create and use an API token
-
Create token
curl -s -X POST "https://app.cloudfix.com/api/v3/tokens" \
-H "Authorization: Bearer <token>" \
-H "Content-Type: application/json" \
-d '{"name":"automation-token","role":"Reader"}'
-
Use token
curl -s "https://app.cloudfix.com/api/v3/recommendations?pageNumber=1&pageLimit=10" \ -H "Authorization: api-token <token>"
Workflow: Retrieve recommendations and summary
curl -s "https://app.cloudfix.com/api/v3/recommendations/summary" \ -H "Authorization: Bearer <token>"
curl -s "https://app.cloudfix.com/api/v3/recommendations/summary-filters" \ -H "Authorization: Bearer <token>"
How to use summary-filters
curl -s "https://app.cloudfix.com/api/v3/recommendations/summary?ou=OU-1&account=123456789012®ion=us-east-1" \ -H "Authorization: Bearer <token>"
Workflow: Get a recommendation report
curl -s "https://app.cloudfix.com/api/v3/recommendations/report?recommendationId=<recommendationId>" \ -H "Authorization: Bearer <token>"
From summary to a single recommendation ID
The summary is an aggregate list and does not include recommendation IDs. To get IDs:
-
Use /recommendations with filters, including finderFixerId (often the same value as subCategoryTypeName from the summary).
-
Optionally scope to an account using filterBy=accountId and filterValue=.
-
Read the id field from the results list and use it for actions like report retrieval.
Example:
curl -s "https://app.cloudfix.com/api/v3/recommendations?finderFixerId=Ec2Retype&pageNumber=1&pageLimit=10" \ -H "Authorization: Bearer <token>"
Example using your summary row:
curl -s "https://app.cloudfix.com/api/v3/recommendations?finderFixerId=EbsDeleteOldVolumeSnapshots&filterBy=accountId&filterValue=123456789012&pageNumber=1&pageLimit=10" \ -H "Authorization: Bearer <token>"
Workflow: Admin - manage users
curl -s "https://app.cloudfix.com/api/v3/users" \
-H "Authorization: Bearer <token>"
curl -s -X POST "https://app.cloudfix.com/api/v3/users" \
-H "Authorization: Bearer <token>" \
-H "Content-Type: application/json" \
-d '{"username":"johndoe","firstName":"John","lastName":"Doe","role":"READER"}'
Troubleshooting
-
401 Unauthorized: missing or invalid Authorization header
-
403 Forbidden: valid token, but lacking required permissions
-
404 Not Found: wrong path or method
-
400 Bad Request: invalid payload or missing required fields
Bill Gleeson
Comments