{"files":{"SKILL.md":"---\nname: handwrytten-api\ndescription: \"Handwrytten API skill. Use when working with Handwrytten for auth, profile, fonts. Covers 30 endpoints.\"\nversion: 1.0.0\ngenerator: lapsh\n---\n\n# Handwrytten API\nAPI version: 1.0.0\n\n## Auth\nNo authentication required.\n\n## Base URL\nhttps://api.handwrytten.com/v1\n\n## Setup\n1. No auth setup needed\n2. GET /fonts/list -- lists handwryting styles available for use\n3. POST /auth/register -- create first register\n\n## Endpoints\n30 endpoints across 9 groups. See references/api-spec.lap for full details.\n\n### Auth\n| Method | Path | Description |\n|--------|------|-------------|\n| POST | /auth/register | Registers a new account |\n| POST | /auth/authorization | Logs in to an existing account |\n| POST | /auth/resetPasswordRequest | resets a user's password |\n| POST | /auth/changePassword | changes a user's password |\n| POST | /auth/logout | logs out a session uid |\n\n### Profile\n| Method | Path | Description |\n|--------|------|-------------|\n| POST | /profile/address | gets the user's return address information |\n| POST | /profile/updateAddress | update the user's return address information |\n| POST | /profile/recipientsList | list the addresses in the user's account |\n| POST | /profile/profileAddRecipient | add a new recipient address |\n| POST | /profile/updateRecipient | updates an existing new recipient address |\n| POST | /profile/deleteRecipient | deletes an existing recipient address |\n\n### Fonts\n| Method | Path | Description |\n|--------|------|-------------|\n| GET | /fonts/list | Lists Handwryting styles available for use |\n| GET | /fonts/listForCustomizer | Lists fonts available for use with the card customizer |\n\n### Cards\n| Method | Path | Description |\n|--------|------|-------------|\n| POST | /cards/uploadCustomLogo | upload logo or cover image for card |\n| POST | /cards/createCustomCard | Create a new custom card |\n| GET | /cards/list | Lists information on cards |\n| POST | /cards/list | Lists information on cards |\n| POST | /cards/view | Provides full information on a specific card |\n\n### GiftCards\n| Method | Path | Description |\n|--------|------|-------------|\n| POST | /giftCards/view | Lists information on gift cards |\n| GET | /giftCards/view | Lists information on gift cards |\n\n### TemplateCategories\n| Method | Path | Description |\n|--------|------|-------------|\n| GET | /templateCategories/list | List template categories |\n| POST | /templateCategories/list | List template categories |\n\n### Templates\n| Method | Path | Description |\n|--------|------|-------------|\n| GET | /templates/list | List template categories |\n| POST | /templates/list | List template categories |\n| POST | /templates/view | Get all info on a template |\n| POST | /templates/create | Creates a New Template in the User’s Account |\n| POST | /templates/update | Updates an Existing Template in the User’s Account |\n| POST | /templates/delete | Deletes a users template |\n\n### Countries\n| Method | Path | Description |\n|--------|------|-------------|\n| GET | /countries/list | Lists the countries to which Handwritten can mail, their associated country ID and any costs |\n\n### Orders\n| Method | Path | Description |\n|--------|------|-------------|\n| POST | /orders/singleStepOrder | sends an order in a single step.  This is much easier than using other order commands |\n\n## Common Questions\nMatch user requests to endpoints in references/api-spec.lap. Key patterns:\n- \"Create a register?\" -> POST /auth/register\n- \"Create a authorization?\" -> POST /auth/authorization\n- \"Create a resetPasswordRequest?\" -> POST /auth/resetPasswordRequest\n- \"Create a changePassword?\" -> POST /auth/changePassword\n- \"Create a logout?\" -> POST /auth/logout\n- \"Create a address?\" -> POST /profile/address\n- \"Create a updateAddress?\" -> POST /profile/updateAddress\n- \"Create a recipientsList?\" -> POST /profile/recipientsList\n- \"Create a profileAddRecipient?\" -> POST /profile/profileAddRecipient\n- \"Create a updateRecipient?\" -> POST /profile/updateRecipient\n- \"Create a deleteRecipient?\" -> POST /profile/deleteRecipient\n- \"List all list?\" -> GET /fonts/list\n- \"Create a uploadCustomLogo?\" -> POST /cards/uploadCustomLogo\n- \"List all listForCustomizer?\" -> GET /fonts/listForCustomizer\n- \"Create a createCustomCard?\" -> POST /cards/createCustomCard\n- \"Create a list?\" -> POST /cards/list\n- \"Create a view?\" -> POST /cards/view\n- \"List all view?\" -> GET /giftCards/view\n- \"Create a create?\" -> POST /templates/create\n- \"Create a update?\" -> POST /templates/update\n- \"Create a delete?\" -> POST /templates/delete\n- \"Create a singleStepOrder?\" -> POST /orders/singleStepOrder\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 Handwrytten API\n@base https://api.handwrytten.com/v1\n@version 1.0.0\n@endpoints 30\n@hint download_for_search\n@toc auth(5), profile(6), fonts(2), cards(5), giftCards(2), templateCategories(2), templates(6), countries(1), orders(1)\n\n@group auth\n@endpoint POST /auth/register\n@desc Registers a new account\n@required {body: map # New user account information}\n@returns(200) successful registration\n@errors {405: Invalid input}\n\n@endpoint POST /auth/authorization\n@desc Logs in to an existing account\n@required {body: map # Login to account}\n@returns(200) successful login\n@errors {400: auth error}\n\n@endpoint POST /auth/resetPasswordRequest\n@desc resets a user's password\n@required {body: map # Reset password}\n@returns(200) successful reset request\n@errors {405: Invalid input}\n\n@endpoint POST /auth/changePassword\n@desc changes a user's password\n@required {body: map # Change password}\n@returns(200) successful password change\n@errors {405: Invalid input}\n\n@endpoint POST /auth/logout\n@desc logs out a session uid\n@required {body: map # logout session}\n@returns(200) successful logout\n@errors {405: Invalid input}\n\n@endgroup\n\n@group profile\n@endpoint POST /profile/address\n@desc gets the user's return address information\n@optional {body: map # additional parameters}\n@returns(200) successful operation\n\n@endpoint POST /profile/updateAddress\n@desc update the user's return address information\n@required {body: map # additional parameters}\n@returns(200) successful operation\n\n@endpoint POST /profile/recipientsList\n@desc list the addresses in the user's account\n@required {body: map # additional parameters}\n@returns(200) successful operation\n\n@endpoint POST /profile/profileAddRecipient\n@desc add a new recipient address\n@optional {body: map # additional parameters}\n@returns(200) successful operation\n\n@endpoint POST /profile/updateRecipient\n@desc updates an existing new recipient address\n@required {body: map # additional parameters}\n@returns(200) successful operation\n\n@endpoint POST /profile/deleteRecipient\n@desc deletes an existing recipient address\n@required {body: map # additional parameters}\n@returns(200) successful operation\n\n@endgroup\n\n@group fonts\n@endpoint GET /fonts/list\n@desc Lists Handwryting styles available for use\n@returns(200) successful operation\n\n@endgroup\n\n@group cards\n@endpoint POST /cards/uploadCustomLogo\n@desc upload logo or cover image for card\n@required {file: any # upload images for customc cards, type: any # set to cover or header, uid: any # uid of the user}\n@returns(200) successful operation\n\n@endgroup\n\n@group fonts\n@endpoint GET /fonts/listForCustomizer\n@desc Lists fonts available for use with the card customizer\n@returns(200) successful operation\n\n@endgroup\n\n@group cards\n@endpoint POST /cards/createCustomCard\n@desc Create a new custom card\n@required {body: map # additional parameters}\n@returns(200) successful operation\n\n@endpoint GET /cards/list\n@desc Lists information on cards\n@returns(200) successful operation\n@errors {400: Invalid status value}\n\n@endpoint POST /cards/list\n@desc Lists information on cards\n@optional {body: map # additional parameters}\n@returns(200) successful operation\n@errors {400: Invalid status value}\n\n@endpoint POST /cards/view\n@desc Provides full information on a specific card\n@optional {body: map # additional parameters}\n@returns(200) successful operation\n\n@endgroup\n\n@group giftCards\n@endpoint POST /giftCards/view\n@desc Lists information on gift cards\n@returns(200) successful operation\n\n@endpoint GET /giftCards/view\n@desc Lists information on gift cards\n@returns(200) successful operation\n\n@endgroup\n\n@group templateCategories\n@endpoint GET /templateCategories/list\n@desc List template categories\n@returns(200) successful operation\n\n@endpoint POST /templateCategories/list\n@desc List template categories\n@optional {body: map # additional parameters}\n@returns(200) successful operation\n\n@endgroup\n\n@group templates\n@endpoint GET /templates/list\n@desc List template categories\n@returns(200) successful operation\n\n@endpoint POST /templates/list\n@desc List template categories\n@optional {body: map # additional parameters}\n@returns(200) successful operation\n\n@endpoint POST /templates/view\n@desc Get all info on a template\n@required {body: map # additional parameters}\n@returns(200) successful operation\n\n@endpoint POST /templates/create\n@desc Creates a New Template in the User’s Account\n@required {body: map # additional parameters}\n@returns(200) successful operation\n\n@endpoint POST /templates/update\n@desc Updates an Existing Template in the User’s Account\n@required {body: map # additional parameters}\n@returns(200) successful operation\n\n@endpoint POST /templates/delete\n@desc Deletes a users template\n@required {body: map # additional parameters}\n@returns(200) successful deletion\n\n@endgroup\n\n@group countries\n@endpoint GET /countries/list\n@desc Lists the countries to which Handwritten can mail, their associated country ID and any costs\n@returns(200) successful operation\n\n@endgroup\n\n@group orders\n@endpoint POST /orders/singleStepOrder\n@desc sends an order in a single step.  This is much easier than using other order commands\n@required {body: map # additional parameters}\n@returns(200) successful order placement\n\n@endgroup\n\n@end\n"}}