Submitting API Requests with Python 3 - A Tutorial

In this tutorial, we will create an API request with Python 3 using the Requests package. Requests is an elegant and simple HTTP library for Python that you can install using pip.

Submitting API Requests with Python 3 - A Tutorial
Subscribe to my newsletter
Sign up for my weekly newsletter where I share my thoughts on fintech, product management, culture, and travel.

    In this tutorial, we will create an API request with Python 3 using the Requests package. Requests is an elegant and simple HTTP library for Python that you can install using pip.

    Installing the Requests Package

    To install Requests globally, use the following command:

    $ pip3 install requests

    If you do not have Python 3, please see my Python 3 installation guide for instructions on how to install Python 3.

    Postman Echo

    In this tutorial, we will use Postman Echo to test our API calls with Python 3.

    Postman Echo is a service you can use to test your REST clients and make sample API calls. It provides endpoints for GET, POST, PUT, various auth mechanisms and other utility endpoints.

    The documentation for the endpoints as well as example responses can be found at https://postman-echo.com.

    The API Endpoint we are going to use is https://postman-echo.com/get?foo1=bar1&foo2=bar2

    Python GET API Example

    # Here we import the request library
    import requests
    
    # Here we define the api-endpoint 
    url = "https://postman-echo.com/get?foo1=bar1&foo2=bar2"
    
    # BASIC Authentication
    API_USERNAME = 'postman' 
    API_PASSWORD = 'password'
    
    # Here we define the headers
    headers = {'content-type' : 'application/vnd.json+api'}
    
    # Sending GET request and saving response as response object 
    r = requests.get(url, headers=headers, auth=(API_USERNAME, API_PASSWORD)) 
    
    # Printing the response object
    response = r.text 
    print("Response:%s"%response)

    In your terminal you want to run:

    python3 [file_path]

    You should see the following output:

    Response:{"args":{"foo1":"bar1","foo2":"bar2"},"headers":{"x-forwarded-proto":"https","x-forwarded-port":"443","host":"postman-echo.com","x-amzn-trace-id":"Root=1-5f2ded40-6fd756e8215fc9a2263ddfe0","user-agent":"python-requests/2.21.0","accept-encoding":"gzip, deflate","accept":"*/*","authorization":"Basic cG9zdG1hbjpwYXNzd29yZA=="},"url":"https://postman-echo.com/get?foo1=bar1&foo2=bar2"}

    Python POST API Example

    # Here we import the request library
    import requests, json
    
    # Here we define the api-endpoint 
    url = "https://postman-echo.com/post"
    
    # BASIC Authentication
    API_USERNAME = 'postman' 
    API_PASSWORD = 'password'
    
    # Here we define the headers
    headers = {'content-type' : 'application/vnd.json+api'}
    
    # Here we enter the json we want ot send to the API
    
    payload = {"foo1":"bar1", "foo2": "bar2"}
    
    # Sending POST request and saving response as response object 
    r = requests.post(url, headers=headers, auth=(API_USERNAME, API_PASSWORD), json=payload) 
    
    # Printing the response object
    response = r.text 
    print("Response:%s"%response)

    In your terminal you want to run:

    python3 [file_path]

    You should see the following output:

    Response:{"args":{},"data":{"foo1":"bar1","foo2":"bar2"},"files":{},"form":{},"headers":{"x-forwarded-proto":"https","x-forwarded-port":"443","host":"postman-echo.com","x-amzn-trace-id":"Root=1-5f2dea76-fc0c8a9ca2ef1426d3d96d58","content-length":"32","user-agent":"python-requests/2.21.0","accept-encoding":"gzip, deflate","accept":"*/*","content-type":"application/vnd.json+api","authorization":"Basic cG9zdG1hbjpwYXNzd29yZA=="},"json":{"foo1":"bar1","foo2":"bar2"},"url":"https://postman-echo.com/post"}
    

    Final Thoughts

    We covered only GET and POST API calls in this tutorial, but there are additional API calls such as PUT, PATCH, and DELETE.  For more information, you can reference Requests documentation. After completing this tutorial, you should be able to build more complicated scripts to submit API requests with Python 3.