diff --git a/libs/shared/lib/data-access/api/url.ts b/libs/shared/lib/data-access/api/url.ts
new file mode 100644
index 0000000000000000000000000000000000000000..0f841a7b95ad2720c01e9f56eea9b3aebcc27abd
--- /dev/null
+++ b/libs/shared/lib/data-access/api/url.ts
@@ -0,0 +1,24 @@
+export enum URLParams {
+  saveState = 'saveState',
+}
+
+export function getParam(param: URLParams) {
+  const query = new URLSearchParams(window.location.search);
+  return query.get(param);
+}
+
+export function setParam(param: URLParams, value: string | undefined) {
+  const query = new URLSearchParams(window.location.search);
+  if (!value) {
+    deleteParam(param);
+  } else {
+    query.set(param, value);
+    history.pushState(null, '', '?' + query.toString());
+  }
+}
+
+export function deleteParam(param: URLParams) {
+  const query = new URLSearchParams(window.location.search);
+  query.delete(param);
+  history.pushState(null, '', '?' + query.toString());
+}