diff --git a/src/friendlypins/api.py b/src/friendlypins/api.py
index f8b7255..4b014c9 100644
--- a/src/friendlypins/api.py
+++ b/src/friendlypins/api.py
@@ -25,7 +25,18 @@ class API(object):  # pylint: disable=too-few-public-methods
         """
         self._log.debug("Getting authenticated user details...")
 
-        fields = "id,username,first_name,last_name,bio,created_at,counts,image"
+        fields = ",".join([
+            "id",
+            "username",
+            "first_name",
+            "last_name",
+            "bio",
+            "created_at",
+            "counts",
+            "image",
+            "account_type",
+            "url"
+        ])
         result = self._io.get("me", {"fields": fields})
         assert 'data' in result
 
diff --git a/src/friendlypins/board.py b/src/friendlypins/board.py
index d8626f6..4118157 100644
--- a/src/friendlypins/board.py
+++ b/src/friendlypins/board.py
@@ -47,6 +47,14 @@ class Board(object):
         """
         return self._data['name']
 
+    @property
+    def description(self):
+        """Gets the descriptive text associated with this board
+
+        :rtype: :class:`str`
+        """
+        return self._data['description']
+
     @property
     def url(self):
         """Web address for the UI associated with the dashboard
diff --git a/src/friendlypins/user.py b/src/friendlypins/user.py
index 42367b6..2230b65 100644
--- a/src/friendlypins/user.py
+++ b/src/friendlypins/user.py
@@ -109,7 +109,9 @@ class User(object):
                 "creator",
                 "created_at",
                 "counts",
-                "image"
+                "image",
+                "reason",
+                "privacy"
             ])
         }
 
@@ -119,6 +121,35 @@ class User(object):
             for cur_item in cur_page['data']:
                 yield Board(cur_item, self._io)
 
+    def create_board(self, name, description=None):
+        """Creates a new board for the currently authenticated user
+
+        :param str name: name for the new board
+        :param str description: optional descriptive text for the board
+        :returns: reference to the newly created board
+        :rtype: :class:`friendlypins.board.Board`
+        """
+        properties = {
+            "fields": ','.join([
+                "id",
+                "name",
+                "url",
+                "description",
+                "creator",
+                "created_at",
+                "counts",
+                "image",
+                "reason",
+                "privacy"
+            ])
+        }
+
+        data = {"name": name}
+        if description:
+            data["description"] = description
+
+        result = self._io.post("boards", data, properties)
+        return Board(result['data'], self._io)
 
 if __name__ == "__main__":
     pass
diff --git a/src/friendlypins/utils/rest_io.py b/src/friendlypins/utils/rest_io.py
index 20456a5..ed7a77e 100644
--- a/src/friendlypins/utils/rest_io.py
+++ b/src/friendlypins/utils/rest_io.py
@@ -59,12 +59,44 @@ class RestIO(object):
         properties["access_token"] = self._token
 
         response = requests.get(temp_url, params=properties)
+
+        self._log.debug("Get response text is %s", response.text)
         self._latest_header = Headers(response.headers)
         self._log.debug("%s query header: %s", path, self._latest_header)
         response.raise_for_status()
 
         return response.json()
 
+    def post(self, path, data, properties=None):
+        """Posts API data to a given sub-path
+
+        :param str path: sub-path with in the REST API to send data to
+        :param dict data: form data to be posted to the API endpoint
+        :param dict properties:
+            optional set of request properties to append to the API call
+        :returns: json data returned from the API endpoint
+        :rtype: :class:`dict`
+        """
+        self._log.debug(
+            "Posting data from %s with options %s",
+            path,
+            properties
+        )
+        temp_url = "{0}/{1}/".format(self._root_url, path)
+
+        if properties is None:
+            properties = dict()
+        properties["access_token"] = self._token
+
+        response = requests.post(temp_url, data=data, params=properties)
+        self._latest_header = Headers(response.headers)
+        self._log.debug("%s query header: %s", path, self._latest_header)
+        self._log.debug("Post response text is %s", response.text)
+
+        response.raise_for_status()
+
+        return response.json()
+
     def get_pages(self, path, properties=None):
         """Generator for iterating over paged results returned from API
 

Add code to create new boards
The next logical progression in the API development is to add code for creating new boards for a particular authenticated user.
diff --git a/unit_tests/test_rest_io.py b/unit_tests/test_rest_io.py
index b8b4b92..4be8eab 100644
--- a/unit_tests/test_rest_io.py
+++ b/unit_tests/test_rest_io.py
@@ -43,5 +43,30 @@ def test_get_headers(mock_requests):
     assert tmp.bytes == expected_bytes
 
 
+@mock.patch("friendlypins.utils.rest_io.requests")
+def test_post(mock_requests):
+    obj = RestIO("1234abcd")
+    expected_path = "me/boards"
+    expected_data = {
+        "name": "My New Board",
+        "description": "Here is my cool description"
+    }
+
+    expected_results = {
+        "testing": "123"
+    }
+    mock_response = mock.MagicMock()
+    mock_requests.post.return_value = mock_response
+    mock_response.json.return_value = expected_results
+
+    res = obj.post(expected_path, expected_data)
+
+    mock_response.json.assert_called_once()
+    mock_requests.post.assert_called_once()
+
+    assert expected_path in mock_requests.post.call_args[0][0]
+    assert "data" in mock_requests.post.call_args[1]
+    assert mock_requests.post.call_args[1]["data"] == expected_data
+
 if __name__ == "__main__":
     pytest.main([__file__, "-v", "-s"])
diff --git a/unit_tests/test_user.py b/unit_tests/test_user.py
index 6ce221e..75d051e 100644
--- a/unit_tests/test_user.py
+++ b/unit_tests/test_user.py
@@ -63,6 +63,29 @@ def test_get_boards():
     assert expected_name == result[0].name
     assert expected_id == result[0].unique_id
 
+def test_create_board():
+    expected_name = "My Board"
+    expected_desc = "My new board is about this stuff..."
+    data = {
+        "id": "1234",
+        "first_name": "Jonh",
+        "last_name": "Doe"
+    }
+    mock_io = mock.MagicMock()
+    mock_io.post.return_value = {
+        "data": {
+            "name": expected_name,
+            "description": expected_desc,
+            "id": "12345"
+        }
+    }
+    obj = User(data, mock_io)
+
+    board = obj.create_board(expected_name, expected_desc)
+    mock_io.post.assert_called_once()
+    assert board is not None
+    assert board.name == expected_name
+    assert board.description == expected_desc
 
 if __name__ == "__main__":
     pytest.main([__file__, "-v", "-s"])

pip install -e .[dev]
parse_log_pytest
pytest
pytest
pip install wheel twine tox
3.6
pytest --no-header -rA --tb=line --color=no -p no:cacheprovider -W ignore::DeprecationWarning
alabaster==0.7.13
astroid==2.6.6
attrs @ file:///opt/conda/conda-bld/attrs_1642510447205/work
Babel==2.11.0
bleach==4.1.0
certifi==2021.5.30
cffi==1.15.1
charset-normalizer==2.0.12
colorama==0.4.5
coverage==6.2
cryptography==40.0.2
dateutils==0.6.12
distlib==0.3.9
docutils==0.18.1
filelock==3.4.1
-e git+https://github.com/TheFriendlyCoder/friendlypins.git@eed1f246c388b9c1c92755d2c6dd77b5133a686c#egg=friendlypins
idna==3.10
imagesize==1.4.1
importlib-metadata==4.8.3
importlib-resources==5.4.0
iniconfig @ file:///home/linux1/recipes/ci/iniconfig_1610983019677/work
isort==5.10.1
jeepney==0.7.1
Jinja2==3.0.3
keyring==23.4.1
lazy-object-proxy==1.7.1
mando==0.7.1
MarkupSafe==2.0.1
mccabe==0.6.1
mock==5.2.0
more-itertools @ file:///tmp/build/80754af9/more-itertools_1637733554872/work
packaging @ file:///tmp/build/80754af9/packaging_1637314298585/work
Pillow==8.4.0
pkginfo==1.10.0
platformdirs==2.4.0
pluggy @ file:///tmp/build/80754af9/pluggy_1615976315926/work
py @ file:///opt/conda/conda-bld/py_1644396412707/work
pycparser==2.21
Pygments==2.14.0
pylint==3.0.0a4
pyparsing @ file:///tmp/build/80754af9/pyparsing_1635766073266/work
pytest==6.2.4
pytest-cov==4.0.0
python-dateutil==2.9.0.post0
pytz==2025.2
radon==6.0.1
readme-renderer==34.0
requests==2.27.1
requests-toolbelt==1.0.0
rfc3986==1.5.0
SecretStorage==3.3.3
six==1.17.0
snowballstemmer==2.2.0
Sphinx==5.3.0
sphinxcontrib-applehelp==1.0.2
sphinxcontrib-devhelp==1.0.2
sphinxcontrib-htmlhelp==2.0.0
sphinxcontrib-jsmath==1.0.1
sphinxcontrib-qthelp==1.0.3
sphinxcontrib-serializinghtml==1.1.5
toml @ file:///tmp/build/80754af9/toml_1616166611790/work
tomli==1.2.3
tox==3.28.0
tqdm==4.64.1
twine==1.15.0
typed-ast==1.4.3
typing_extensions @ file:///opt/conda/conda-bld/typing_extensions_1647553014482/work
urllib3==1.26.20
virtualenv==20.17.1
webencodings==0.5.1
wrapt==1.12.1
zipp @ file:///tmp/build/80754af9/zipp_1633618647012/work

name: friendlypins
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
  - attrs=21.4.0=pyhd3eb1b0_0
  - ca-certificates=2025.2.25=h06a4308_0
  - certifi=2021.5.30=py36h06a4308_0
  - importlib_metadata=4.8.1=hd3eb1b0_0
  - iniconfig=1.1.1=pyhd3eb1b0_0
  - ld_impl_linux-64=2.40=h12ee557_0
  - libffi=3.3=he6710b0_2
  - libgcc-ng=11.2.0=h1234567_1
  - libgomp=11.2.0=h1234567_1
  - libstdcxx-ng=11.2.0=h1234567_1
  - more-itertools=8.12.0=pyhd3eb1b0_0
  - ncurses=6.4=h6a678d5_0
  - openssl=1.1.1w=h7f8727e_0
  - packaging=21.3=pyhd3eb1b0_0
  - pip=21.2.2=py36h06a4308_0
  - pluggy=0.13.1=py36h06a4308_0
  - py=1.11.0=pyhd3eb1b0_0
  - pyparsing=3.0.4=pyhd3eb1b0_0
  - pytest=6.2.4=py36h06a4308_2
  - python=3.6.13=h12debd9_1
  - readline=8.2=h5eee18b_0
  - setuptools=58.0.4=py36h06a4308_0
  - sqlite=3.45.3=h5eee18b_0
  - tk=8.6.14=h39e8969_0
  - toml=0.10.2=pyhd3eb1b0_0
  - typing_extensions=4.1.1=pyh06a4308_0
  - wheel=0.37.1=pyhd3eb1b0_0
  - xz=5.6.4=h5eee18b_1
  - zipp=3.6.0=pyhd3eb1b0_0
  - zlib=1.2.13=h5eee18b_1
  - pip:
      - alabaster==0.7.13
      - astroid==2.6.6
      - babel==2.11.0
      - bleach==4.1.0
      - cffi==1.15.1
      - charset-normalizer==2.0.12
      - colorama==0.4.5
      - coverage==6.2
      - cryptography==40.0.2
      - dateutils==0.6.12
      - distlib==0.3.9
      - docutils==0.18.1
      - filelock==3.4.1
      - idna==3.10
      - imagesize==1.4.1
      - importlib-metadata==4.8.3
      - importlib-resources==5.4.0
      - isort==5.10.1
      - jeepney==0.7.1
      - jinja2==3.0.3
      - keyring==23.4.1
      - lazy-object-proxy==1.7.1
      - mando==0.7.1
      - markupsafe==2.0.1
      - mccabe==0.6.1
      - mock==5.2.0
      - pillow==8.4.0
      - pkginfo==1.10.0
      - platformdirs==2.4.0
      - pycparser==2.21
      - pygments==2.14.0
      - pylint==3.0.0a4
      - pytest-cov==4.0.0
      - python-dateutil==2.9.0.post0
      - pytz==2025.2
      - radon==6.0.1
      - readme-renderer==34.0
      - requests==2.27.1
      - requests-toolbelt==1.0.0
      - rfc3986==1.5.0
      - secretstorage==3.3.3
      - six==1.17.0
      - snowballstemmer==2.2.0
      - sphinx==5.3.0
      - sphinxcontrib-applehelp==1.0.2
      - sphinxcontrib-devhelp==1.0.2
      - sphinxcontrib-htmlhelp==2.0.0
      - sphinxcontrib-jsmath==1.0.1
      - sphinxcontrib-qthelp==1.0.3
      - sphinxcontrib-serializinghtml==1.1.5
      - tomli==1.2.3
      - tox==3.28.0
      - tqdm==4.64.1
      - twine==1.15.0
      - typed-ast==1.4.3
      - urllib3==1.26.20
      - virtualenv==20.17.1
      - webencodings==0.5.1
      - wrapt==1.12.1
prefix: /opt/conda/envs/friendlypins

unit_tests/test_rest_io.py::test_post unit_tests/test_user.py::test_create_board
unit_tests/test_rest_io.py::test_get_method unit_tests/test_rest_io.py::test_get_headers unit_tests/test_user.py::test_user_properties unit_tests/test_user.py::test_get_boards
src/friendlypins/board.py src/friendlypins/user.py src/friendlypins/utils/rest_io.py src/friendlypins/api.py
src/friendlypins/board.py src/friendlypins/user.py src/friendlypins/utils/rest_io.py src/friendlypins/api.py