python requests library authorization bearer

Understanding Python Requests Library Authorization with Bearer Token

If you are working with APIs, you must be familiar with the authorization process. Most of the APIs require an access token to authenticate a request. Bearer token authentication is one of the most commonly used authentication methods for APIs. In this article, we will discuss how to use the Python Requests library to send requests with a bearer token.

What is Bearer Token?

A bearer token is an access token that is used to authenticate a request. It is a string of characters that is sent along with the request to an API. The API checks if the bearer token is valid before processing the request. If the token is valid, the API responds with the requested data.

Using Python Requests Library with Bearer Token

Python Requests library provides an easy way to send HTTP requests using Python. To send requests with a bearer token, we need to pass the token in the Authorization header.


import requests

url = "https://api.example.com/data"
token = "your_token_here"

headers = {
    "Authorization": f"Bearer {token}"
}

response = requests.get(url, headers=headers)

print(response.json())
  

In the above code, we are sending a GET request to an API endpoint. We pass the bearer token in the Authorization header using f-string formatting. The response from the API is printed in JSON format.

Multiple Ways to Pass Bearer Token

There are multiple ways to pass a bearer token in the Authorization header. Let's see a few of them.

  • Using a dictionary:

headers = {
    "Authorization": "Bearer " + token
}
    
  • Using the requests library built-in authentication:

import requests

url = "https://api.example.com/data"
token = "your_token_here"

response = requests.get(
    url,
    auth=requests.auth.HTTPBearerAuth(token)
)

print(response.json())
    
  • Using a session object:

import requests

url = "https://api.example.com/data"
token = "your_token_here"

session = requests.Session()
session.headers.update({"Authorization": f"Bearer {token}"})

response = session.get(url)

print(response.json())