{"files":{"SKILL.md":"---\nname: kumpeapps-api\ndescription: \"KumpeApps API skill. Use when working with KumpeApps for appkey, authkey, authentication. Covers 33 endpoints.\"\nversion: 1.0.0\ngenerator: lapsh\n---\n\n# KumpeApps API\nAPI version: 5.0.0\n\n## Auth\nApiKey X-Auth in header | ApiKey X-Auth in header\n\n## Base URL\nhttps://restapi.kumpeapps.com/v5\n\n## Setup\n1. Set your API key in the appropriate header\n2. GET /authkey -- request auth key for user (login user)\n3. POST /appkey -- create first appkey\n\n## Endpoints\n33 endpoints across 4 groups. See references/api-spec.lap for full details.\n\n### Appkey\n| Method | Path | Description |\n|--------|------|-------------|\n| PUT | /appkey | Deactivate app key |\n| POST | /appkey | Request app key |\n| PATCH | /appkey | Compromise app key |\n\n### Authkey\n| Method | Path | Description |\n|--------|------|-------------|\n| GET | /authkey | Request auth key for user (login user) |\n| PUT | /authkey | Deactivate auth key (logout) |\n| POST | /authkey | Request auth key for user (login user) |\n| PATCH | /authkey | Compromise auth key |\n\n### Authentication\n| Method | Path | Description |\n|--------|------|-------------|\n| PUT | /authentication/appkey | Deactivate app key |\n| POST | /authentication/appkey | Request app key |\n| PATCH | /authentication/appkey | Compromise app key |\n| GET | /authentication/verifyotp | Verifies YubiKey OTP for authenticated user |\n| GET | /authentication/authkey | Request auth key for user (login user) |\n| PUT | /authentication/authkey | Deactivate auth key (logout) |\n| POST | /authentication/authkey | Request auth key for user (login user) |\n| PATCH | /authentication/authkey | Compromise auth key |\n\n### Kkid\n| Method | Path | Description |\n|--------|------|-------------|\n| POST | /kkid/masteruser | adds new master user account |\n| GET | /kkid/user | Gets user info |\n| GET | /kkid/userlist | returns list of users |\n| PUT | /kkid/userlist | updates user |\n| POST | /kkid/userlist | adds new child user |\n| DELETE | /kkid/userlist | deletes user |\n| GET | /kkid/chorelist | returns list of chores for given user |\n| PUT | /kkid/chorelist | updates chore for given chore id |\n| POST | /kkid/chorelist | adds chore for given user |\n| DELETE | /kkid/chorelist | deletes chore for given chore id |\n| GET | /kkid/allowance | returns allowance balance and allowance transactions |\n| POST | /kkid/allowance | adds new allowance transaction to kidUserID |\n| POST | /kkid/apns | subscribes/unsubscribes/registers for apns push notifications |\n| GET | /kkid/wishlist | Get list of wishlist items |\n| PUT | /kkid/wishlist | Update item on kid's wishlist |\n| POST | /kkid/wishlist | Add item to kid's wishlist |\n| DELETE | /kkid/wishlist | Delete item from wishlist |\n| GET | /kkid/share | Create Share Link |\n\n## Common Questions\nMatch user requests to endpoints in references/api-spec.lap. Key patterns:\n- \"Create a appkey?\" -> POST /appkey\n- \"List all authkey?\" -> GET /authkey\n- \"Create a authkey?\" -> POST /authkey\n- \"List all verifyotp?\" -> GET /authentication/verifyotp\n- \"Create a masteruser?\" -> POST /kkid/masteruser\n- \"List all user?\" -> GET /kkid/user\n- \"List all userlist?\" -> GET /kkid/userlist\n- \"Create a userlist?\" -> POST /kkid/userlist\n- \"List all chorelist?\" -> GET /kkid/chorelist\n- \"Create a chorelist?\" -> POST /kkid/chorelist\n- \"List all allowance?\" -> GET /kkid/allowance\n- \"Create a allowance?\" -> POST /kkid/allowance\n- \"Create a apn?\" -> POST /kkid/apns\n- \"List all wishlist?\" -> GET /kkid/wishlist\n- \"Create a wishlist?\" -> POST /kkid/wishlist\n- \"List all share?\" -> GET /kkid/share\n- \"How to authenticate?\" -> See Auth section above\n\n## Response Tips\n- Check response schemas in references/api-spec.lap for field details\n- Create/update endpoints return the modified resource on success\n- Error responses include status codes and descriptions in the spec\n\n## References\n- Full spec: See references/api-spec.lap for complete endpoint details, parameter tables, and response schemas\n\n> Generated from the official API spec by [LAP](https://lap.sh)\n","references/api-spec.lap":"@lap v0.3\n# Machine-readable API spec. Each @endpoint block is one API call.\n@api KumpeApps API\n@base https://restapi.kumpeapps.com/v5\n@version 5.0.0\n@auth ApiKey X-Auth in header | ApiKey X-Auth in header\n@endpoints 33\n@hint download_for_search\n@toc appkey(3), authkey(4), authentication(8), kkid(18)\n\n@group appkey\n@endpoint PUT /appkey\n@desc Deactivate app key\n@required {app_key: str # app key to deactivate}\n@returns(202) {success: bool} # App key deactivated\n\n@endpoint POST /appkey\n@desc Request app key\n@required {username: str # Username assigned to your app, password: str(password) # Password assigned to your app, supportsYubikey: bool # App supports YubiKey OTP}\n@returns(201) {success: bool, app_key: str} # app key created\n\n@endpoint PATCH /appkey\n@desc Compromise app key\n@required {app_key: str # compromised app key}\n@optional {comments: str # Comments (like how was this compromised)}\n@returns(202) {success: bool} # App key deactivated\n\n@endgroup\n\n@group authkey\n@endpoint GET /authkey\n@desc Request auth key for user (login user)\n@required {username: str # Authenticated username, password: str(password) # Authenticated password}\n@optional {otp: str(password) # YubiKey OTP (if configured for user)}\n@returns(200) {success: bool, auth_key: str} # User Authenticated Sucessfully\n@errors {401: Invalid/Locked/Blocked/Compromised AppKey, 403: Access Denied, 449: OTP required but not supplied. Please resubmit request with OTP}\n\n@endpoint PUT /authkey\n@desc Deactivate auth key (logout)\n@required {auth_key: str(password) # auth key to logout}\n@returns(202) {success: bool} # Success\n@errors {401: Invalid/Locked/Blocked/Compromised AppKey}\n\n@endpoint POST /authkey\n@desc Request auth key for user (login user)\n@required {username: str # Authenticated username, password: str(password) # Authenticated password}\n@optional {otp: str(password) # YubiKey OTP (if configured for user)}\n@returns(200) {success: bool, auth_key: str} # User Authenticated Sucessfully\n@errors {401: Invalid/Locked/Blocked/Compromised AppKey, 403: Access Denied, 449: OTP required but not supplied. Please resubmit request with OTP}\n\n@endpoint PATCH /authkey\n@desc Compromise auth key\n@required {auth_key: str(password) # auth key to mark as compromised}\n@optional {comments: str # Comments (like how was this compromised)}\n@returns(202) {success: bool} # Auth key marked as compromised and locked\n@errors {401: Invalid/Locked/Blocked/Compromised AppKey}\n\n@endgroup\n\n@group authentication\n@endpoint PUT /authentication/appkey\n@desc Deactivate app key\n@required {app_key: str # app key to deactivate}\n@returns(202) {success: bool} # App key deactivated\n\n@endpoint POST /authentication/appkey\n@desc Request app key\n@required {username: str # Username assigned to your app, password: str(password) # Password assigned to your app, supportsYubikey: bool # App supports YubiKey OTP}\n@returns(201) {success: bool, app_key: str} # app key created\n\n@endpoint PATCH /authentication/appkey\n@desc Compromise app key\n@required {app_key: str # compromised app key}\n@optional {comments: str # Comments (like how was this compromised)}\n@returns(202) {success: bool} # App key deactivated\n\n@endpoint GET /authentication/verifyotp\n@desc Verifies YubiKey OTP for authenticated user\n@required {otp: str # YubiKey OTP code}\n@returns(200) User Authenticated Sucessfully\n@errors {401: Invalid/Locked/Blocked/Compromised AppKey/AuthKey, 403: Access Denied}\n\n@endpoint GET /authentication/authkey\n@desc Request auth key for user (login user)\n@required {username: str # Authenticated username, password: str(password) # Authenticated password}\n@optional {otp: str(password) # YubiKey OTP (if configured for user), deviceName: str # User's device name, identifierForVendor: str # identifierForVendor for User's Device (if app is iOS)}\n@returns(200) {success: bool, auth_key: str} # User Authenticated Sucessfully\n@errors {401: Invalid/Locked/Blocked/Compromised AppKey, 403: Access Denied, 449: OTP required but not supplied. Please resubmit request with OTP}\n\n@endpoint PUT /authentication/authkey\n@desc Deactivate auth key (logout)\n@required {auth_key: str(password) # auth key to logout}\n@returns(202) {success: bool} # Success\n@errors {401: Invalid/Locked/Blocked/Compromised AppKey}\n\n@endpoint POST /authentication/authkey\n@desc Request auth key for user (login user)\n@required {username: str # Authenticated username, password: str(password) # Authenticated password}\n@optional {otp: str(password) # YubiKey OTP (if configured for user)}\n@returns(200) {success: bool, auth_key: str} # User Authenticated Sucessfully\n@errors {401: Invalid/Locked/Blocked/Compromised AppKey, 403: Access Denied, 449: OTP required but not supplied. Please resubmit request with OTP}\n\n@endpoint PATCH /authentication/authkey\n@desc Compromise auth key\n@required {auth_key: str(password) # auth key to mark as compromised}\n@optional {comments: str # Comments (like how was this compromised)}\n@returns(202) {success: bool} # Auth key marked as compromised and locked\n@errors {401: Invalid/Locked/Blocked/Compromised AppKey}\n\n@endgroup\n\n@group kkid\n@endpoint POST /kkid/masteruser\n@desc adds new master user account\n@required {username: str # username of user to create, password: str(password) # password of user to create, email: str # email address of user to create, firstName: str # First Name of user to create, lastName: str # Last Name of user to create}\n@returns(200) {user_id: int, login: str, pass: str, remember_key: str, pass_dattm: str, email: str, name_f: str, name_l: str, street: str, street2: str, city: str, state: str, zip: str, country: str, phone: str, added: str, remote_addr: str, user_agent: str, saved_form_id: str, status: str, unsubscribed: str, lang: str, i_agree: str, is_locked: str, disable_lock_until: str, reseller_id: str, comment: str, tax_id: str, last_login: str, aff_id: str, aff_added: str, is_affiliate: str, aff_payout_type: str, plain_password: str, pin: str, require_consent: str, subusers_parent_id: str, avatar: str} # User Added\n@returns(202) Accepted- Access Granted but data flow did not complete due to an unknown error.\n@errors {405: Method Not Allowed- API user does not have access to use this method, 409: Create user unsuccessful! This is normally because the username or password already exists in the KumpeApps system.}\n\n@endpoint GET /kkid/user\n@desc Gets user info\n@optional {enableBool: bool # Use bool values instead of Int 0/1}\n@returns(200) {success: bool, user: [map]} # search results matching criteria\n\n@endpoint GET /kkid/userlist\n@desc returns list of users\n@optional {isChild: bool # Filter Search by isChild flag, isActive: bool # Filter Search by isActive flag, isAdmin: bool # Filter Search by isAdmin flag, enableAllowance: bool # Filter Search by enableAllowance flag, enableChores: bool # Filter Search by enableChores flag, userID: int # userID of user to search, username: str # Username of user to search, email: str # Email address of user to search}\n@returns(200) {success: bool, user: [map]} # search results matching criteria\n@returns(202) Accepted- Access Granted but data flow did not complete due to an unknown error.\n@returns(204) {status: int, error: str} # No Data Returned\n@errors {400: bad input parameter, 401: Unauthorized- API credentials not supplied. Ensure you have passed proper Username and Password parameters, 403: Forbidden- User access is denied. API user either does not have access or has been banned/locked., 405: Method Not Allowed- API user does not have access to use this method, 412: API Access Denied! Your API key is invalid, expired, or not supplied!}\n\n@endpoint PUT /kkid/userlist\n@desc updates user\n@required {userID: int # userID of the user you wish to update, username: str # username of user to create, email: str # email address of user to create, firstName: str # First Name of user to create, lastName: str # Last Name of user to create}\n@optional {emoji: str # emoji character for user, tmdbKey: str # User's TMdB Session Key, enableWishList: bool # set status of Wish List module enabled, enableChores: bool # set status of chores module enabled, enableAllowance: bool # set status of allowance module enabled, enableAdmin: bool # set status of isAdmin, enableTmdb: bool # set status of enableTmdb (movie and tv search), enableObjectDetection: bool # set status of enableObjectDetection}\n@returns(200) {user_id: int, login: str, pass: str, remember_key: str, pass_dattm: str, email: str, name_f: str, name_l: str, street: str, street2: str, city: str, state: str, zip: str, country: str, phone: str, added: str, remote_addr: str, user_agent: str, saved_form_id: str, status: str, unsubscribed: str, lang: str, i_agree: str, is_locked: str, disable_lock_until: str, reseller_id: str, comment: str, tax_id: str, last_login: str, aff_id: str, aff_added: str, is_affiliate: str, aff_payout_type: str, plain_password: str, pin: str, require_consent: str, subusers_parent_id: str, avatar: str} # User Updated\n@returns(202) Accepted- Access Granted but data flow did not complete due to an unknown error.\n@errors {405: Method Not Allowed- API user does not have access to use this method, 409: Update user unsuccessful. This could be due to invalid userID, new username already exists, new email already exists, or an unknown error., 412: API Access Denied! Your API key is invalid, expired, or not supplied!}\n\n@endpoint POST /kkid/userlist\n@desc adds new child user\n@required {username: str # username of user to create, password: str(password) # password of user to create, email: str # email address of user to create, firstName: str # First Name of user to create, lastName: str # Last Name of user to create}\n@returns(200) {user_id: int, login: str, pass: str, remember_key: str, pass_dattm: str, email: str, name_f: str, name_l: str, street: str, street2: str, city: str, state: str, zip: str, country: str, phone: str, added: str, remote_addr: str, user_agent: str, saved_form_id: str, status: str, unsubscribed: str, lang: str, i_agree: str, is_locked: str, disable_lock_until: str, reseller_id: str, comment: str, tax_id: str, last_login: str, aff_id: str, aff_added: str, is_affiliate: str, aff_payout_type: str, plain_password: str, pin: str, require_consent: str, subusers_parent_id: str, avatar: str} # User Added\n@returns(202) Accepted- Access Granted but data flow did not complete due to an unknown error.\n@errors {405: Method Not Allowed- API user does not have access to use this method, 409: Create user unsuccessful! This is normally because the username or password already exists in the KumpeApps system., 412: API Access Denied! Your API key is invalid, expired, or not supplied!}\n\n@endpoint DELETE /kkid/userlist\n@desc deletes user\n@required {userID: int # userID of the user you wish to delete}\n@returns(200) User Deleted\n@returns(202) Accepted- Access Granted but data flow did not complete due to an unknown error.\n@errors {405: Method Not Allowed- API user does not have access to use this method, 409: Create user unsuccessful! This is normally because the username or password already exists in the KumpeApps system., 412: API Access Denied! Your API key is invalid, expired, or not supplied!}\n\n@endpoint GET /kkid/chorelist\n@desc returns list of chores for given user\n@optional {kidUsername: str # Username of kid you wish to search, day: str(Sunday/Monday/Tuesday/Wednesday/Thursday/Friday/Saturday/Weekly) # Day of week for chores (Weekly for weekly chores), status: str # Status of Chore to search, blockDash: bool # Filter results by blockDash parameter, optional: bool # Filter results by optional parameter, canSteal: bool # Filter results by canSteal parameter, includeCalendar: bool # include calendar notations (default is false)}\n@returns(200) {success: int, chore: [map]} # search results matching criteria\n@returns(202) Accepted- Access Granted but data flow did not complete due to an unknown error.\n@returns(206) {status: int, error: str} # No Data Found.\n@errors {400: bad input parameter, 401: Unauthorized- API credentials not supplied. Ensure you have passed proper Username and Password parameters, 403: Forbidden- User access is denied. API user either does not have access or has been banned/locked., 405: Method Not Allowed- API user does not have access to use this method, 412: API Access Denied! Your API key is invalid, expired, or not supplied!}\n\n@endpoint PUT /kkid/chorelist\n@desc updates chore for given chore id\n@required {idChoreList: int # id number of chore you wish to update}\n@optional {status: str # new status of chore, stolen: bool # mark chore as stolen by sibling, stolenBy: str # username of sibling that stole the chore (required if stolen is true), nfcTag: str # text field of NFC tag that is required to be scanned to check off this chore (normally null), notes: str # notes field for chore, latitude: int # GPS latitude of where the chore was marked, longitude: int # GPS longitude of where the chore was marked, altitude: int # GPS altitude of where the chore was marked, updatedByAutomation: bool # true if updated via API by automation system, whereDay: str(Sunday/Monday/Tuesday/Wednesday/Thursday/Friday/Saturday/Weekly/Today) # Where day equals..., whereStatus: str # Where status equals..., whereName: str # Where chore name equals...}\n@returns(200) {success: bool, message: str} # search results matching criteria\n@returns(202) Accepted- Access Granted but data flow did not complete due to an unknown error.\n@returns(206) {status: int, error: str} # No Data Found.\n@errors {400: bad input parameter, 401: Unauthorized- API credentials not supplied. Ensure you have passed proper Username and Password parameters, 403: Forbidden- User access is denied. API user either does not have access or has been banned/locked., 405: Method Not Allowed- API user does not have access to use this method, 412: API Access Denied! Your API key is invalid, expired, or not supplied!}\n\n@endpoint POST /kkid/chorelist\n@desc adds chore for given user\n@required {kidUsername: str # username of kid to assign the chore to., choreName: str # name of chore}\n@optional {day: str(Sunday/Monday/Tuesday/Wednesday/Thursday/Friday/Saturday/Weekly/Today) # day of week (Monday, Tuesday....) for the chore. For weekly chores put Weekly or leave blank, nfcTag: str # text field of nfc tag required to check off chore, status: str # status of chore (default is todo), choreDescription: str # optional chore description, choreNumber: int # number priority of chore (default is 5), blockDash: bool # block dash option on this chore, oneTime: bool # mark as one time chore (does not repeat each week), extraAllowance: int # ammount of allowance added at end of week for completing this chore, optional: bool # mark as optional chore, reassignable: bool # mark as reassignable (default is true), canSteal: bool # mark as sibling can steal chore, startDate: str # date (yyyy-mm-dd) that you wish the chore to start showing up. (default is today), notes: str # notes added to chore (visable only on reports, kids do not see this note, this is mostly just for the developer), requireObjectDetection: bool # require use of camera to detect object detection tag order to check off chore, objectDetectionTag: str # tag for object detection to search for (required if requireObjectDetection is true), updatedByAutomation: bool # true if chore updated via API from an Automation System, aiIcon: str # Notes if AI Icons should be used (n for no, y for yes, e for yes- error), isCalendar: bool # True if this is a calendar note instead of a chore.}\n@returns(200) {success: bool, message: str} # search results matching criteria\n@returns(202) Accepted- Access Granted but data flow did not complete due to an unknown error.\n@returns(206) {status: int, error: str} # No Data Found.\n@errors {400: bad input parameter, 401: Unauthorized- API credentials not supplied. Ensure you have passed proper Username and Password parameters, 403: Forbidden- User access is denied. API user either does not have access or has been banned/locked., 405: Method Not Allowed- API user does not have access to use this method, 409: Conflict- idChoreList parameter was not supplied or is blank, 412: API Access Denied! Your API key is invalid, expired, or not supplied!}\n\n@endpoint DELETE /kkid/chorelist\n@desc deletes chore for given chore id\n@required {idChoreList: int # id of the chore you wish to delete}\n@returns(200) {success: bool, message: str} # deletion successful\n@returns(202) Accepted- Access Granted but data flow did not complete due to an unknown error.\n@returns(206) {status: int, error: str} # No Data Found.\n@errors {400: bad input parameter, 401: Unauthorized- API credentials not supplied. Ensure you have passed proper Username and Password parameters, 403: Forbidden- User access is denied. API user either does not have access or has been banned/locked., 405: Method Not Allowed- API user does not have access to use this method, 409: Conflict- idChoreList parameter was not supplied or is blank, 412: API Access Denied! Your API key is invalid, expired, or not supplied!}\n\n@endpoint GET /kkid/allowance\n@desc returns allowance balance and allowance transactions\n@required {kidUserId: int # userID of the kid}\n@optional {transactionDays: int # number of days you wish to search allowance transactions (default is 90 days)}\n@returns(200) {success: int, id: int, balance: int, lastUpdated: str, allowanceTransaction: [map]} # search results matching criteria\n@returns(202) Accepted- Access Granted but data flow did not complete due to an unknown error.\n@returns(206) {status: int, error: str} # No Data Returned\n@errors {400: bad input parameter, 401: Unauthorized- API credentials not supplied. Ensure you have passed proper Username and Password parameters, 403: Forbidden- User access is denied. API user either does not have access or has been banned/locked., 405: Method Not Allowed- API user does not have access to use this method, 412: API Access Denied! Your API key is invalid, expired, or not supplied!}\n\n@endpoint POST /kkid/allowance\n@desc adds new allowance transaction to kidUserID\n@required {kidUserId: int # userID of the kid, amount: num # amount you wish to Add/Subtract (subtract value should be a negative value), description: str # Description (reason) of allowance transaction, transactionType: str(Add/Subtract) # Transaction Type (Add/Subtract)}\n@returns(200) {success: bool, message: str} # search results matching criteria\n@returns(202) Accepted- Access Granted but data flow did not complete due to an unknown error.\n@returns(206) {status: int, error: str} # No Data Returned\n@errors {400: bad input parameter, 401: Unauthorized- API credentials not supplied. Ensure you have passed proper Username and Password parameters, 403: Forbidden- User access is denied. API user either does not have access or has been banned/locked., 405: Method Not Allowed- API user does not have access to use this method, 412: API Access Denied! Your API key is invalid, expired, or not supplied!}\n\n@endpoint POST /kkid/apns\n@desc subscribes/unsubscribes/registers for apns push notifications\n@required {kidUserId: int # userID of the kid, tool: str(register/subscribe/unsubscribe/send) # tool you wish to talk to}\n@optional {token: str # device APNS token (required for register), devicename: str # Name of device to associate to token (required for register), title: str # title of APNS message (required for send), message: str # APNS message body (required for send), badge: int # Number for badge icon (optional for send), sound: str # Name of sound file to play for send notification (optional for send), section: str(Chores/Chores-New/Chores-Reminders/Allowance/Allowance-New/WishList) # Notification section name (required for send/subscribe/unsubscribe), priority: str(passive/active/time-sensitive/critical) # Notification section name (optional for send, default is active)}\n@returns(200) {success: bool, message: str} # search results matching criteria\n@returns(202) Accepted- Access Granted but data flow did not complete due to an unknown error.\n@returns(206) {status: int, error: str} # No Data Returned\n@errors {400: bad input parameter, 401: Unauthorized- API credentials not supplied. Ensure you have passed proper Username and Password parameters, 403: Forbidden- User access is denied. API user either does not have access or has been banned/locked., 405: Method Not Allowed- API user does not have access to use this method, 412: API Access Denied! Your API key is invalid, expired, or not supplied!}\n\n@endpoint GET /kkid/wishlist\n@desc Get list of wishlist items\n@optional {kidUserId: int # userID of the kid}\n@returns(200) {success: bool, wish: [map]} # search results matching criteria\n\n@endpoint PUT /kkid/wishlist\n@desc Update item on kid's wishlist\n@required {wishId: int # Wish list item ID to update}\n@optional {title: str # Item title, description: str # Item Description, priority: int # Item Priority, link: str # URL Link to item}\n@returns(201) {success: bool, message: str} # search results matching criteria\n\n@endpoint POST /kkid/wishlist\n@desc Add item to kid's wishlist\n@required {kidUserId: int # userID of the kid, title: str # Item title}\n@optional {description: str # Item Description, priority: int # Item Priority, link: str # URL Link to item}\n@returns(201) {success: bool, message: str} # search results matching criteria\n\n@endpoint DELETE /kkid/wishlist\n@desc Delete item from wishlist\n@required {wishId: int # ID of wishlist item to delete}\n@returns(200) {success: bool, message: str} # search results matching criteria\n\n@endpoint GET /kkid/share\n@desc Create Share Link\n@required {linkUserId: str # User ID that the link should be authenticated to, link: str(https://khome.kumpeapps.com/portal/wish-list.php/https://khome.kumpeapps.com/portal/chores-today.php) # Link to share, scope: str(WishList/WishListAdmin/Chores/ChoresAdmin) # Authentication scope for link}\n@optional {scope2: str(WishList/WishListAdmin/Chores/ChoresAdmin) # Authentication scope for link, scope3: str(WishList/WishListAdmin/Chores/ChoresAdmin) # Authentication scope for link, scope4: str(WishList/WishListAdmin/Chores/ChoresAdmin) # Authentication scope for link}\n@returns(201) {success: bool, auth_link: str} # authenticated link created\n\n@endgroup\n\n@end\n"}}