{"schemaVersion":"1.0","sourceCommit":"f6e9f05f76d443b26ebd2369f67d3c3bd52257ca","sourceVisibility":"private","article":{"id":"api-client-mansoq-notifications-fe-src-api-routes-ts","title":"Routes client API reference · mansoq-notifications-fe","summary":"8 client route/call declarations with path parameters, named payload/response types and source references. Exact server acceptance and permissions require the matched backend contract.","module":"IT & integrations","roles":["IT administrator","Developer","Integration engineer"],"facilities":["All configured facility types"],"kind":"reference","minutes":3,"prerequisites":["Use the API contract from the installed deployment and an authorized synthetic test environment.","Confirm facility/organization scope, action permissions and optional app enablement.","This reference is static source evidence; complete payload, authorization, failure and end-to-end review remains recorded as pending."],"steps":[],"sections":[{"title":"Client contract scope","body":"These 8 declarations come from **repositories/platform/mansoq-notifications-fe/src/api/routes.ts**. Client types and noAuth flags describe the caller; they do not authorize a server action. Dynamic paths and missing backend matches are retained as review work, not repaired into invented endpoints."},{"title":"Operation map","body":"| Client method | HTTP method | Path pattern | Resolution |\n| --- | --- | --- | --- |\n| notificationRoutes.listNotifications | GET | `/api/mansoq_notifications/in_app_notifications/` | literal |\n| notificationRoutes.getNotification | GET | `/api/mansoq_notifications/in_app_notifications/{external_id}/` | literal |\n| notificationRoutes.markRead | POST | `/api/mansoq_notifications/in_app_notifications/mark_read/` | literal |\n| notificationRoutes.markUnread | POST | `/api/mansoq_notifications/in_app_notifications/mark_unread/` | literal |\n| notificationRoutes.listWebPushSubscriptions | GET | `/api/mansoq_notifications/web_push_subscriptions/` | literal |\n| notificationRoutes.createWebPushSubscription | POST | `/api/mansoq_notifications/web_push_subscriptions/` | literal |\n| notificationRoutes.unsubscribeWebPush | POST | `/api/mansoq_notifications/web_push_subscriptions/unsubscribe/` | literal |\n| notificationRoutes.getVapidPublicKey | GET | `/api/mansoq_notifications/web_push_subscriptions/vapid_public_key/` | literal |"},{"title":"notificationRoutes.listNotifications","body":"**GET /api/mansoq_notifications/in_app_notifications/**. HTTP option object; client/server ownership review pending; literal. no exact statically resolved backend match in scanned contracts.\n\n**Operational limitation:** request validation, permission checks, error statuses and irreversible side effects belong to the server implementation. An unmatched or computed client route requires contract review before use."},{"title":"notificationRoutes.getNotification","body":"**GET /api/mansoq_notifications/in_app_notifications/{external_id}/**. HTTP option object; client/server ownership review pending; literal. no exact statically resolved backend match in scanned contracts.\n\n**Path parameters:** `external_id`. Transport strings are declared here; semantic identifier types require the server contract.\n\n**Operational limitation:** request validation, permission checks, error statuses and irreversible side effects belong to the server implementation. An unmatched or computed client route requires contract review before use."},{"title":"notificationRoutes.markRead","body":"**POST /api/mansoq_notifications/in_app_notifications/mark_read/**. HTTP option object; client/server ownership review pending; literal. no exact statically resolved backend match in scanned contracts.\n\n**Operational limitation:** request validation, permission checks, error statuses and irreversible side effects belong to the server implementation. An unmatched or computed client route requires contract review before use."},{"title":"notificationRoutes.markUnread","body":"**POST /api/mansoq_notifications/in_app_notifications/mark_unread/**. HTTP option object; client/server ownership review pending; literal. no exact statically resolved backend match in scanned contracts.\n\n**Operational limitation:** request validation, permission checks, error statuses and irreversible side effects belong to the server implementation. An unmatched or computed client route requires contract review before use."},{"title":"notificationRoutes.listWebPushSubscriptions","body":"**GET /api/mansoq_notifications/web_push_subscriptions/**. HTTP option object; client/server ownership review pending; literal. no exact statically resolved backend match in scanned contracts.\n\n**Operational limitation:** request validation, permission checks, error statuses and irreversible side effects belong to the server implementation. An unmatched or computed client route requires contract review before use."},{"title":"notificationRoutes.createWebPushSubscription","body":"**POST /api/mansoq_notifications/web_push_subscriptions/**. HTTP option object; client/server ownership review pending; literal. no exact statically resolved backend match in scanned contracts.\n\n**Operational limitation:** request validation, permission checks, error statuses and irreversible side effects belong to the server implementation. An unmatched or computed client route requires contract review before use."},{"title":"notificationRoutes.unsubscribeWebPush","body":"**POST /api/mansoq_notifications/web_push_subscriptions/unsubscribe/**. HTTP option object; client/server ownership review pending; literal. no exact statically resolved backend match in scanned contracts.\n\n**Operational limitation:** request validation, permission checks, error statuses and irreversible side effects belong to the server implementation. An unmatched or computed client route requires contract review before use."},{"title":"notificationRoutes.getVapidPublicKey","body":"**GET /api/mansoq_notifications/web_push_subscriptions/vapid_public_key/**. HTTP option object; client/server ownership review pending; literal. no exact statically resolved backend match in scanned contracts.\n\n**Operational limitation:** request validation, permission checks, error statuses and irreversible side effects belong to the server implementation. An unmatched or computed client route requires contract review before use."}],"troubleshooting":[{"problem":"A declared route is unavailable or a request is rejected","solution":"Compare the installed revision, actual API schema, optional plugin mount, HTTP-method restrictions and recorded validation/permission evidence. Do not bypass a refusal or send a production transaction to test documentation."}],"sources":[{"path":"repositories/platform/mansoq-notifications-fe/src/api/routes.ts","line":15,"commit":"f6e9f05f76d443b26ebd2369f67d3c3bd52257ca"},{"path":"repositories/platform/mansoq-notifications-fe/src/api/routes.ts","line":20,"commit":"f6e9f05f76d443b26ebd2369f67d3c3bd52257ca"},{"path":"repositories/platform/mansoq-notifications-fe/src/api/routes.ts","line":25,"commit":"f6e9f05f76d443b26ebd2369f67d3c3bd52257ca"},{"path":"repositories/platform/mansoq-notifications-fe/src/api/routes.ts","line":31,"commit":"f6e9f05f76d443b26ebd2369f67d3c3bd52257ca"},{"path":"repositories/platform/mansoq-notifications-fe/src/api/routes.ts","line":37,"commit":"f6e9f05f76d443b26ebd2369f67d3c3bd52257ca"},{"path":"repositories/platform/mansoq-notifications-fe/src/api/routes.ts","line":42,"commit":"f6e9f05f76d443b26ebd2369f67d3c3bd52257ca"},{"path":"repositories/platform/mansoq-notifications-fe/src/api/routes.ts","line":48,"commit":"f6e9f05f76d443b26ebd2369f67d3c3bd52257ca"},{"path":"repositories/platform/mansoq-notifications-fe/src/api/routes.ts","line":54,"commit":"f6e9f05f76d443b26ebd2369f67d3c3bd52257ca"}],"related":["it-api-contract","it-api-auth","security-rcm-roles"],"verification":"Static API contract — behavior review pending","version":"f6e9f05f76d4","apiReferenceIds":["frontend-operation-3ebd84ca3eb2bcba70","frontend-operation-e466d4f889bb9e2398","frontend-operation-39f4c5ab79e0218e7e","frontend-operation-49fe38dd5661b1fd1c","frontend-operation-5189fdb8772d30f2ce","frontend-operation-35e315c49a2c47757b","frontend-operation-b98562580cb9c06689","frontend-operation-71dec7db8b4504d7c1"]},"backend":{"resources":[],"operations":[],"methodEvidence":[],"schemas":[],"frameworkSettings":[]},"frontend":{"operations":[{"id":"frontend-operation-3ebd84ca3eb2bcba70","repository":"repositories/platform/mansoq-notifications-fe","apiModule":"repositories/platform/mansoq-notifications-fe/src/api/routes.ts","operationKey":"notificationRoutes.listNotifications","method":"GET","path":"/api/mansoq_notifications/in_app_notifications/","resolution":"literal","originOmitted":false,"source":{"path":"repositories/platform/mansoq-notifications-fe/src/api/routes.ts","line":15,"commit":"f6e9f05f76d443b26ebd2369f67d3c3bd52257ca"},"description":"","pathParameters":[],"declaredQueryParameters":[],"request":null,"response":null,"query":null,"clientNoAuth":null,"contractKind":"HTTP option object; client/server ownership review pending","reviewStatus":"client contract extracted; runtime behavior and authorization review pending","backendOperationIds":[],"sourceFamily":"separate app/transport source; installation requires verification","backendMatchStatus":"no exact statically resolved backend match in scanned contracts"},{"id":"frontend-operation-e466d4f889bb9e2398","repository":"repositories/platform/mansoq-notifications-fe","apiModule":"repositories/platform/mansoq-notifications-fe/src/api/routes.ts","operationKey":"notificationRoutes.getNotification","method":"GET","path":"/api/mansoq_notifications/in_app_notifications/{external_id}/","resolution":"literal","originOmitted":false,"source":{"path":"repositories/platform/mansoq-notifications-fe/src/api/routes.ts","line":20,"commit":"f6e9f05f76d443b26ebd2369f67d3c3bd52257ca"},"description":"","pathParameters":[{"name":"external_id","type":"path string; semantic ID type requires contract confirmation","required":true}],"declaredQueryParameters":[],"request":null,"response":null,"query":null,"clientNoAuth":null,"contractKind":"HTTP option object; client/server ownership review pending","reviewStatus":"client contract extracted; runtime behavior and authorization review pending","backendOperationIds":[],"sourceFamily":"separate app/transport source; installation requires verification","backendMatchStatus":"no exact statically resolved backend match in scanned contracts"},{"id":"frontend-operation-39f4c5ab79e0218e7e","repository":"repositories/platform/mansoq-notifications-fe","apiModule":"repositories/platform/mansoq-notifications-fe/src/api/routes.ts","operationKey":"notificationRoutes.markRead","method":"POST","path":"/api/mansoq_notifications/in_app_notifications/mark_read/","resolution":"literal","originOmitted":false,"source":{"path":"repositories/platform/mansoq-notifications-fe/src/api/routes.ts","line":25,"commit":"f6e9f05f76d443b26ebd2369f67d3c3bd52257ca"},"description":"","pathParameters":[],"declaredQueryParameters":[],"request":null,"response":null,"query":null,"clientNoAuth":null,"contractKind":"HTTP option object; client/server ownership review pending","reviewStatus":"client contract extracted; runtime behavior and authorization review pending","backendOperationIds":[],"sourceFamily":"separate app/transport source; installation requires verification","backendMatchStatus":"no exact statically resolved backend match in scanned contracts"},{"id":"frontend-operation-49fe38dd5661b1fd1c","repository":"repositories/platform/mansoq-notifications-fe","apiModule":"repositories/platform/mansoq-notifications-fe/src/api/routes.ts","operationKey":"notificationRoutes.markUnread","method":"POST","path":"/api/mansoq_notifications/in_app_notifications/mark_unread/","resolution":"literal","originOmitted":false,"source":{"path":"repositories/platform/mansoq-notifications-fe/src/api/routes.ts","line":31,"commit":"f6e9f05f76d443b26ebd2369f67d3c3bd52257ca"},"description":"","pathParameters":[],"declaredQueryParameters":[],"request":null,"response":null,"query":null,"clientNoAuth":null,"contractKind":"HTTP option object; client/server ownership review pending","reviewStatus":"client contract extracted; runtime behavior and authorization review pending","backendOperationIds":[],"sourceFamily":"separate app/transport source; installation requires verification","backendMatchStatus":"no exact statically resolved backend match in scanned contracts"},{"id":"frontend-operation-5189fdb8772d30f2ce","repository":"repositories/platform/mansoq-notifications-fe","apiModule":"repositories/platform/mansoq-notifications-fe/src/api/routes.ts","operationKey":"notificationRoutes.listWebPushSubscriptions","method":"GET","path":"/api/mansoq_notifications/web_push_subscriptions/","resolution":"literal","originOmitted":false,"source":{"path":"repositories/platform/mansoq-notifications-fe/src/api/routes.ts","line":37,"commit":"f6e9f05f76d443b26ebd2369f67d3c3bd52257ca"},"description":"","pathParameters":[],"declaredQueryParameters":[],"request":null,"response":null,"query":null,"clientNoAuth":null,"contractKind":"HTTP option object; client/server ownership review pending","reviewStatus":"client contract extracted; runtime behavior and authorization review pending","backendOperationIds":[],"sourceFamily":"separate app/transport source; installation requires verification","backendMatchStatus":"no exact statically resolved backend match in scanned contracts"},{"id":"frontend-operation-35e315c49a2c47757b","repository":"repositories/platform/mansoq-notifications-fe","apiModule":"repositories/platform/mansoq-notifications-fe/src/api/routes.ts","operationKey":"notificationRoutes.createWebPushSubscription","method":"POST","path":"/api/mansoq_notifications/web_push_subscriptions/","resolution":"literal","originOmitted":false,"source":{"path":"repositories/platform/mansoq-notifications-fe/src/api/routes.ts","line":42,"commit":"f6e9f05f76d443b26ebd2369f67d3c3bd52257ca"},"description":"","pathParameters":[],"declaredQueryParameters":[],"request":null,"response":null,"query":null,"clientNoAuth":null,"contractKind":"HTTP option object; client/server ownership review pending","reviewStatus":"client contract extracted; runtime behavior and authorization review pending","backendOperationIds":[],"sourceFamily":"separate app/transport source; installation requires verification","backendMatchStatus":"no exact statically resolved backend match in scanned contracts"},{"id":"frontend-operation-b98562580cb9c06689","repository":"repositories/platform/mansoq-notifications-fe","apiModule":"repositories/platform/mansoq-notifications-fe/src/api/routes.ts","operationKey":"notificationRoutes.unsubscribeWebPush","method":"POST","path":"/api/mansoq_notifications/web_push_subscriptions/unsubscribe/","resolution":"literal","originOmitted":false,"source":{"path":"repositories/platform/mansoq-notifications-fe/src/api/routes.ts","line":48,"commit":"f6e9f05f76d443b26ebd2369f67d3c3bd52257ca"},"description":"","pathParameters":[],"declaredQueryParameters":[],"request":null,"response":null,"query":null,"clientNoAuth":null,"contractKind":"HTTP option object; client/server ownership review pending","reviewStatus":"client contract extracted; runtime behavior and authorization review pending","backendOperationIds":[],"sourceFamily":"separate app/transport source; installation requires verification","backendMatchStatus":"no exact statically resolved backend match in scanned contracts"},{"id":"frontend-operation-71dec7db8b4504d7c1","repository":"repositories/platform/mansoq-notifications-fe","apiModule":"repositories/platform/mansoq-notifications-fe/src/api/routes.ts","operationKey":"notificationRoutes.getVapidPublicKey","method":"GET","path":"/api/mansoq_notifications/web_push_subscriptions/vapid_public_key/","resolution":"literal","originOmitted":false,"source":{"path":"repositories/platform/mansoq-notifications-fe/src/api/routes.ts","line":54,"commit":"f6e9f05f76d443b26ebd2369f67d3c3bd52257ca"},"description":"","pathParameters":[],"declaredQueryParameters":[],"request":null,"response":null,"query":null,"clientNoAuth":null,"contractKind":"HTTP option object; client/server ownership review pending","reviewStatus":"client contract extracted; runtime behavior and authorization review pending","backendOperationIds":[],"sourceFamily":"separate app/transport source; installation requires verification","backendMatchStatus":"no exact statically resolved backend match in scanned contracts"}],"schemas":[]},"services":{"operations":[]},"boundaries":[]}