diff --git a/pybgg_json/pybgg_json.py b/pybgg_json/pybgg_json.py
index 3f23f4b..bd105bc 100755
--- a/pybgg_json/pybgg_json.py
+++ b/pybgg_json/pybgg_json.py
@@ -111,4 +111,25 @@ class PyBggInterface(object):
 
         root = pybgg_utils._make_request(plays_url)
         
+        return json.dumps(pybgg_utils._generate_dict_from_element_tree(root))
+    
+    def collection_request(self, username, subtype='boardgame', exclude_subtype=None, id=None,
+                           brief=None, stats=None, own=None, rated=None, playerd=None, comment=None,
+                           trade=None, want=None, wishlist=None, wishlist_priority=None, preordered=None,
+                           wanttoplay=None, wanttobuy=None, prevowned=None, hasparts=None, wantparts=None,
+                           minrating=None, rating=None, minbggrating=None, bggrating=None, minplays=None,
+                           maxplays=None, showprivate=None, collid=None, modifiedsince=MIN_DATE):
+        
+        collection_url = (
+                    f"collection?username={username}&subtype={subtype}"
+        )
+        
+        for arg, arg_val in locals().items():
+            if arg_val is not None:
+                collection_url += f"{arg}={arg_val}&"
+        collection_url += f"modifiedsince={modifiedsince}"
+            
+        
+        root = pybgg_utils._make_request(collection_url)
+        
         return json.dumps(pybgg_utils._generate_dict_from_element_tree(root))
\ No newline at end of file

Collections Requests
diff --git a/tests/test_pybgg_json.py b/tests/test_pybgg_json.py
index 92687e4..b9d66aa 100644
--- a/tests/test_pybgg_json.py
+++ b/tests/test_pybgg_json.py
@@ -3,13 +3,13 @@ import json
 import unittest
 
 expected_keys = {
-    'items': ['termsofuse', 'item'],
+    'items': ['termsofuse', 'item', 'totalitems', 'pubdate'],
     # There are actually multiple fields that use item as a keyword, so this combines all seen
     'item': ['type', 'id', 'thumbnail', 'image', 'name', 'description', 'yearpublished',
              'minplayers', 'maxplayers', 'poll', 'playingtime', 'productcode', 'minplaytime', 'maxplaytime',
              'minage', 'link', 'width', 'length', 'depth', 'weight', 'versions', 'videos',
              'comments', 'ratingcomments', 'statistics', 'marketplacelistings', 'rank', 'objecttype',
-             'objectid', 'subtypes'],
+             'objectid', 'subtypes', 'subtype', 'collid', 'status', 'numplays'],
     'name': ['primary', 'alternate'],
     'primary': ['sortindex', 'value'],
     'alternate': ['sortindex', 'value'],
@@ -71,6 +71,7 @@ expected_keys = {
     'subtypes': ['subtype'],
     'players': ['player'],
     'player': ['username', 'userid', 'name', 'startposition', 'color', 'score', 'new', 'rating', 'win'],
+    'status': ['own', 'prevowned', 'fortrade', 'want', 'wanttoplay', 'wanttobuy', 'wishlist', 'preordered', 'lastmodified'],
 }
 
 
@@ -81,9 +82,9 @@ def check_all_element_data(elem, parent_key):
     if type(elem) != dict:
         return True
 
-    # print(parent_key)
-    # print(elem.keys())
-    # print(expected_keys.get(parent_key, {}))
+    print(parent_key)
+    print(elem.keys())
+    print(expected_keys.get(parent_key, {}))
 
     return all(item in expected_keys.get(parent_key, {}) for item in elem.keys())
 
@@ -213,3 +214,7 @@ def test_guild_request_members():
 def test_plays_basic_request():
     bgg_int = PyBggInterface()
     assert check_json(bgg_int.plays_request(username='mcpat0226')) == True
+    
+def test_collection_request_basic():
+    bgg_int = PyBggInterface()
+    assert check_json(bgg_int.collection_request(username='mcpat0226')) == True

pip install -e .
parse_log_pytest
pytest
pytest
python -m pip install --upgrade pip
3.9
pytest --no-header -rA --tb=line --color=no -p no:cacheprovider -W ignore::DeprecationWarning
certifi==2025.1.31
charset-normalizer==3.4.1
exceptiongroup @ file:///croot/exceptiongroup_1706031385326/work
idna==3.10
iniconfig @ file:///home/linux1/recipes/ci/iniconfig_1610983019677/work
packaging @ file:///croot/packaging_1734472117206/work
pluggy @ file:///croot/pluggy_1733169602837/work
-e git+https://github.com/SnarkAttack/pybgg-json.git@7896b4e1fde6c0bf79a9d47af375599ee47d9d12#egg=pybgg_json
pytest @ file:///croot/pytest_1738938843180/work
requests==2.32.3
tomli @ file:///opt/conda/conda-bld/tomli_1657175507142/work
urllib3==2.3.0

name: pybgg-json
channels:
  - defaults
  - https://repo.anaconda.com/pkgs/main
  - https://repo.anaconda.com/pkgs/r
  - conda-forge
dependencies:
  - _libgcc_mutex=0.1=main
  - _openmp_mutex=5.1=1_gnu
  - ca-certificates=2025.2.25=h06a4308_0
  - exceptiongroup=1.2.0=py39h06a4308_0
  - iniconfig=1.1.1=pyhd3eb1b0_0
  - ld_impl_linux-64=2.40=h12ee557_0
  - libffi=3.4.4=h6a678d5_1
  - libgcc-ng=11.2.0=h1234567_1
  - libgomp=11.2.0=h1234567_1
  - libstdcxx-ng=11.2.0=h1234567_1
  - ncurses=6.4=h6a678d5_0
  - openssl=3.0.16=h5eee18b_0
  - packaging=24.2=py39h06a4308_0
  - pluggy=1.5.0=py39h06a4308_0
  - pytest=8.3.4=py39h06a4308_0
  - python=3.9.21=he870216_1
  - readline=8.2=h5eee18b_0
  - setuptools=75.8.0=py39h06a4308_0
  - sqlite=3.45.3=h5eee18b_0
  - tk=8.6.14=h39e8969_0
  - tomli=2.0.1=py39h06a4308_0
  - tzdata=2025a=h04d1e81_0
  - wheel=0.45.1=py39h06a4308_0
  - xz=5.6.4=h5eee18b_1
  - zlib=1.2.13=h5eee18b_1
  - pip:
      - certifi==2025.1.31
      - charset-normalizer==3.4.1
      - idna==3.10
      - pip==25.0.1
      - requests==2.32.3
      - urllib3==2.3.0
prefix: /opt/conda/envs/pybgg-json

tests/test_pybgg_json.py::test_collection_request_basic
tests/test_pybgg_json.py::test_thing_items_request_basic tests/test_pybgg_json.py::test_thing_items_request_all tests/test_pybgg_json.py::test_thread_request_min_article_date_no_hms tests/test_pybgg_json.py::test_thread_request_min_article_date_hms
tests/test_pybgg_json.py::test_family_items_request_basic tests/test_pybgg_json.py::test_forum_list_basic tests/test_pybgg_json.py::test_forum_list_thing tests/test_pybgg_json.py::test_forum_list_family tests/test_pybgg_json.py::test_forum_request_basic tests/test_pybgg_json.py::test_forum_request_all tests/test_pybgg_json.py::test_thread_request_basic tests/test_pybgg_json.py::test_thread_request_min_article_id tests/test_pybgg_json.py::test_thread_request_count tests/test_pybgg_json.py::test_user_request_basic tests/test_pybgg_json.py::test_user_request_buddies tests/test_pybgg_json.py::test_user_request_guilds tests/test_pybgg_json.py::test_user_request_hot tests/test_pybgg_json.py::test_user_request_top tests/test_pybgg_json.py::test_user_request_page tests/test_pybgg_json.py::test_guild_request_basic tests/test_pybgg_json.py::test_guild_request_members
pybgg_json/pybgg_json.py
pybgg_json/pybgg_json.py