Bird
Raised Fist0
Flaskframework~5 mins

HTTP status codes for APIs in Flask - Cheat Sheet & Quick Revision

Choose your learning style10 modes available
Recall & Review
beginner
What does HTTP status code 200 mean in an API response?
Status code 200 means OK. It indicates the request was successful and the server returned the requested data.
Click to reveal answer
beginner
What is the purpose of HTTP status code 201 in APIs?
Status code 201 means Created. It shows that a new resource was successfully created on the server.
Click to reveal answer
beginner
When should you use HTTP status code 400 in an API?
Use status code 400 Bad Request when the client sends invalid or malformed data that the server cannot process.
Click to reveal answer
beginner
What does HTTP status code 404 indicate in an API?
Status code 404 means Not Found. It tells the client that the requested resource does not exist on the server.
Click to reveal answer
intermediate
Explain HTTP status code 500 and when it occurs.
Status code 500 means Internal Server Error. It happens when the server encounters an unexpected problem while processing the request.
Click to reveal answer
Which HTTP status code means the API request was successful and data is returned?
A200
B404
C500
D201
What status code should you return after successfully creating a new resource?
A201
B400
C404
D500
If the client sends bad data, which status code is appropriate?
A200
B201
C400
D404
Which status code tells the client the requested resource was not found?
A201
B404
C200
D500
What does status code 500 indicate?
ARequest successful
BResource created
CClient error
DServer error
Describe the main HTTP status codes you would use in a Flask API and what each means.
Think about success, creation, client errors, missing resources, and server errors.
You got /5 concepts.
    Explain why it is important to use correct HTTP status codes in API responses.
    Consider how clients react to different codes.
    You got /5 concepts.

      Practice

      (1/5)
      1. What HTTP status code should a Flask API return when a request is successful and data is sent back?
      easy
      A. 200 OK
      B. 404 Not Found
      C. 500 Internal Server Error
      D. 201 Created

      Solution

      1. Step 1: Understand the meaning of status codes

        200 means the request was successful and the server is returning the requested data.
      2. Step 2: Match the code to the scenario

        Since the request succeeded and data is returned, 200 OK is the correct code.
      3. Final Answer:

        200 OK -> Option A
      4. Quick Check:

        Success response = 200 OK [OK]
      Hint: Success with data? Use 200 OK [OK]
      Common Mistakes:
      • Confusing 201 Created with simple success
      • Using 404 when resource exists
      • Using 500 for client errors
      2. Which of the following is the correct way to return a JSON response with a 201 status code in Flask?
      easy
      A. return data, code=201
      B. return data, status=201
      C. return json.dumps(data), 201
      D. return jsonify(data), 201

      Solution

      1. Step 1: Recall Flask's return syntax for JSON and status

        Flask uses jsonify() to convert data to JSON and returns a tuple (response, status_code).
      2. Step 2: Identify the correct syntax

        return jsonify(data), 201 correctly uses jsonify(data), 201 to return JSON with status 201.
      3. Final Answer:

        return jsonify(data), 201 -> Option D
      4. Quick Check:

        Flask JSON + status = jsonify(data), 201 [OK]
      Hint: Use jsonify() and return tuple (data, status) [OK]
      Common Mistakes:
      • Using json.dumps without jsonify
      • Incorrect keyword arguments like status= or code=
      • Returning raw data without JSON conversion
      3. Consider this Flask route code:
      from flask import Flask, jsonify
      app = Flask(__name__)
      
      @app.route('/item/')
      def get_item(id):
          items = {1: 'apple', 2: 'banana'}
          if id in items:
              return jsonify({'item': items[id]}), 200
          else:
              return jsonify({'error': 'Item not found'}), 404

      What HTTP status code will be returned when accessing /item/3?
      medium
      A. 200
      B. 404
      C. 500
      D. 201

      Solution

      1. Step 1: Check if id 3 exists in items dictionary

        Items only have keys 1 and 2, so 3 is not found.
      2. Step 2: Identify the returned status code for missing item

        The else block returns 404 Not Found with an error message.
      3. Final Answer:

        404 -> Option B
      4. Quick Check:

        Missing resource = 404 Not Found [OK]
      Hint: Missing item? Return 404 Not Found [OK]
      Common Mistakes:
      • Assuming 200 even if item missing
      • Confusing 404 with 500 server error
      • Returning 201 for missing resource
      4. This Flask API code is intended to return a 400 Bad Request if the 'name' field is missing in JSON input:
      @app.route('/add', methods=['POST'])
      def add():
          data = request.get_json()
          if 'name' not in data:
              return {'error': 'Name required'}, 400
          return {'message': 'Added'}, 201

      What is the main problem with this code?
      medium
      A. It returns a dict instead of using jsonify
      B. It returns 201 instead of 200 on success
      C. It does not import request from flask
      D. It uses wrong status code for missing name

      Solution

      1. Step 1: Check imports needed for request

        The code uses request.get_json() but does not show importing request from flask.
      2. Step 2: Identify the error caused by missing import

        Without importing request, the code will raise a NameError at runtime.
      3. Final Answer:

        It does not import request from flask -> Option C
      4. Quick Check:

        Missing import request causes error [OK]
      Hint: Always import request to use request.get_json() [OK]
      Common Mistakes:
      • Ignoring missing imports causing runtime errors
      • Thinking returning dict is invalid (Flask accepts dict)
      • Confusing 201 Created as wrong success code here
      5. You want to create a Flask API endpoint that creates a new user. If the username already exists, return 400 Bad Request. If creation succeeds, return 201 Created with the new user's ID. Which code snippet correctly implements this behavior?
      hard
      A. def create_user(): data = request.get_json() if data['username'] in users: return {'error': 'User exists'}, 400 new_id = len(users) + 1 users[new_id] = data['username'] return {'id': new_id}, 201
      B. def create_user(): data = request.get_json() if data['username'] in users: return {'error': 'User exists'}, 404 new_id = len(users) + 1 users[new_id] = data['username'] return {'id': new_id}, 200
      C. def create_user(): data = request.get_json() if data['username'] in users: return {'error': 'User exists'}, 500 new_id = len(users) + 1 users[new_id] = data['username'] return {'id': new_id}, 201
      D. def create_user(): data = request.get_json() if data['username'] in users: return {'error': 'User exists'}, 201 new_id = len(users) + 1 users[new_id] = data['username'] return {'id': new_id}, 400

      Solution

      1. Step 1: Check status code for existing user

        400 Bad Request is correct when username already exists, indicating client error.
      2. Step 2: Check status code for successful creation

        201 Created is the correct code for successful resource creation.
      3. Step 3: Verify code matches these codes

        def create_user(): data = request.get_json() if data['username'] in users: return {'error': 'User exists'}, 400 new_id = len(users) + 1 users[new_id] = data['username'] return {'id': new_id}, 201 returns 400 for existing user and 201 for success, matching requirements.
      4. Final Answer:

        Option A code snippet -> Option A
      5. Quick Check:

        Existing user = 400, success = 201 [OK]
      Hint: Use 400 for bad input, 201 for successful creation [OK]
      Common Mistakes:
      • Using 404 or 500 for existing user error
      • Returning 200 instead of 201 on creation
      • Mixing up success and error codes
      Recommended

      Ready to prove it?

      Pass the test and this pattern moves unknown strong while earning +1 Grip toward your certificate.

      10 questions~5 mineasy hard