Debug API requests in Postman

If an API request isn't behaving as expected, there can be many possible reasons. You can ask Postbot to help you find out what the problem is, you can use the Postman Console to troubleshoot the request, or you can debug the request by HTTP version. This guide also lists some common issues and their causes.

This guide discusses troubleshooting API requests. To troubleshoot issues with the Postman app, see Troubleshoot app issues. To troubleshoot issues with Postman Monitors, see Troubleshooting monitors.

Troubleshooting your requests

Postman will indicate any whitespace or invalid characters in parts of your request that may not function as expected so that you can rectify your values. Invalid characters are highlighted in the request method, URL (including the path), parameters, headers (including your key names), and body.

Invalid Characters

If Postman isn't able to send your request or doesn't receive a response, you will get a message with details about the error. Select View in Console to get an overview of your request and to help identify the source of the issue.

Debugging requests with Postbot

If you get an unexpected error when you send a request, you can ask Postbot for help. Select Postbot icon What's wrong? in the error message. Postbot will tell you about any problems it can identify, and it will offer possible solutions for fixing the issue.

For more information on Postbot, visit About Postbot.

Debug a request with Postbot

Debugging in the Console

Every request sent by Postman is logged in the Postman Console, so you can view the detail of what happened when you sent a request. This means you can use the Console to help debug your requests when an API isn't behaving as you expect. Keeping the Console open while you work will increase the visibility of your network calls and log messages while debugging.

The Postman Console logs the following information:

  • The primary request that was sent, including all underlying request headers, variable values, and redirects.
  • The proxy configuration and certificates used for the request.
  • Network information such as IP addresses, ciphers, and protocols used.
  • Log statements and asynchronous requests from test or pre-request scripts.
  • The raw response sent by the server before it's processed by Postman.

Monitor results are logged to a separate console. For more information on how to view logs from a monitor run, see View monitor results.

Opening the Console

Open the Console by selecting Console icon Console in the Postman footer. In the Postman desktop app, you can use ⌘+Option+C or Ctrl+Alt+C to open the Postman Console in a new window.

Viewing request errors from the Console

You will get an error message if Postman isn't able to send your request or doesn't receive a response from the API you sent the request to. This message includes an overview of the issue and a link to the Console. There you can access detailed information about the request.

Request not sent

Select View in Console to inspect the request details in the Console and find out more about what went wrong.

Error in Console

The Postman Console displays network information and the request and response headers and body for each request, together with any Console output messages coming from your scripts.

Filter by log message type under All Logs. Select the more actions icon More actions icon to turn timestamps and network information on or off.

Console options

The Console will log the last 5,000 messages and 24 hours by default. Select Clear to empty the list.

Using log statements

Using log statements at appropriate locations in your post-response scripts can help you debug your requests. Postman accepts the following log statements:

  • console.log()
  • console.info()
  • console.warn()
  • console.error()
  • console.clear()
Console info

Debugging by HTTP version

You can specify the HTTP version to use for requests. Postman supports HTTP versions 1.0, 1.1, and 2.0. The HTTP version you select is the default version you'll use globally to send HTTP requests. You can override the default version for an individual request.

It's useful to specify an HTTP version when debugging API requests so you can test requests by version. It's also useful for verifying if API requests support the expected HTTP version.

If the API supports HTTP version 2.0, make sure the request URL uses the https scheme. If you're using the Postman web app, also make sure you send requests with the Postman Desktop Agent. The supported 1.x HTTP version will be used in the following scenarios:

To specify an HTTP version for your requests, do the following:

  1. Select the settings icon Settings icon in the header, then select Settings to specify an HTTP version globally. You can also specify the version for an individual HTTP request by opening it, then selecting the Settings tab.

  2. Select the HTTP version dropdown list next to HTTP Version.

    If you specify an HTTP version for an individual request, you can select Restore Default. This changes the HTTP version to the default version specified globally.

  3. Select one of the following options:

    • Auto - Postman automatically selects HTTP version 1.0, 1.1, or 2.0, depending on which version the API supports and prefers.

    • HTTP/1.x - Send the request using HTTP version 1.0 or 1.1.

    • HTTP/2 - Send the request using HTTP version 2.0.

    If the API doesn't support the HTTP version you selected, an error displays in the response area. For example, the error will display if you select HTTP/2 and the API doesn't support HTTP version 2.0.

After you send a request, you can verify the HTTP version in the response pane. Hover over the network icon Network information locked icon to view information about the HTTP version that was used to send the request.

Hover over the network icon for network information

Common issues

If your issue with sending a request isn't listed here, see Getting help for information how to contact Postman support.

IssueResolving the issue
ConnectivityIf Postman fails to send your request, you may be experiencing connectivity issues. Check your connection by attempting to open a page in your web browser.
FirewallsSome firewalls may be configured to block non-browser connections. If this happens you will need to contact your network administrators for Postman to work.
Proxy configurationIf you are using a proxy server to make requests, check your configuration. By default, Postman uses the proxy settings configured in your operating system's network settings. The Postman Console will provide debugging information regarding proxy servers.
SSL certificatesYou may experience issues using HTTPS connections. You can turn off SSL certificate verification in Settings by selecting the settings icon Settings icon then Settings > General. If that doesn't help, your server might be using a client-side SSL connection, which you can configure by selecting the settings icon Settings icon then Settings > Certificates. Use the Postman Console to ensure that the correct SSL certificate is being sent to the server. Learn more about working with certificates.
Client certificatesClient certificates may be required for your API server. You can add a client certificate in Settings by selecting the settings icon Settings icon then Settings > Certificates.
Wrong request URLsIf you are using variables or path parameters with your request, make sure the final address is correct by opening the Postman Console, which will display the URL your request was sent to when it runs. Unresolved request variables can result in invalid server addresses.
Wrong protocolCheck if you're using https:// instead of http:// in your URL (or the opposite).
Short timeoutsIf you configure a short timeout in Postman, the request could be timing out before completion, resulting in an error. To avoid this issue, increase the Request timeout in Settings by selecting the settings icon Settings icon then Settings > General.
Invalid responsesIf your server sends the wrong response encoding errors, or invalid headers, Postman may fail to interpret the response.
TLS versionPostman supports TLS version 1.2 and higher, which may not be supported if you are using an older browser or operating system.
Postman errorsIt's possible that Postman might be making invalid requests to your API server. You can confirm this by checking your server logs, if available. If you believe this is happening, contact the Postman team using the GitHub issue tracker.
Empty variablesAn empty variable is a variable that doesn't have a current value and is referenced in a request. For more information on why this happens and how to solve the problem, see Fixing empty variables.
CORSIf the Postman web app fails to send your request, you may be experiencing a cross-origin resource sharing (CORS) error. Make sure you're using the best Postman Agent for your request.

Getting help

If you are still having problems with your request, there are options for you to get help:

  • Ask for community help in the Postman forum.
  • If you think the problem is with Postman itself, search the issue tracker on GitHub to check if someone has already reported the issue and whether there is a known solution.
  • If you need to include confidential data, file a support ticket with Postman support, including your Console logs.

Last modified: 2023/10/05