Troubleshoot the Guardian API#
Fix common problems when calling the Guardian API.
Applies to: Guardian Classic
Save requests#
If you are planning to use the Guardian API for development work or for an extended period of time, using an application such as Postman can save you time by saving queries, formatting and presenting JSON responses.
HTTP code status#
The following table outlines the common HTTP codes received via the Guardian API, what status they indicate, and their meaning.
| Code | Status | Description |
|---|---|---|
| 200 | OK | Everything worked as expected. |
| 201 | Created | A new record was successfully created after a POST request. |
| 204 | No Content | A record was successfully updated after a PUT request. |
| 400 | Bad Request | Submitting malformed JSON or bad syntax. |
| 401 | Unauthorised | No valid API key was provided. |
| 403 | Forbidden | Parameters were valid but the request failed due to lack of permissions. For example, requesting to view details of a node that you do not have access to. |
| 422 | Unprocessable Entity | The request is logically incorrect - often missing a required parameter. For example, no policy_id provided when requesting a list of policy versions. |
| 500-504 | Server Errors | Server errors. |
Ignore self-Signed certificates#
If your appliance is using a self-signed certificate, you may need to implicitly trust the server before making an API request. The following section describes how to ignore the self-signed certificate for all web requests by adding an option to the script that corresponds to the programming language used.
cURL#
To ignore SSL certificate checks for cURL, add the -k option to your script.
PowerShell#
To ignore SSL certificate checks for PowerShell, add the -type @ option to your script. For example:
add-type @"
using System.Net;
using System.Security.Cryptography.X509Certificates;
public class TrustAllCertsPolicy : ICertificatePolicy {
public bool CheckValidationResult(
ServicePoint srvPoint, X509Certificate certificate,
WebRequest request, int certificateProblem) {
return true;
}
}
"@
[System.Net.ServicePointManager]::CertificatePolicy = New-Object TrustAllCertsPolicy
Ruby#
To ignore SSL certificate checks for HTTParty, add the :verify => false option. For example:
response = HTTParty.get(url, :headers => <auth_headers>, :verify => false)
Python#
To ignore SSL certificate checks when using the Python requests library, append verify=False as an option on all requests. For example:
response = requests.get(url, headers=headers, verify=False)
GoLang#
To ignore SSL certificate checks when using the default HTTP package in GoLang, disable all SSL checks before running any API calls by using the following line of code:
http.DefaultTransport.(*http.Transport).TLSClientConfig = &tls.Config{ InsecureSkipVerify: true }
Ruby SDK#
To ignore SSL certificate checks when using the Ruby SDK, the optional 4th parameter of the Account constructor allows you to ignore SSL certificate checks (defaults to false if omitted). For example:
o = UpGuard::Account.new("https://me.cloudhouse.com", "api_key", "sec_key", true)
Python SDK#
To ignore SSL certificate checks when using the Python SDK, the optional 4th parameter of the Account constructor allows you to ignore SSL certificate checks (defaults to false if omitted). For example:
o = upguard.Account("https://me.cloudhouse.com", "api_key", "sec_key", True)
Note
The Python and Ruby SDKs are currently invite-only. Please email helpdesk@cloudhouse.com if you are interested in helping us test with your use case.