1. Home
  2. Languages
  3. Python
  4. Getting Started with Python API Requests: A Beginner’s Guide

Getting Started with Python API Requests: A Beginner’s Guide

Sure! Here’s a detailed step-by-step guide for beginners on how to get started with making API requests in Python using the popular requests library. This guide will cover everything from setting up your environment to making basic GET and POST requests and handling responses.



Step 1: Understand What an API Request Is

  • API stands for Application Programming Interface.
  • APIs allow different software applications to communicate with each other.
  • An API request is when your program asks another program or service for some data or action.
  • Most web APIs work over HTTP using methods like GET, POST, PUT, DELETE.


Step 2: Set Up Your Python Environment

Before making API requests, make sure you have the right tools.

  1. Install Python
    Download and install Python from python.org if you haven’t yet.

  2. Create a Project Folder
    Open your terminal or command prompt:

    mkdir python_api_project
    cd python_api_project

  3. Set Up a Virtual Environment (optional but recommended)

    python -m venv venv

    Activate it:

    • On Windows: venv\Scripts\activate
    • On macOS/Linux: source venv/bin/activate

  4. Install the requests Library
    The requests library is a powerful and easy-to-use HTTP client for Python.

    pip install requests


Step 3: Import the requests Library

Create a new Python file, say api_request.py, open it in a text editor, and add:

python
import requests


Step 4: Make a Simple GET Request

A GET request retrieves data from a URL.

Example: Fetch JSON data from a placeholder API.

python
response = requests.get(‘https://jsonplaceholder.typicode.com/todos/1‘)
print(response.status_code) # 200 means successful response
print(response.json()) # Print the JSON content returned

  • response.status_code tells the HTTP status code.
  • response.json() parses the returned JSON data into a Python dictionary.


Step 5: Handle Errors and Exceptions

Sometimes the request might fail (e.g., no internet, server down). Use try/except to handle that:

python
try:
response = requests.get(‘https://jsonplaceholder.typicode.com/todos/1‘)
response.raise_for_status() # Raises error if status not 200-399
data = response.json()
print(data)
except requests.exceptions.HTTPError as err_http:
print(f"HTTP error occurred: {err_http}")
except requests.exceptions.ConnectionError as err_conn:
print(f"Connection error occurred: {err_conn}")
except requests.exceptions.Timeout as err_timeout:
print(f"Timeout error occurred: {err_timeout}")
except requests.exceptions.RequestException as err:
print(f"An error occurred: {err}")


Step 6: Make a POST Request

POST requests send data to the API to create or update resources.

Example: Sending JSON data to the placeholder API (Note: this API won’t save data but will simulate a response)

python
url = ‘https://jsonplaceholder.typicode.com/posts
my_data = {
‘title’: ‘foo’,
‘body’: ‘bar’,
‘userId’: 1
}

response = requests.post(url, json=my_data)
print(response.status_code)
print(response.json())

  • Use json=my_data to send JSON automatically with appropriate headers.
  • Alternatively, you can send form data using data=my_data.


Step 7: Using Headers and Authentication

APIs often require headers or authentication tokens.

Example: Passing headers

python
headers = {
‘Authorization’: ‘Bearer YOUR_ACCESS_TOKEN’,
‘Content-Type’: ‘application/json’
}
response = requests.get(‘https://api.example.com/user‘, headers=headers)
print(response.json())


Step 8: Explore More Features of requests

  • Timeouts: Avoid hanging requests
    python
    response = requests.get(url, timeout=5) # 5 seconds optional timeout

  • Query Parameters: Pass parameters to GET requests easily
    python
    params = {‘search’: ‘python’, ‘page’: 2}
    response = requests.get(‘https://api.example.com/items‘, params=params)
    print(response.url) # View URL with parameters attached


Step 9: Practice with Real APIs

Try out with real free APIs to build confidence.

Some good APIs for practice:


Step 10: Summary Checklist

  • [ ] Installed Python and requests library
  • [ ] Learned how to make GET and POST requests
  • [ ] Learned to handle errors and check status codes
  • [ ] Learned to send data and headers with requests
  • [ ] Practiced with sample or real-world APIs


Bonus: Sample Complete Script

python
import requests

def fetch_todo():
try:
url = ‘https://jsonplaceholder.typicode.com/todos/1
response = requests.get(url)
response.raise_for_status()
todo = response.json()
print(f"Todo title: {todo[‘title’]}")
except requests.exceptions.RequestException as e:
print(f"Request failed: {e}")

if name == ‘main‘:
fetch_todo()


That’s it! You should now have a good foundation to confidently work with API requests in Python.

If you want me to cover advanced topics like API pagination, authentication methods (OAuth, API keys), or async requests, just let me know!

Updated on June 3, 2025
Was this article helpful?

Related Articles

Leave a Comment