Bird
Raised Fist0
Rest APIprogramming~20 mins

Pagination metadata in response in Rest API - Practice Problems & Coding Challenges

Choose your learning style10 modes available

Start learning this pattern below

Jump into concepts and practice - no test required

or
Recommended
Test this pattern10 questions across easy, medium, and hard to know if this pattern is strong
Challenge - 5 Problems
🎖️
Pagination Pro
Get all challenges correct to earn this badge!
Test your skills under time pressure!
Predict Output
intermediate
1:30remaining
What is the output of this pagination metadata JSON?
Given this API response snippet, what is the value of total_pages?
Rest API
{
  "data": ["item1", "item2"],
  "pagination": {
    "page": 2,
    "per_page": 2,
    "total_items": 5,
    "total_pages": 3
  }
}
A4
B2
C5
D3
Attempts:
2 left
💡 Hint
Total pages is total items divided by items per page, rounded up.
🧠 Conceptual
intermediate
1:00remaining
Which field is essential to indicate the current page in pagination metadata?
In a paginated API response, which metadata field tells the client which page of results is being returned?
A"page"
B"total_items"
C"per_page"
D"total_pages"
Attempts:
2 left
💡 Hint
Think about which number tells you where you are in the list of pages.
Predict Output
advanced
1:30remaining
What is the value of has_next in this pagination metadata?
Given this pagination metadata, what is the value of has_next if it is defined as page < total_pages?
Rest API
{
  "page": 4,
  "per_page": 10,
  "total_items": 45,
  "total_pages": 5
}
Anull
Bfalse
Ctrue
Derror
Attempts:
2 left
💡 Hint
Compare current page number with total pages.
🔧 Debug
advanced
2:00remaining
What error does this pagination metadata cause?
This API returns pagination metadata with total_pages set to 0 but total_items is 10 and per_page is 5. What problem will this cause?
Rest API
{
  "page": 1,
  "per_page": 5,
  "total_items": 10,
  "total_pages": 0
}
ANo error, metadata is valid
BClient thinks there are no pages and shows no results
CDivision by zero error on client side
DInfinite loop in pagination navigation
Attempts:
2 left
💡 Hint
If total_pages is zero but there are items, what does that mean for pagination?
🚀 Application
expert
2:30remaining
How to calculate offset for database query from pagination metadata?
Given pagination metadata with page and per_page, which formula correctly calculates the offset to fetch items from a database?
Aoffset = (page - 1) * per_page
Boffset = page * per_page
Coffset = per_page - page
Doffset = total_items - per_page
Attempts:
2 left
💡 Hint
Offset is how many items to skip before starting to fetch the current page.

Practice

(1/5)
1.

What is the main purpose of including pagination metadata in a REST API response?

easy
A. To inform the client about the current page and total pages available
B. To encrypt the data for security reasons
C. To compress the response size for faster transmission
D. To validate the user's authentication token

Solution

  1. Step 1: Understand pagination metadata role

    Pagination metadata provides information about the current page, total pages, and items per page to help clients navigate large data sets.
  2. Step 2: Identify the correct purpose

    Among the options, only informing the client about page details matches the role of pagination metadata.
  3. Final Answer:

    To inform the client about the current page and total pages available -> Option A
  4. Quick Check:

    Pagination metadata = page info [OK]
Hint: Pagination metadata tells page info, not security or compression [OK]
Common Mistakes:
  • Confusing pagination metadata with security features
  • Thinking it compresses data
  • Assuming it validates user tokens
2.

Which of the following is the correct JSON structure for pagination metadata in a REST API response?

{
  "data": [...],
  "pagination": {
    "current_page": 1,
    "total_pages": 5,
    "per_page": 10
  }
}
easy
A. { "pagination": "page 1 of 5" }
B. { "page": 1, "pages": 5, "size": 10 }
C. { "pagination": [1, 5, 10] }
D. { "pagination": { "current_page": 1, "total_pages": 5, "per_page": 10 } }

Solution

  1. Step 1: Check JSON structure for pagination metadata

    The correct structure uses a nested object with keys like current_page, total_pages, and per_page to clearly describe pagination details.
  2. Step 2: Compare options to the example

    { "pagination": { "current_page": 1, "total_pages": 5, "per_page": 10 } } matches the example with a nested object and descriptive keys, while others use incorrect formats or data types.
  3. Final Answer:

    { "pagination": { "current_page": 1, "total_pages": 5, "per_page": 10 } } -> Option D
  4. Quick Check:

    Pagination metadata = nested object with page info [OK]
Hint: Look for nested object with clear keys for pagination [OK]
Common Mistakes:
  • Using arrays instead of objects for metadata
  • Using strings instead of structured data
  • Omitting descriptive keys
3.

Given this REST API response snippet, what is the value of response.pagination.total_pages?

{
  "data": [{"id":1}, {"id":2}],
  "pagination": {
    "current_page": 2,
    "total_pages": 4,
    "per_page": 2
  }
}
medium
A. 2
B. 4
C. 1
D. Undefined

Solution

  1. Step 1: Locate the total_pages key in the response

    Within the pagination object, total_pages is set to 4.
  2. Step 2: Confirm the value of total_pages

    The value 4 indicates the total number of pages available in the data set.
  3. Final Answer:

    4 -> Option B
  4. Quick Check:

    total_pages = 4 [OK]
Hint: Find total_pages key inside pagination object [OK]
Common Mistakes:
  • Confusing current_page with total_pages
  • Assuming total_pages is the length of data array
  • Missing the nested pagination object
4.

Identify the error in this pagination metadata snippet and select the fix:

{
  "data": [...],
  "pagination": {
    "currentPage": 1,
    "totalPages": 3,
    "perPage": 10
  }
}
medium
A. Remove the pagination object completely
B. Change values to strings instead of numbers
C. Change keys to snake_case: current_page, total_pages, per_page
D. Add a new key called page_count

Solution

  1. Step 1: Check key naming conventions in pagination metadata

    Standard REST API pagination metadata uses snake_case keys like current_page, total_pages, and per_page for consistency.
  2. Step 2: Identify the fix for camelCase keys

    Changing currentPage, totalPages, perPage to snake_case fixes the inconsistency and aligns with common API practices.
  3. Final Answer:

    Change keys to snake_case: current_page, total_pages, per_page -> Option C
  4. Quick Check:

    Use snake_case keys for pagination metadata [OK]
Hint: Use snake_case keys for pagination metadata [OK]
Common Mistakes:
  • Leaving camelCase keys in metadata
  • Removing pagination metadata entirely
  • Changing numeric values to strings unnecessarily
5.

You have an API returning 45 items with per_page set to 10. How many pages should the total_pages metadata show?

hard
A. 5
B. 6
C. 4
D. 10

Solution

  1. Step 1: Calculate total pages from total items and per_page

    Total pages = total items divided by items per page, rounded up. Here, 45 / 10 = 4.5, rounded up to 5.
  2. Step 2: Confirm the correct total_pages value

    Since 4 pages would only cover 40 items, 5 pages are needed to cover all 45 items.
  3. Final Answer:

    5 -> Option A
  4. Quick Check:

    Ceil(45/10) = 5 pages [OK]
Hint: Divide total items by per_page, round up [OK]
Common Mistakes:
  • Using floor division instead of ceiling
  • Ignoring leftover items on last page
  • Assuming total_pages equals per_page