{ "openapi": "3.1.0", "x-mint": { "mcp": { "enabled": true } }, "x-mcp": { "enabled": true }, "info": { "title": "thanks.io API", "description": "Use thanks.io to send postcards, letters, notecards, windowless letters, and giftcards through our API.", "contact": { "url": "https://www.thanks.io", "email": "support@thanks.io" }, "version": "1.0.0" }, "externalDocs": { "description": "Find out more about thanks.io", "url": "https://docs.thanks.io" }, "servers": [ { "url": "https://api.thanks.io/api/v2", "description": "The main API server for thanks.io" } ], "components": { "examples": { "recipient-example": { "summary": "Example Recipient", "value": { "id": 18113288, "mailing_list_id": 1, "name": "Tobias Example", "company": "thanks.io", "address": "12345 Main Street", "address2": "Apartment 1", "city": "Any Town", "province": "NY", "postal_code": "12345", "country": "US", "dob": "1981-04-23", "email": "tobias@example.com", "phone": "845-988-6485", "custom1": "Unique Info", "custom2": "For example a product code or customer ID", "custom3": "", "custom4": "", "created_at": "2025-06-27T14:57:11.000000Z", "updated_at": "2025-06-27T14:57:11.000000Z", "mailing_list": { "id": 1, "user_id": 2, "sub_account_id": null, "type": "manual", "description": "Sphere Contacts Mailing List", "qrcode_url": null, "total_recipients": 1, "processed": true, "is_suppression_list": false, "total_scans": 1, "unique_scans": 1, "last_scan": "2025-07-13T13:57:11.000000Z", "total_sends": 2, "last_send": "2025-07-06T13:57:11.000000Z", "created_at": "6 years ago", "updated_at": "2025-06-27T14:57:11.000000Z" } } }, "mailing-list-example": { "summary": "Example Mailing List", "value": { "id": 3020, "user_id": 2, "sub_account_id": null, "type": "manual", "description": "Birthday List", "qrcode_url": null, "total_recipients": 0, "processed": true, "is_suppression_list": false, "total_scans": 0, "unique_scans": 0, "last_scan": null, "total_sends": 0, "last_send": null, "api_key": "167ba7f0-72de-11f0-b054-6d9179a1fdb2", "created_at": "2025-08-06T15:57:43.000000Z", "created_at_diff": "18 minutes ago", "updated_at": "2025-08-06T15:57:43.000000Z" } }, "sub-account-example": { "summary": "Example Sub Account", "value": { "id": 1, "user_id": 2, "title": "My New Sub Account", "return_name": "John Smith", "return_address": "123 Smith Street 11", "return_address2": "Apt 1", "return_city": "Denver", "return_state": "CO", "return_postal_code": "12345", "message_background_url": null, "postcard6x9_background_url":null, "notecard_background_url": null, "windowedletter_background_url": null, "windowlessletter_background_url": null, "branding_fields": { "accentColor": "#5f01d1", "symbol": "", "logo": "https://s3.amazonaws.com/content-staging.thanks.io/templates/dynamic-images/5dcb82c0-f258-11ef-9c99-e542d768ea52.png", "disclaimer": null, "headshot": null, "name": "John Gray", "email": "test@test.com", "phone": "1234567890", "company": null, "domain": null, "set": true, "first_name": "John" }, "created_at": "2020-02-14 20:50:02", "updated_at": "2025-07-16 19:03:31" } } }, "parameters": { "items_per_page": { "name": "items_per_page", "in": "query", "description": "Number of items to return per page.", "required": false, "schema": { "type": "integer", "default": 25 }, "example": 5 } }, "schemas": { "giftcard-group": { "type": "object", "properties": { "title": { "type": "string", "description": "Giftcard Brand Grouping Title" }, "brands": { "type": "array", "items": { "type": "object", "properties": { "brand_code": { "type": "string", "description": "Code to send to the API to use this brand" }, "title": { "type": "string", "description": "Giftcard Brand Title to display to users" }, "image": { "type": "string", "description": "Image URL for the brand to display to users" }, "available_amounts": { "type": "array", "description": "Available amounts for this brand in cents", "items": { "type": "integer" } } } } } } }, "giftcard-group-list": { "type": "object", "properties": { "brands": { "type": "array", "items": { "type": "object", "properties": { "brand_code": { "type": "string", "description": "Code to send to the API to use this brand", "example": "amazonus" }, "title": { "type": "string", "description": "Giftcard Brand Title to display to users", "example": "Amazon.com" }, "image": { "type": "string", "description": "Image URL for the brand to display to users", "example": "https://s3.amazonaws.com/cdn.thanks.io/giftcards/amazonus.png" }, "available_amounts": { "type": "array", "description": "Available amounts for this brand in cents", "items": { "type": "integer", "example": 1000 } }, "group": { "type": "string", "description": "Giftcard Brand Grouping Title", "example": "Featured" } } } } } }, "mailing-list": { "type": "object", "properties": { "id": { "type": "integer", "example": 1 }, "user_id": { "type": "integer", "example": 2 }, "sub_account_id": { "type": "integer", "nullable": true }, "type": { "type": "string", "example": "manual", "enum": ["csv","manual","map","friends","retarget","leads","zapier","radius","highlevel","qrscans"] }, "description": { "type": "string", "example": "Test" }, "qrcode_url": { "type": "string", "nullable": true }, "total_recipients": { "type": "integer", "example": 1 }, "processed": { "type": "boolean", "example": true }, "is_suppression_list": { "type": "boolean", "example": false }, "total_scans": { "type": "integer", "example": 0 }, "unique_scans": { "type": "integer", "example": 0 }, "last_scan": { "type": "string", "nullable": true }, "total_sends": { "type": "integer", "example": 0 }, "last_send": { "type": "string", "nullable": true }, "api_key": { "type": "string", "description": "API key that can be used to add recipients to this mailing list with thanks.io Webhooks", "example": "abcd1234efgh5678ijkl9012mnop3456" }, "created_at": { "type": "string", "example": "2018-07-15T06:06:57.000000Z", "format": "date-time" }, "created_at_diff": { "type": "string", "example": "6 years ago", "description": "Human friendly time since created" }, "updated_at": { "type": "string", "example": "2025-06-27T14:57:11.000000Z", "format": "date-time" } } }, "recipient": { "type": "object", "properties": { "id": { "type": "integer", "example": 18113288, "readOnly": true }, "mailing_list_id": { "type": "integer", "example": 1 }, "name": { "type": "string", "example": "Tobias Example" }, "company": { "type": "string", "example": "www.thanks.io" }, "address": { "type": "string", "example": "123 Main Street" }, "address2": { "type": "string", "example": "Apartment 1" }, "city": { "type": "string", "example": "Any Town" }, "province": { "type": "string", "description": "State or Province", "example": "KS" }, "postal_code": { "type": "string", "example": "12345" }, "country": { "type": "string", "example": "US" }, "dob": { "type": "string", "description": "Date of Birth in ISO 8601 format (YYYY-MM-DD) or null if not set. If provided as MM/DD/YYYY in requests, it will be converted to ISO 8601 format.", "example": "1981-04-23" }, "email": { "type": "string", "example": "tobias@example.com" }, "phone": { "type": "string", "example": "+1 (555) 123-4567" }, "custom1": { "type": "string", "description": "Custom field for additional information about the recipient", "example": "Unique Info" }, "custom2": { "type": "string", "description": "Custom field for additional information about the recipient", "example": "For example a product code or customer ID" }, "custom3": { "type": "string", "description": "Custom field for additional information about the recipient", "example": "Any Extra Info" }, "custom4": { "type": "string", "description": "Custom field for additional information about the recipient", "example": "Any Extra Info" }, "mailing-list": { "readOnly": true, "allOf": [ { "$ref": "#/components/schemas/mailing-list" } ], "description": "The mailing list this recipient belongs to" }, "created_at": { "readOnly": true, "type": "string", "example": "2025-06-27T14:57:11.000000Z" }, "updated_at": { "readOnly": true, "type": "string", "example": "2025-06-27T14:57:11.000000Z" } } }, "recipient-no-mailinglist": { "type": "object", "properties": { "name": { "type": "string", "example": "Tobias Example" }, "company": { "type": "string", "example": "www.thanks.io" }, "address": { "type": "string", "example": "123 Main Street" }, "address2": { "type": "string", "example": "Apartment 1" }, "city": { "type": "string", "example": "Any Town" }, "province": { "type": "string", "description": "State or Province", "example": "KS" }, "postal_code": { "type": "string", "example": "12345" }, "country": { "type": "string", "example": "US" }, "dob": { "type": "string", "description": "Date of Birth in ISO 8601 format (YYYY-MM-DD) or null if not set. If provided as MM/DD/YYYY in requests, it will be converted to ISO 8601 format.", "example": "1981-04-23" }, "email": { "type": "string", "example": "tobias@example.com" }, "phone": { "type": "string", "example": "+1 (555) 123-4567" }, "custom1": { "type": "string", "description": "Custom field for additional information about the recipient", "example": "Unique Info" }, "custom2": { "type": "string", "description": "Custom field for additional information about the recipient", "example": "For example a product code or customer ID" }, "custom3": { "type": "string", "description": "Custom field for additional information about the recipient", "example": "Any Extra Info" }, "custom4": { "type": "string", "description": "Custom field for additional information about the recipient", "example": "Any Extra Info" } } }, "recipient-create": { "type": "object", "anyOf": [ { "title": "Create Recipient by Address", "description": "Create a recipient by providing address details", "summary": "Create Recipient by Address", "required": [ "mailing_list_id", "address" ] }, { "title": "Create Recipient by Email", "description": "Create a recipient by providing email address", "summary": "Create Recipient by Email", "required": [ "mailing_list_id", "email" ] } ], "properties": { "id": { "type": "integer", "example": 18113288, "readOnly": true }, "mailing_list_id": { "type": "integer", "example": 1 }, "name": { "type": "string", "example": "Tobias Example" }, "company": { "type": "string", "example": "www.thanks.io" }, "address": { "type": "string", "example": "123 Main Street" }, "address2": { "type": "string", "example": "Apartment 1" }, "city": { "type": "string", "example": "Any Town" }, "province": { "type": "string", "description": "State or Province", "example": "KS" }, "postal_code": { "type": "string", "example": "12345" }, "country": { "type": "string", "example": "US" }, "dob": { "type": "string", "description": "Date of Birth in ISO 8601 format (YYYY-MM-DD) or null if not set. If provided as MM/DD/YYYY in requests, it will be converted to ISO 8601 format.", "example": "1981-04-23" }, "email": { "type": "string", "example": "tobias@example.com" }, "phone": { "type": "string", "example": "+1 (555) 123-4567" }, "custom1": { "type": "string", "description": "Custom field for additional information about the recipient", "example": "Unique Info" }, "custom2": { "type": "string", "description": "Custom field for additional information about the recipient", "example": "For example a product code or customer ID" }, "custom3": { "type": "string", "description": "Custom field for additional information about the recipient", "example": "Any Extra Info" }, "custom4": { "type": "string", "description": "Custom field for additional information about the recipient", "example": "Any Extra Info" }, "mailing-list": { "readOnly": true, "allOf": [ { "$ref": "#/components/schemas/mailing-list" } ], "description": "The mailing list this recipient belongs to" }, "created_at": { "readOnly": true, "type": "string", "example": "2025-06-27T14:57:11.000000Z" }, "updated_at": { "readOnly": true, "type": "string", "example": "2025-06-27T14:57:11.000000Z" } } }, "recipient-create-no-mailinglist": { "type": "object", "anyOf": [ { "title": "Create Recipient by Address", "description": "Create a recipient by providing address details", "summary": "Create Recipient by Address", "required": [ "mailing_list_id", "address" ] }, { "title": "Create Recipient by Email", "description": "Create a recipient by providing email address", "summary": "Create Recipient by Email", "required": [ "mailing_list_id", "email" ] } ], "properties": { "name": { "type": "string", "example": "Tobias Example" }, "company": { "type": "string", "example": "www.thanks.io" }, "address": { "type": "string", "example": "123 Main Street" }, "address2": { "type": "string", "example": "Apartment 1" }, "city": { "type": "string", "example": "Any Town" }, "province": { "type": "string", "description": "State or Province", "example": "KS" }, "postal_code": { "type": "string", "example": "12345" }, "country": { "type": "string", "example": "US" }, "dob": { "type": "string", "description": "Date of Birth in ISO 8601 format (YYYY-MM-DD) or null if not set. If provided as MM/DD/YYYY in requests, it will be converted to ISO 8601 format.", "example": "1981-04-23" }, "email": { "type": "string", "example": "tobias@example.com" }, "phone": { "type": "string", "example": "+1 (555) 123-4567" }, "custom1": { "type": "string", "description": "Custom field for additional information about the recipient", "example": "Unique Info" }, "custom2": { "type": "string", "description": "Custom field for additional information about the recipient", "example": "For example a product code or customer ID" }, "custom3": { "type": "string", "description": "Custom field for additional information about the recipient", "example": "Any Extra Info" }, "custom4": { "type": "string", "description": "Custom field for additional information about the recipient", "example": "Any Extra Info" }, "mailing-list": { "readOnly": true, "allOf": [ { "$ref": "#/components/schemas/mailing-list" } ], "description": "The mailing list this recipient belongs to" }, "created_at": { "readOnly": true, "type": "string", "example": "2025-06-27T14:57:11.000000Z" }, "updated_at": { "readOnly": true, "type": "string", "example": "2025-06-27T14:57:11.000000Z" } } }, "recipient-array": { "type": "array", "description": "Array of recipient objects", "items": { "$ref": "#/components/schemas/recipient" } }, "sub-account": { "type": "object", "properties" : { "id": { "type": "integer", "example": 1 }, "user_id": { "type": "integer", "example": 2 }, "title": { "type": "string", "example": "My Sub Account" }, "return_name": { "type": "string", "example": "John Smith" }, "return_address": { "type": "string", "example": "123 Smith Street" }, "return_address2": { "type": "string", "example": "Apartment 2" }, "return_city": { "type": "string", "example": "Denver" }, "return_state": { "type": "string", "example": "CO" }, "return_postal_code": { "type": "string", "example": "12345" } } }, "sub-account-create": { "type": "object", "required": ["title"], "properties" : { "title": { "type": "string", "example": "My Sub Account" }, "return_name": { "type": "string", "example": "John Smith" }, "return_address": { "type": "string", "example": "123 Smith Street" }, "return_address2": { "type": "string", "example": "Apartment 2" }, "return_city": { "type": "string", "example": "Denver" }, "return_state": { "type": "string", "example": "CO" }, "return_postal_code": { "type": "string", "example": "12345" } } }, "links": { "type": "object", "properties": { "first": { "type": "string", "description": "URL of the first page of results", "nullable": true }, "last": { "type": "string", "description": "URL of the last page of results", "nullable": true }, "prev": { "type": "string", "description": "URL of the previous page of results", "nullable": true }, "next": { "type": "string", "description": "URL of the next page of results", "nullable": true } } }, "meta": { "type": "object", "properties": { "current_page": { "type": "integer", "example": 1, "description": "Current page number" }, "from": { "type": "integer", "nullable": true, "example": 1, "description": "Index of the first item on the current page" }, "last_page": { "type": "integer", "example": 1, "description": "Total number of pages" }, "path": { "type": "string", "description": "Base URL for the resource" }, "per_page": { "type": "integer", "example": 25, "description": "Number of items per page" }, "to": { "type": "integer", "nullable": true, "example": 1, "description": "Index of the last item on the current page" }, "total": { "type": "integer", "example": 1, "description": "Total number of items" } } }, "paginated": { "type": "object", "properties": { "current_page": { "type": "integer", "example": 1, "description": "Current page number" }, "first_page_url": { "type": "string", "description": "URL of the first page of results", "nullable": true, "example": "https://api.thanks.io/api/v2/mailing-lists-utils/recipients/3014?page=1" }, "from": { "type": "integer", "example": 1, "description": "Index of the first item on the current page" }, "last_page": { "type": "integer", "example": 1, "description": "Total number of pages" }, "last_page_url": { "type": "string", "description": "URL of the last page of results", "nullable": true, "example": "https://api.thanks.io/api/v2/mailing-lists-utils/recipients/3014?page=1" }, "next_page_url": { "type": "string", "description": "URL of the next page of results", "nullable": true }, "path": { "type": "string", "description": "Base URL for the resource", "example": "https://api.thanks.io/api/v2/mailing-lists-utils/recipients/3014" }, "per_page": { "type": "integer", "example": 50, "description": "Number of items per page" }, "prev_page_url": { "type": "string", "description": "URL of the previous page of results", "nullable": true }, "to": { "type": "integer", "example": 12, "description": "Index of the last item on the current page" }, "total": { "type": "integer", "example": 12, "description": "Total number of items" } } }, "send-mailer-base": { "type": "object", "properties": { "preview": { "type": "boolean", "description": "Set to true to preview the postcard instead of sending it. This can be used with any send call to get a preview before sending.", "example": true }, "mailing_lists": { "type": "array", "description": "ID of mailing list to sent to. Required if recipients and radius_search is not specified.", "items": { "type": "integer" }, "example": [5166, 514] }, "recipients": { "type": "array", "description": "Array of recipients to send to. Required if mailing_lists and radius_search is not specified.", "items": { "$ref": "#/components/schemas/recipient-create-no-mailinglist" } }, "radius_search": { "type": "object", "description": "Search for recipients within a radius of a given address. Required if mailing_lists and recipients are not specified. There is a $.05 lookup fee for each record.", "properties": { "preview": { "type": "boolean", "description": "Return a preview of number of neighbors found and cost.", "default": false }, "address": { "type": "string", "example": "123 Main Street, Fake City, NY, 55555", "description": "Full Street address to use for center of nearest neighbor search." }, "record_count": { "type": "integer", "description": "Number of nearest neighbors to search for.", "minimum": 1, "maximum": 10000, "example": 1 }, "record_types": { "type": "string", "description": "Which type of records to search for", "enum": [ "all", "likelytomove", "likelytorefi", "absenteeowner", "highnetworth", "majorityhomeequity", "homefreeclear", "underwater", "kidsinhousehold", "newhomeowner", "firsttimehomebuyer", "renters", "retiring", "retired", "pool", "onlybusinesses", "newbusiness" ], "default": "all" }, "include_condos": { "type": "boolean", "description": "Include condos in search.", "default": false }, "append_data": { "type": "boolean", "description": "Append phone and email to each record for an additional fee ($.20 per record).", "default": false }, "use_property_owner": { "type": "boolean", "description": "Use Property Owners Address when searching for a commercial record_type.", "default": false } } }, "handwriting_style": { "type": "integer", "description": "ID of handwriting style to use.", "example": 4 }, "handwriting_color": { "type": "string", "description": "Handwriting color to use. Options are preset named colors or specified as hex format, such as '#4287f5'", "enum": ["blue", "black", "green", "purple", "red"], "examples": [ "blue", "#4287f5" ] }, "handwriting_realism": { "type": "boolean", "description": "Boolean, set to true to turn on the realism effect for AI fonts.", "example": true }, "sub_account": { "type": "integer", "description": "ID of Sub Account to use for this order.", "example": 7 }, "email_additional": { "type": "string", "description": "Optional email to send alerts to about order (such as QR scan notifications).", "example": "test@test.com" }, "send_standard_mail": { "type": "boolean", "description": "Send Mail as Standard Mail postage class. If false or not specified, First Class postage will be used.", "default": false }, "return_name": { "type": "string", "description": "Custom return name for the order.", "example": "Custom Return" }, "return_address": { "type": "string", "description": "Custom return address for the order.", "example": "1 Main Street" }, "return_address2": { "type": "string", "description": "Custom return address line 2 for the order.", "example": "Unit 1" }, "return_city": { "type": "string", "description": "Custom return city for the order.", "example": "Woodbridge" }, "return_state": { "type": "string", "description": "Custom return state/province for the order.", "example": "NJ" }, "return_postal_code": { "type": "string", "description": "Custom return postal code for the order.", "example": "07095" } } }, "send-mailer-order-response": { "type": "object", "title": "Send Mailer Order Submitted Response", "description": "Response when an Order is successfully submitted to Send Mailer", "properties": { "id": { "type": "integer", "description": "Unique identifier for the order", "example": 42664 }, "user_id": { "type": "integer", "description": "User ID for the order", "example": 2 }, "sub_account": { "description": "Sub-account Info For Order. Can be null", "nullable": true, "allOf": [ { "$ref": "#/components/schemas/sub-account" } ] }, "sub_account_id": { "type": "integer", "description": "Sub account ID for the order", "nullable": true, "example": 12345 }, "total_estimated_recipients": { "type": "integer", "description": "Total estimated recipients for the order", "example": 1 }, "authorization_total": { "type": "integer", "description": "Total authorization amount for the order in cents", "example": 58 }, "leads_fee": { "type": "integer", "description": "Total leads fee for the order in cents", "example": 99 }, "mailing_list_ids_used": { "type": "string", "description": "Mailing lists used for the order. Can be null if recipients or radius search is used.", "example": "3046,3020" }, "recipients": { "type": "array", "description": "List of recipients for the order", "items": { "$ref": "#/components/schemas/recipient-no-mailinglist" } }, "front_image": { "type": "string", "description": "Front image URL for the order", "example": "https://s3.amazonaws.com/cdn.thanks.io/user_image_library/1533645532.png" }, "image_template_id": { "type": "integer", "description": "Image template ID for the order", "nullable": true, "example": 6 }, "custom_background_url": { "type": "string", "description": "Custom background URL for the order", "nullable": true, "example": "https://s3.amazonaws.com/content-staging.thanks.io/templates/branding-builder-images/c09d39aadfc-3701d4467b8/4524cce0-78cb-11f0-b937-17570cbedaf4.png" }, "message": { "type": "string", "description": "Message content for the order", "example": "Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum." }, "message_template_id": { "type": "integer", "description": "Message template ID for the order", "nullable": true, "example": 12345 }, "handwriting_color": { "type": "string", "description": "Handwriting color to use", "example": "rgba(31,0,113,0.80)" }, "font_size": { "type": "string", "description": "Font size for the order", "enum": [ "auto", "small", "medium", "large" ], "example": "auto" }, "style": { "type": "integer", "description": "Handwriting style ID for the order", "example": 4 }, "append_or_current_resident": { "type": "boolean", "description": "Appended \"Or Current Resident\" for the order. This is helpful if you want to ensure delivery.", "example": false }, "return_name": { "type": "string", "description": "Return name for the order", "nullable": true, "example": "John Doe" }, "return_address": { "type": "string", "description": "Return address line 1 for the order", "nullable": true, "example": "123 Main Street" }, "return_address2": { "type": "string", "description": "Return address line 2 for the order", "nullable": true, "example": null }, "return_city": { "type": "string", "description": "Return city for the order", "nullable": true, "example": "Anytown" }, "return_province": { "type": "string", "description": "Return state/province for the order", "nullable": true, "example": "NY" }, "return_postal_code": { "type": "string", "description": "Return postal code for the order", "nullable": true, "example": "12345" }, "type": { "type": "string", "description": "Type of the order", "enum": [ "postcard", "postcard6x11", "letter", "notecard", "giftcard", "windowlessletter" ], "example": "postcard" }, "size": { "type": "string", "description": "Size of the order (valid for postcards only)", "enum": [ "4x6", "6x9", "6x11" ], "example": "4x6" }, "method": { "type": "string", "description": "Method for the order", "enum": [ "api", "cardbuilder", "drip", "email", "zapier" ] }, "status": { "type": "string", "description": "Status of the order", "enum": [ "reviewing", "processing", "fulfilled", "cancelled", "printed", "shipped", "paused", "delivered" ] }, "display_status": { "type": "string", "description": "Display status for the order", "example": "Reviewing" }, "display_trigger": { "type": "string", "description": "Display trigger for the order", "example": "API" }, "display_type": { "type": "string", "description": "Display type for the order", "example": "Postcard-4x6" }, "addons": { "type": "object", "description": "Add-ons for the order", "nullable": true, "properties": { "standardmail": { "type": "string", "description": "Standard mail add-on status", "enum": [ "on", "off" ], "example": "on" } } }, "qrcode_url": { "type": "string", "description": "QR code URL for the order", "nullable": true, "example": "https://www.google.com?name=~FULL_NAME~&custom_field_1=~CUSTOM1~&custom_field2=~CUSTOM2~" }, "giftcard_brand": { "type": "string", "description": "Gift card brand for the order (valid for Giftcard orders only)", "nullable": true, "example": null }, "giftcard_image": { "type": "string", "description": "Gift card image URL for the order (valid for Giftcard orders only)", "nullable": true, "example": null }, "giftcard_amount": { "type": "integer", "description": "Gift card amount for the order in cents (valid for Giftcard orders only)", "nullable": true, "example": null }, "giftcard_brand_longname": { "type": "string", "description": "Gift card brand long name for the order (valid for Giftcard orders only)", "example": "Amazon.com" }, "updated_at": { "type": "string", "format": "date-time", "description": "Last updated timestamp for the order", "example": "2025-08-14 16:42:44" }, "created_at": { "type": "string", "format": "date-time", "description": "Creation timestamp for the order", "example": "2025-08-14 16:42:44" } } }, "send-mailer-preview-response": { "type": "object", "title": "Send Mailer Preview Response", "description": "Images representing preview of order. Response when `preview` is set to `true`", "properties": { "message": { "type": "string", "example": "OK", "description": "Response message" }, "data": { "type": "object", "description": "Preview data containing image URLs", "properties": { "previews": { "type": "array", "description": "Array of preview image URLs", "items": { "type": "string", "format": "uri", "example": "https://s3.amazonaws.com/cdn.thanks.io/preview/12345.png" } } } } } } }, "responses": { "Unauthorized": { "description": "Access token is missing or invalid", "content": { "application/json": { "schema": { "type": "object", "properties": { "message": { "type": "string", "example": "Unauthorized" } } } } } }, "UserError": { "description": "User error occurred", "content": { "application/json": { "schema": { "type": "object", "properties": { "message": { "type": "string", "example": "Sub Account ID does not exist" } } } } } }, "UnknownError": { "description": "An unknown error occurred", "content": { "application/json": { "schema": { "type": "object", "properties": { "message": { "type": "string", "example": "Error Submitting Mailer" } } } } } }, "MailingListDoesNotExist": { "description": "The specified mailing list does not exist", "content": { "application/json": { "schema": { "type": "object", "properties": { "message": { "type": "string", "example": "Mailing List Does Not Exist" } } } } } }, "NotFound": { "description": "Resource not found", "content": { "application/json": { "schema": { "type": "object", "properties": { "message": { "type": "string", "example": "Not Found" } } } } } } }, "securitySchemes": { "bearerAuth": { "type": "http", "scheme": "bearer", "description": "Bearer token authentication using your thanks.io API key" } } }, "security": [ { "bearerAuth": [] } ], "tags": [ { "name": "Recipients" }, { "name": "Mailing Lists" }, { "name": "Send Mailer" }, { "name": "Orders" }, { "name": "Message Templates" }, { "name": "Handwriting Styles" }, { "name": "Giftcards" }, { "name": "Dynamic Images", "description": "" }, { "name": "Image Builder" }, { "name": "Sub Accounts" } ], "paths": { "/recipients/{recipientId}": { "parameters": [ { "name": "recipientId", "in": "path", "description": "ID of recipient", "required": true, "schema": { "type": "integer", "example": 296446 } } ], "get": { "tags": ["Recipients"], "operationId": "getRecipientsDetails", "summary": "Get Details", "description": "Gets a recipient by ID. Returns a single recipient object.", "responses": { "200": { "description": "Successful Response", "headers": { "Content-Type": { "schema": { "type": "string", "example": "application/json" } } }, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/recipient" }, "examples": { "recipient": { "$ref": "#/components/examples/recipient-example" } } } } }, "403": { "$ref": "#/components/responses/Unauthorized" }, "404": { "$ref": "#/components/responses/NotFound" } } }, "put": { "tags": ["Recipients"], "summary": "Update Recipient", "operationId": "updateRecipientDetails", "description": "Update details of a specific recipient by ID.", "requestBody": { "required": true, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/recipient" } } } }, "responses": { "200": { "description": "Successful Response", "headers": { "Content-Type": { "schema": { "type": "string", "example": "application/json" } } }, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/recipient" }, "examples": { "recipient": { "$ref": "#/components/examples/recipient-example" } } } } }, "400": { "$ref": "#/components/responses/MailingListDoesNotExist" }, "403": { "$ref": "#/components/responses/Unauthorized" }, "404": { "$ref": "#/components/responses/NotFound" } } }, "delete": { "tags": ["Recipients"], "operationId": "deleteRecipient", "summary": "Delete Recipient", "responses": { "200": { "description": "Successful Response", "headers": { "Content-Type": { "schema": { "type": "string", "example": "application/json" } } }, "content": { "application/json": { "schema": { "type": "object" }, "example": { "message": "success" } } } }, "403": { "$ref": "#/components/responses/Unauthorized" }, "404": { "$ref": "#/components/responses/NotFound" } } } }, "/recipients": { "post": { "tags": ["Recipients"], "operationId": "createRecipient", "summary": "Create Recipient", "description": "Add a recipient. If no/invalid address is specified and a valid email address is, we’ll attempt to look up a valid street address using the email address for a fee.", "requestBody": { "required": true, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/recipient-create" }, "examples": { "Adding By Address": { "value": { "mailing_list_id": 1, "name": "Tobias Example", "company": "thanks.io", "address": "12345 Main Street", "address2": "Apartment 1", "city": "Any Town", "province": "NY", "postal_code": "12345", "country": "US", "dob": "1981-04-23", "email": "tobias@example.com", "phone": "845-988-6485", "custom1": "Unique Info", "custom2": "For example a product code or customer ID", "custom3": "", "custom4": "" } }, "Adding By Email": { "value": { "mailing_list_id": 1, "email": "tobias@example.com" } } } } } }, "responses": { "200": { "description": "Successful Response", "headers": { "Content-Type": { "schema": { "type": "string", "example": "application/json" } } }, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/recipient" }, "examples": { "recipient": { "$ref": "#/components/examples/recipient-example" } } } } }, "400": { "$ref": "#/components/responses/MailingListDoesNotExist" }, "404": { "$ref": "#/components/responses/NotFound" } } } }, "/recipients-utils/create-multiple": { "post": { "tags": ["Recipients"], "operationId": "createMultipleRecipients", "summary": "Create Multiple Recipients", "description": "Add multiple recipients at once using a JSON array of recipient objects. If no/invalid address is specified and a valid email address is, we’ll attempt to look up a valid street address using the email address for a fee.", "requestBody": { "content": { "application/json": { "schema": { "type": "array", "items": { "$ref": "#/components/schemas/recipient-create" }, "example": [ { "mailing_list": 1, "name": "Tobias First", "address": "987 Main Street", "address2": null, "city": "LENEXA", "province": "KS", "postal_code": "66216", "country": "US", "dob": "04/23/1981", "custom1": null, "custom2": null, "email": "testemail@thanks.io", "phone": "1234567890" }, { "mailing_list": 1, "email": "another-testemail@thanks.io", "phone": "1234567890" } ] } } } }, "responses": { "200": { "description": "OK", "headers": { "Content-Type": { "schema": { "type": "string", "example": "application/json" } } }, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/recipient-array" }, "example": [ { "province": "KS", "city": "Lenexa", "name": "Tobias First", "company": null, "dob": "04/23/1981", "country": "US", "address": "987 Main Street", "address2": "", "email": "testemail@thanks.io", "phone": "1234567890", "custom1": null, "custom2": null, "postal_code": "66216" }, { "province": "KS", "city": "Lenexa", "name": "Tobias Second", "company": null, "dob": "04/23/1981", "country": "US", "address": "654 Main Street", "address2": "", "email": "testemail@thanks.io", "phone": "1234567890", "custom1": null, "custom2": null, "postal_code": "66216", "error": "This address is already on this mailing list." } ] } } } } } }, "/recipients-utils/delete-by-address": { "post": { "tags": ["Recipients"], "summary": "Delete Recipient By Address", "description": "Delete a recipient by using their address or their email address.", "operationId": "deleteRecipientByAddress", "requestBody": { "content": { "application/json": { "schema": { "type": "object", "anyOf": [ { "title": "Delete Recipient by Address", "description": "Delete a recipient by providing address details", "required": ["mailing_list_id", "address", "postal_code"] }, { "title": "Delete Recipient by Email", "description": "Delete a recipient by providing email address", "required": ["mailing_list_id", "email"] } ], "properties": { "mailing_list_id": { "type": "integer", "example": 1 }, "address": { "type": "string", "example": "123 Main Street" }, "address2": { "type": "string", "example": "Apartment 1" }, "city": { "type": "string", "example": "Any Town" }, "province": { "type": "string", "description": "State or Province", "example": "KS" }, "postal_code": { "type": "string", "example": "12345" }, "country": { "type": "string", "example": "US" }, "email": { "type": "string", "example": "tobias@example.com" } } } } } }, "responses": { "200": { "description": "OK", "headers": { "Content-Type": { "schema": { "type": "string", "example": "application/json" } } }, "content": { "application/json": { "schema": { "type": "object" }, "example": { "status": "Recipient 297230 Deleted" } } } }, "400": { "$ref": "#/components/responses/MailingListDoesNotExist" } } } }, "/mailing-lists/": { "get": { "tags": ["Mailing Lists"], "operationId": "getMailingLists", "summary": "List All", "description": "List all available mailing lists. Returns a paginated list of mailing lists.", "parameters": [ { "$ref": "#/components/parameters/items_per_page" } ], "responses": { "200": { "description": "OK", "headers": { "Content-Type": { "schema": { "type": "string", "example": "application/json" } } }, "content": { "application/json": { "schema": { "type": "object", "properties": { "data": { "type": "array", "items": { "$ref": "#/components/schemas/mailing-list" } }, "links": { "$ref": "#/components/schemas/links" }, "meta": { "$ref": "#/components/schemas/meta" } } }, "example": { "data": [ { "id": 3019, "user_id": 2, "sub_account_id": null, "type": "manual", "description": "Test Mailing List", "qrcode_url": null, "total_recipients": 0, "processed": true, "is_suppression_list": false, "total_scans": 0, "unique_scans": 0, "last_scan": null, "total_sends": 0, "last_send": null, "api_key": "TEST-KEY1", "created_at": "2025-08-06T01:06:52.000000Z", "created_at_diff": "13 hours ago", "updated_at": "2025-08-06T01:06:52.000000Z" }, { "id": 3017, "user_id": 2, "sub_account_id": null, "type": "csv", "description": "Mailing List (Csv) Created 07/16/2025", "qrcode_url": null, "total_recipients": 0, "processed": false, "is_suppression_list": false, "total_scans": 0, "unique_scans": 0, "last_scan": null, "total_sends": 0, "last_send": null, "api_key": "TEST-KEY2", "created_at": "2025-07-16T19:00:31.000000Z", "created_at_diff": "2 weeks ago", "updated_at": "2025-07-16T19:00:31.000000Z" } ], "links": { "first": "https://api.thanks.io/api/v2/mailing-lists?page=1", "last": "https://api.thanks.io/api/v2/mailing-lists?page=377", "prev": null, "next": "https://api.thanks.io/api/v2/mailing-lists?page=2" }, "meta": { "current_page": 1, "from": 1, "last_page": 377, "path": "https://api.thanks.io/api/v2/mailing-lists", "per_page": "2", "to": 2, "total": 754 } } } } }, "403": { "$ref": "#/components/responses/Unauthorized" } } }, "post": { "tags": ["Mailing Lists"], "operationId": "createMailingList", "summary": "Create Mailing List", "description": "If qrcode_url is provided, it will be used as the default QR Code URL when placing orders with this mailing list.", "requestBody": { "content": { "application/json": { "schema": { "type": "object", "properties": { "description": { "type": "string", "example": "Birthday List" }, "sub_account_id": { "type": "integer", "description": "ID of the sub-account to associate with this mailing list. If not provided, the mailing list will be associated with the main account.", "example": 7 }, "qrcode_url": { "type": "string", "description": "QR Code URL for the mailing list.", "example": "https://www.google.com" } }, "required": ["description"] } } } }, "responses": { "201": { "description": "Created", "headers": { "Content-Type": { "schema": { "type": "string", "example": "application/json" } } }, "content": { "application/json": { "schema": { "type": "object", "properties": { "type": { "type": "string", "example": "manual", "enum": [ "csv", "manual", "map", "friends", "retarget", "leads", "zapier", "radius", "highlevel", "qrscans" ] }, "description": { "type": "string", "example": "New Mailing List (Created via API 09/07/2024)" }, "sub_account_id": { "type": ["integer", "null"], "example": 7 }, "user_id": { "type": "integer", "example": 2 }, "updated_at": { "type": "string", "example": "2024-09-07 02:10:32" }, "created_at": { "type": "string", "example": "1 second ago" }, "id": { "type": "integer", "example": 610 } } }, "example": { "type": "manual", "description": "New Mailing List (Created via API 09/07/2024)", "sub_account_id": 7, "user_id": 2, "updated_at": "2024-09-07 02:10:32", "created_at": "1 second ago", "id": 610 } } } }, "403": { "$ref": "#/components/responses/Unauthorized" } } } }, "/mailing-lists/{mailingListId}": { "parameters": [ { "name": "mailingListId", "in": "path", "description": "ID of mailing list", "required": true, "schema": { "type": "integer", "example": 56 } } ], "get": { "tags": ["Mailing Lists"], "operationId": "getMailingListDetails", "summary": "Get Details", "description": "Gets a mailing list by ID. Returns a single mailing list object.", "responses": { "200": { "description": "Successful Response", "headers": { "Content-Type": { "schema": { "type": "string", "example": "application/json" } } }, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/mailing-list" }, "examples": { "mailing-list": { "$ref": "#/components/examples/mailing-list-example" } } } } }, "403": { "$ref": "#/components/responses/Unauthorized" }, "404": { "$ref": "#/components/responses/NotFound" } } }, "delete": { "tags": ["Mailing Lists"], "operationId": "deleteMailingList", "summary": "Delete Mailing List", "responses": { "200": { "description": "Successful Response", "headers": { "Content-Type": { "schema": { "type": "string", "example": "application/json" } } }, "content": { "application/json": { "schema": { "type": "object" }, "example": { "message": "success" } } } }, "403": { "$ref": "#/components/responses/Unauthorized" }, "404": { "$ref": "#/components/responses/NotFound" } } } }, "/mailing-lists-utils/recipients/{mailingListId}": { "get": { "tags": ["Mailing Lists"], "summary": "List Recipients", "description": "Retrieve recipients for a specific mailing list.", "parameters": [ { "name": "limit", "in": "query", "description": "Number of results to return per page.", "schema": { "type": "integer", "example": 1000, "maximum": 10000, "minimum": 1 } }, { "name": "updated_since", "in": "query", "description": "Return only recipients updated since this date/time. Format: YYYY-MM-DD HH:MM:SS", "schema": { "type": "string", "example": "2020-04-06 01:55:50" } }, { "name": "mailingListId", "in": "path", "description": "ID of mailing list", "required": true, "schema": { "type": "integer", "example": 56 } } ], "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "allOf" : [ { "type": "object", "properties": { "data": { "type": "array", "items": { "$ref": "#/components/schemas/recipient" }, "description": "Array of recipient objects" } } }, { "$ref": "#/components/schemas/paginated" } ] }, "example": { "current_page": 1, "data": [ { "id": 293345, "mailing_list_id": 514, "session_id": null, "name": "John Doe", "address": "123 Main Street", "address2": null, "city": "Austin", "province": "TX", "postal_code": "78703", "country": "US", "dob": null, "custom1": null, "custom2": null, "deliverability": null, "can_deliver": true, "created_at": "2020-03-10 13:33:04", "updated_at": "2020-04-06 01:57:50" } ], "first_page_url": "http://api.thanks.io/api/v2/mailing-lists/514/recipients?page=1", "from": 1, "last_page": 1, "last_page_url": "http://api.thanks.io/api/v2/mailing-lists/514/recipients?page=1", "next_page_url": null, "path": "http://api.thanks.io/api/v2/mailing-lists/514/recipients", "per_page": "1000", "prev_page_url": null, "to": 1, "total": 1 } } } }, "403": { "$ref": "#/components/responses/Unauthorized" }, "404": { "$ref": "#/components/responses/NotFound" } } } }, "/mailing-lists/buy-radius-search": { "post": { "tags": ["Mailing Lists"], "summary": "Radius Search", "description": "This call will purchase a radius search mailing listing and add it to your account. Each record added to the mailing list costs $.05. You can specify the number of records to return (up to 10,000) and the address/postal code to center the search around. You can also specify a mailing_list_id to add the results to an existing mailing list, or leave it blank to create a new mailing list.", "requestBody": { "content": { "application/json": { "schema": { "type": "object", "required": [ "address", "postal_code", "record_count" ], "properties": { "mailing_list_id": { "type": "integer", "example": 1, "description": "ID of the mailing list to add the radius search results to. If not provided, a new mailing list will be created." }, "address": { "type": "string", "example": "123 Main Street", "description": "Street address to use for center of nearest neighbor search." }, "postal_code": { "type": "string", "example": "55555", "description": "Postal code to use for center of nearest neighbor search." }, "record_count": { "type": "integer", "description": "Number of nearest neighbors to search for.", "minimum": 1, "maximum": 10000, "example": 1 }, "record_types": { "type": "string", "description": "Which type of records to search for", "enum": [ "all", "likelytomove", "likelytorefi", "absenteeowner", "highnetworth", "majorityhomeequity", "homefreeclear", "underwater", "kidsinhousehold", "newhomeowner", "firsttimehomebuyer", "renters", "retiring", "retired", "pool", "onlybusinesses", "newbusiness" ], "default": "all" }, "include_condos": { "type": "boolean", "description": "Include condos in search.", "default": false }, "append_data": { "type": "boolean", "description": "Append phone and email to each record for an additional fee ($.20 per record).", "default": false }, "use_property_owner": { "type": "boolean", "description": "Use Property Owners Address when searching for a commercial record_type.", "default": false } } }, "examples": { "Create New List w/ Phone+Email Append": { "value": { "address": "123 Main Street", "postal_code": "55555", "record_types": "all", "record_count": 10, "include_condos": false, "append_data": true } }, "Append To Existing List w/ Condos": { "value": { "address": "123 Main Street", "postal_code": "55555", "record_types": "all", "record_count": 10, "include_condos": true, "append_data": false, "mailing_list_id": 3020 } } } } } }, "responses": { "200": { "description": "Successful Response", "headers": { "Content-Type": { "schema": { "type": "string", "example": "application/json" } } }, "content": { "application/json": { "schema": { "type": "object", "properties": { "message": { "type": "string", "example": "success" }, "mailing_list_id": { "type": "integer", "example": 1196 }, "failure": { "type": "boolean", "example": false } } }, "example": { "message": "success", "mailing_list_id": 1196, "failure": false } } } }, "400": { "description": "Bad Request", "content": { "application/json": { "schema": { "type": "object", "properties": { "message": { "type": "string", "example": "No neighbors could be found with search parameters." }, "failure": { "type": "boolean", "example": true } } } } } }, "403": { "$ref": "#/components/responses/Unauthorized" }, "404": { "$ref": "#/components/responses/NotFound" } } } }, "/send/postcard": { "post": { "tags": ["Send Mailer"], "summary": "Send Postcard", "description": "Send a 4x6, 6x9, or 6x11 postcard.", "requestBody": { "content": { "application/json": { "schema": { "allOf": [ { "$ref": "#/components/schemas/send-mailer-base" }, { "type": "object", "properties": { "image_template": { "type": "integer", "description": "ID of image template to use for front of postcard. Required if front_image_url is not specified.", "example": 6 }, "front_image_url": { "type": "string", "description": "URL to image to use for front of postcard. Must be 1875px by 1275px for 4x6/6x9 postcards or 3337px x 1777px for 6x11 Postcards. Required if image_template is not specified.", "example": "https://s3.amazonaws.com/cdn.thanks.io/user_image_library/gFBaJJJWRp60op3ZOoK7UaO5I7zi33rdKQGgHylR.png" }, "message": { "type": "string", "description": "Handwritten message content used for content on back of postcard.", "example": "Hey %FIRST_NAME%!,\n\nTHANK YOU for allowing us the opportunity to HELP you with your plan!" }, "message_template": { "type": "integer", "description": "ID of message template to use for content on back of postcard.", "example": 12 }, "use_custom_background": { "type": "boolean", "description": "Use custom background image. This can be used to turn off the default background image.", "default": false }, "custom_background_image": { "type": "string", "description": "URL to custom background image to use for back of postcard. This image will be placed behind the handwritten message. Must be 1875px by 1275px for 4x6/6x9 postcards or 3337px x 1777px for 6x11 Postcards.", "example": "https://s3.amazonaws.com/cdn.thanks.io/user_image_library/gFBaJJJWRp60op3ZOoK7UaO5I7zi33rdKQGgHylR.png" }, "qrcode_url": { "type": "string", "description": "URL to Autogenerate QR Code on back of postcard. If not specified, account default QR code URL will be used.", "example": "https://www.google.com" }, "size": { "type": "string", "description": "Size of the postcard.", "default": "4x6", "enum": ["4x6", "6x9", "6x11"] } } } ] }, "examples": { "4x6 w/ Image URL/Recipients": { "summary": "4x6 Postcard with Custom Image and Recipients", "description": "Example of sending a 4x6 postcard using a custom front image URL, handwritten message, and an array of recipients with custom fields.", "value": { "size": "4x6", "front_image_url": "https://s3.amazonaws.com/cdn.thanks.io/user_image_library/gFBaJJJWRp60op3ZOoK7UaO5I7zi33rdKQGgHylR.png", "message": "Hey %FIRST_NAME%!,\n\nTHANK YOU for allowing us the opportunity to HELP you with your plan!", "handwriting_style": 4, "recipients": [ { "name": "Current Resident", "address": "123 Main Street", "city": "Fake City", "province": "NY", "postal_code": "55555", "country": "US", "custom1": "Example Custom 1", "custom2": "Example Custom 2", "custom3": "Example Custom 3", "custom4": "Example Custom 4" }, { "name": "Jane Doe", "address": "456 Another St", "city": "Fake City", "province": "NY", "postal_code": "55555", "country": "US" } ] } }, "6x9 w/ Templates/QR Code/Custom Return ": { "summary": "6x9 Postcard with Templates and QR Code", "description": "Example of sending a 6x9 postcard using predefined image and message templates, targeting specific mailing lists, and including a QR code for recipient engagement.", "value": { "size": "6x9", "return_name": "Your Company Name", "return_address": "123 Return St", "return_city": "Return City", "return_state": "RC", "return_postal_code": "12345", "image_template": 6, "message_template": 12, "qrcode_url": "https://www.google.com", "mailing_lists": [5166, 514] } }, "6x9 w/ Custom Background/Standard": { "summary": "6x9 Postcard with Custom Background and Standard Mail", "description": "Example of sending a 6x9 postcard with a custom background image, specific handwriting style, and using standard mail delivery (lower cost option).", "value": { "size": "6x9", "image_template": 8, "use_custom_background": true, "custom_background_image": "https://s3.amazonaws.com/content-staging.thanks.io/templates/branding-builder-images/c09d39aadfc-3701d4467b8/449d24b0-78cb-11f0-a351-bfecbf71caa6.png", "handwriting_style": 3, "send_standard_mail": true, "mailing_lists": [5166, 514] } }, "6x11 w/ Radius Search": { "summary": "6x11 Postcard with Radius Search Targeting", "description": "Example of sending a large 6x11 postcard using radius search to automatically find and target recipients within a specific geographic area, with custom message and image URL.", "value": { "size": "6x11", "front_image_url": "https://s3.amazonaws.com/cdn.thanks.io/user_image_library/gFBaJJJWRp60op3ZOoK7UaO5I7zi33rdKQGgHylR.png", "message": "Hey %FIRST_NAME%!,\n\nTHANK YOU for allowing us the opportunity to HELP you with your plan!", "radius_search": { "address": "123 Main Street, Fake City, NY, 55555", "record_types": "likelytomove", "record_count": 10, "include_condos": false, "append_data": true } } }, "4x6 Preview": { "summary": "Preview 4x6 Postcard Before Sending", "description": "Example of generating a preview of a 4x6 postcard before actually sending it. Use the preview parameter to see how your postcard will look without placing an actual order.", "value": { "size": "4x6", "front_image_url": "https://s3.amazonaws.com/cdn.thanks.io/user_image_library/gFBaJJJWRp60op3ZOoK7UaO5I7zi33rdKQGgHylR.png", "message": "Hey %FIRST_NAME%!,\n\nTHANK YOU for allowing us the opportunity to HELP you with your plan!", "handwriting_style": 4, "preview": true, "recipients": [ { "name": "Current Resident", "address": "123 Main Street", "city": "Fake City", "province": "NY", "postal_code": "55555", "country": "US", "custom1": "Example Custom 1", "custom2": "Example Custom 2", "custom3": "Example Custom 3", "custom4": "Example Custom 4" }, { "name": "Jane Doe", "address": "456 Another St", "city": "Fake City", "province": "NY", "postal_code": "55555", "country": "US" } ] } } } } } }, "responses": { "200": { "description": "Send Mailer Success", "content": { "application/json": { "schema": { "oneOf": [ { "$ref": "#/components/schemas/send-mailer-order-response" }, { "$ref": "#/components/schemas/send-mailer-preview-response" } ] }, "examples": { "Order Submitted Response": { "summary": "Order Submitted Response Example", "value": { "total_estimated_recipients": 2, "authorization_total": 116, "leads_fee": 0, "mailing_list_ids_used": "3046,3020", "handwriting_color": "rgba(31,0,113,0.80)", "front_image": "https://s3.amazonaws.com/cdn.thanks.io/user_image_library/1533645532.png", "message": "Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.", "append_or_current_resident": true, "type": "postcard", "return_name": null, "return_address": null, "return_address2": null, "return_city": null, "return_province": null, "return_postal_code": null, "message_template_id": null, "image_template_id": 6, "method": "api", "sub_account_id": null, "font_size": "auto", "qrcode_url": "https://www.google.com?name=~FULL_NAME~&custom_field_1=~CUSTOM1~&custom_field2=~CUSTOM2~", "size": "4x6", "custom_background_url": "https://s3.amazonaws.com/content-staging.thanks.io/templates/branding-builder-images/c09d39aadfc-3701d4467b8/4524cce0-78cb-11f0-b937-17570cbedaf4.png", "giftcard_brand": null, "giftcard_image": null, "giftcard_amount": null, "status": "reviewing", "addons": { "standardmail": "on" }, "style": 4, "user_id": 2, "updated_at": "2025-08-14 16:48:13", "created_at": "2025-08-14 16:48:13", "id": 42665, "display_status": "Reviewing", "display_trigger": "API", "display_type": "Postcard-4x6", "handwriting_image": null, "giftcard_brand_longname": "", "sub_account": null } }, "Preview Response": { "summary": "Preview Response Example", "value": { "success": true, "code": 200, "message": "OK", "data": { "previews": [ "https://s3.amazonaws.com/cdn.thanks.io/user_image_library/1533645532.png", "https://s3.amazonaws.com/content.thanks.io/sls-handwriting-engine/images/1056d992-b7f8-bf98-5ad5-9d089cd46e62.png" ] } } } } } } }, "400": { "$ref": "#/components/responses/UserError" }, "403": { "$ref": "#/components/responses/Unauthorized" }, "500": { "$ref": "#/components/responses/UnknownError" } } } }, "/send/letter": { "post": { "tags": ["Send Mailer"], "summary": "Send Windowed Letter", "description": "Send a letter in a windowed envelope.", "requestBody": { "content": { "application/json": { "schema": { "allOf": [ { "$ref": "#/components/schemas/send-mailer-base" }, { "type": "object", "properties": { "image_template": { "type": "integer", "description": "ID of image template to use for the background of the cover letter. If no image_template & front_image_url is specified a blank background will be used.", "example": 6 }, "front_image_url": { "type": "string", "description": "URL to image to use for the background of the cover letter. If no image_template & front_image_url is specified a blank background will be used.", "example": "https://s3.amazonaws.com/cdn.thanks.io/user_image_library/gFBaJJJWRp60op3ZOoK7UaO5I7zi33rdKQGgHylR.png" }, "message": { "type": "string", "description": "Handwritten message content used for cover letter.", "example": "Hey %FIRST_NAME%!,\n\nTHANK YOU for allowing us the opportunity to HELP you with your plan!" }, "message_template": { "type": "integer", "description": "ID of message template to use for cover letter.", "example": 12 }, "qrcode_url": { "type": "string", "description": "URL to Autogenerate QR Code on cover letter.", "example": "https://www.google.com" }, "additional_pages_url": { "type": "string", "description": "URL to additional pages to include with the cover letter.", "example": "https://www.w3.org/WAI/ER/tests/xhtml/testfiles/resources/pdf/dummy.pdf" }, "pdf_only_url": { "type": "string", "description": "URL to PDF file to use for entire mailer. IF this is specified, no cover letter is generated.", "example": "https://www.w3.org/WAI/ER/tests/xhtml/testfiles/resources/pdf/dummy.pdf" } } } ] }, "examples": { "Image URL & Recipients": { "summary": "Windowed Letter with Custom Image and Recipients", "description": "Example of sending a windowed letter using a custom front image URL, handwritten message, and an array of recipients with custom fields.", "value": { "front_image_url": "https://s3.amazonaws.com/cdn.thanks.io/user_image_library/gFBaJJJWRp60op3ZOoK7UaO5I7zi33rdKQGgHylR.png", "message": "Hey %FIRST_NAME%!,\n\nTHANK YOU for allowing us the opportunity to HELP you with your plan!", "recipients": [ { "name": "Current Resident", "address": "123 Main Street", "city": "Fake City", "province": "NY", "postal_code": "55555", "country": "US", "custom1": "Example Custom 1", "custom2": "Example Custom 2", "custom3": "Example Custom 3", "custom4": "Example Custom 4" }, { "name": "Jane Doe", "address": "456 Another St", "city": "Fake City", "province": "NY", "postal_code": "55555", "country": "US" } ] } }, "PDF File Only": { "summary": "Windowed Letter with PDF File Only", "description": "Example of sending a windowed letter with a PDF file attachment, targeting specific mailing lists.", "value": { "pdf_only_url": "https://www.w3.org/WAI/ER/tests/xhtml/testfiles/resources/pdf/dummy.pdf", "mailing_lists": [5166, 514] } }, "Templates & QR Code ": { "summary": "Windowed Letter with Templates, QR Code, and Additional Pages", "description": "Example of sending a windowed letter using predefined image and message templates, targeting specific mailing lists, and including a QR code for recipient engagement.", "value": { "image_template": 6, "message_template": 12, "qrcode_url": "https://www.google.com", "mailing_lists": [5166, 514], "additional_pages_url": "https://www.w3.org/WAI/ER/tests/xhtml/testfiles/resources/pdf/dummy.pdf" } }, "Radius Search": { "summary": "Windowed Letter with Radius Search Targeting", "description": "Example of sending a windowed letter using radius search to automatically find and target recipients within a specific geographic area, with custom message and image URL.", "value": { "front_image_url": "https://s3.amazonaws.com/cdn.thanks.io/user_image_library/gFBaJJJWRp60op3ZOoK7UaO5I7zi33rdKQGgHylR.png", "message": "Hey %FIRST_NAME%!,\n\nTHANK YOU for allowing us the opportunity to HELP you with your plan!", "radius_search": { "address": "123 Main Street, Fake City, NY, 55555", "record_types": "likelytomove", "record_count": 10, "include_condos": false, "append_data": true } } }, "Preview": { "summary": "Preview Windowed Letter Before Sending", "description": "Example of generating a preview of a windowed letter before actually sending it. Use the preview parameter to see how your letter will look without placing an actual order.", "value": { "front_image_url": "https://s3.amazonaws.com/cdn.thanks.io/user_image_library/gFBaJJJWRp60op3ZOoK7UaO5I7zi33rdKQGgHylR.png", "message": "Hey %FIRST_NAME%!,\n\nTHANK YOU for allowing us the opportunity to HELP you with your plan!", "handwriting_style": 4, "preview": true, "recipients": [ { "name": "Current Resident", "address": "123 Main Street", "city": "Fake City", "province": "NY", "postal_code": "55555", "country": "US", "custom1": "Example Custom 1", "custom2": "Example Custom 2", "custom3": "Example Custom 3", "custom4": "Example Custom 4" }, { "name": "Jane Doe", "address": "456 Another St", "city": "Fake City", "province": "NY", "postal_code": "55555", "country": "US" } ] } } } } } }, "responses": { "200": { "description": "Send Mailer Success", "content": { "application/json": { "schema": { "oneOf": [ { "$ref": "#/components/schemas/send-mailer-order-response" }, { "$ref": "#/components/schemas/send-mailer-preview-response" } ] }, "examples": { "Order Submitted Response": { "summary": "Order Submitted Response Example", "value": { "total_estimated_recipients": 1, "authorization_total": 60, "leads_fee": 0, "mailing_list_ids_used": "", "additional_letter_pages_count": 0, "handwriting_color": "rgba(31,0,113,0.80)", "front_image": "https://s3.amazonaws.com/cdn.thanks.io/user_image_library/gFBaJJJWRp60op3ZOoK7UaO5I7zi33rdKQGgHylR.png", "message": "Test Message", "append_or_current_resident": true, "type": "letter", "return_name": "Custom Return", "return_address": "1 Main Street", "return_address2": "Unit 1", "return_city": "Woodbridge", "return_province": "NJ", "return_postal_code": "07095", "message_template_id": null, "image_template_id": null, "method": "api", "sub_account_id": null, "font_size": "auto", "qrcode_url": null, "custom_background_url": null, "giftcard_brand": null, "giftcard_image": null, "giftcard_amount": null, "status": "reviewing", "addons": { "standardmail": "on" }, "style": 5, "user_id": 2, "updated_at": "2025-08-15 03:22:20", "created_at": "2025-08-15 03:22:19", "id": 42670, "display_status": "Reviewing", "display_trigger": "API", "display_type": "Windowed Letter", "giftcard_brand_longname": "", "sub_account": null, "recipients": [ { "name": "Current Resident", "address": "1 Main Street", "city": "Anytown", "province": "NY", "postal_code": "55555", "country": "US", "address2": "" } ] } }, "Preview Response": { "summary": "Preview Response Example", "value": { "success": true, "code": 200, "message": "OK", "data": { "previews": [ "https://s3.amazonaws.com/content.thanks.io/sls-handwriting-engine/images/ae538eb8-1d62-45db-8b9f-2c9b08f8e5b3.png" ] } } } } } } }, "400": { "$ref": "#/components/responses/UserError" }, "403": { "$ref": "#/components/responses/Unauthorized" }, "500": { "$ref": "#/components/responses/UnknownError" } } } }, "/send/windowlessletter": { "post": { "tags": ["Send Mailer"], "summary": "Send Windowless Letter", "description": "Send a letter in a windowless envelope.", "requestBody": { "content": { "application/json": { "schema": { "allOf": [ { "$ref": "#/components/schemas/send-mailer-base" }, { "type": "object", "properties": { "image_template": { "type": "integer", "description": "ID of image template to use for the background of the cover letter. If no image_template & front_image_url is specified a blank background will be used.", "example": 6 }, "front_image_url": { "type": "string", "description": "URL to image to use for the background of the cover letter. If no image_template & front_image_url is specified a blank background will be used.", "example": "https://s3.amazonaws.com/cdn.thanks.io/user_image_library/gFBaJJJWRp60op3ZOoK7UaO5I7zi33rdKQGgHylR.png" }, "message": { "type": "string", "description": "Handwritten message content used for cover letter.", "example": "Hey %FIRST_NAME%!,\n\nTHANK YOU for allowing us the opportunity to HELP you with your plan!" }, "message_template": { "type": "integer", "description": "ID of message template to use for cover letter.", "example": 12 }, "qrcode_url": { "type": "string", "description": "URL to Autogenerate QR Code on cover letter.", "example": "https://www.google.com" }, "additional_pages_url": { "type": "string", "description": "URL to additional pages to include with the cover letter.", "example": "https://www.w3.org/WAI/ER/tests/xhtml/testfiles/resources/pdf/dummy.pdf" }, "pdf_only_url": { "type": "string", "description": "URL to PDF file to use for entire mailer. IF this is specified, no cover letter is generated.", "example": "https://www.w3.org/WAI/ER/tests/xhtml/testfiles/resources/pdf/dummy.pdf" } } } ] }, "examples": { "Image URL & Recipients": { "summary": "Windowless Letter with Custom Image and Recipients", "description": "Example of sending a windowless letter using a custom front image URL, handwritten message, and an array of recipients with custom fields.", "value": { "front_image_url": "https://s3.amazonaws.com/cdn.thanks.io/user_image_library/gFBaJJJWRp60op3ZOoK7UaO5I7zi33rdKQGgHylR.png", "message": "Hey %FIRST_NAME%!,\n\nTHANK YOU for allowing us the opportunity to HELP you with your plan!", "handwriting_style": 4, "recipients": [ { "name": "Current Resident", "address": "123 Main Street", "city": "Fake City", "province": "NY", "postal_code": "55555", "country": "US", "custom1": "Example Custom 1", "custom2": "Example Custom 2", "custom3": "Example Custom 3", "custom4": "Example Custom 4" }, { "name": "Jane Doe", "address": "456 Another St", "city": "Fake City", "province": "NY", "postal_code": "55555", "country": "US" } ] } }, "PDF File Only": { "summary": "Windowless Letter with PDF File Only", "description": "Example of sending a windowless letter with a PDF file attachment, targeting specific mailing lists.", "value": { "pdf_only_url": "https://www.w3.org/WAI/ER/tests/xhtml/testfiles/resources/pdf/dummy.pdf", "mailing_lists": [5166, 514] } }, "Templates & QR Code ": { "summary": "Windowless Letter with Templates, QR Code, and Additional PPages", "description": "Example of sending a windowless letter using predefined image and message templates, targeting specific mailing lists, and including a QR code for recipient engagement.", "value": { "image_template": 6, "message_template": 12, "qrcode_url": "https://www.google.com", "mailing_lists": [5166, 514], "additional_pages_url": "https://www.w3.org/WAI/ER/tests/xhtml/testfiles/resources/pdf/dummy.pdf" } }, "Radius Search": { "summary": "Windowless Letter with Radius Search Targeting", "description": "Example of sending a windowless letter using radius search to automatically find and target recipients within a specific geographic area, with custom message and image URL.", "value": { "front_image_url": "https://s3.amazonaws.com/cdn.thanks.io/user_image_library/gFBaJJJWRp60op3ZOoK7UaO5I7zi33rdKQGgHylR.png", "message": "Hey %FIRST_NAME%!,\n\nTHANK YOU for allowing us the opportunity to HELP you with your plan!", "radius_search": { "address": "123 Main Street, Fake City, NY, 55555", "record_types": "likelytomove", "record_count": 10, "include_condos": false, "append_data": true } } }, "Preview": { "summary": "Preview windowless Letter Before Sending", "description": "Example of generating a preview of a windowless letter before actually sending it. Use the preview parameter to see how your letter will look without placing an actual order.", "value": { "front_image_url": "https://s3.amazonaws.com/cdn.thanks.io/user_image_library/gFBaJJJWRp60op3ZOoK7UaO5I7zi33rdKQGgHylR.png", "message": "Hey %FIRST_NAME%!,\n\nTHANK YOU for allowing us the opportunity to HELP you with your plan!", "handwriting_style": 4, "preview": true, "recipients": [ { "name": "Current Resident", "address": "123 Main Street", "city": "Fake City", "province": "NY", "postal_code": "55555", "country": "US", "custom1": "Example Custom 1", "custom2": "Example Custom 2", "custom3": "Example Custom 3", "custom4": "Example Custom 4" }, { "name": "Jane Doe", "address": "456 Another St", "city": "Fake City", "province": "NY", "postal_code": "55555", "country": "US" } ] } } } } } }, "responses": { "200": { "description": "Send Mailer Success", "content": { "application/json": { "schema": { "oneOf": [ { "$ref": "#/components/schemas/send-mailer-order-response" }, { "$ref": "#/components/schemas/send-mailer-preview-response" } ] }, "examples": { "Order Submitted Response": { "summary": "Order Submitted Response Example", "value": { "total_estimated_recipients": 1, "authorization_total": 112, "leads_fee": 0, "mailing_list_ids_used": "", "additional_letter_pages_count": 0, "handwriting_color": "rgba(31,0,113,0.80)", "front_image": "https://s3.amazonaws.com/cdn.thanks.io/user_image_library/gFBaJJJWRp60op3ZOoK7UaO5I7zi33rdKQGgHylR.png", "message": "\n\n\n\n\n\n\n\nWhat is Lorem Ipsum? Lorem Ipsum is simply dummy text of the printing and typesetting industry. Lorem Ipsum has been the industry's standard dummy text ever since the 1500s, when an unknown printer took a galley of type and scrambled it to make a type specimen book. It has survived not only five centuries, but also the leap into electronic typesetting, remaining essentially unchanged. It was popularised in the 1960s with the release of Letraset sheets containing Lorem Ipsum passages, and more recently with desktop publishing software like Aldus PageMaker including versions of Lorem Ipsum. Why do we use it? It is a long established fact that a reader will be distracted by the readable content of a page when looking at its layout. The point of using Lorem Ipsum is that it has a more-or-less normal distribution of letters, as opposed to using 'Content here, content here', making it look like readable English. Many desktop publishing packages and web page editors now use Lorem Ipsum as their default model text, and a search for 'lorem ipsum' will uncover many web sites still in their infancy. Various versions have evolved over the years, sometimes by accident, sometimes on purpose (injected humour and the like).", "append_or_current_resident": true, "type": "windowlessletter", "return_name": "Custom Return", "return_address": "1 Main Street", "return_address2": "Unit 1", "return_city": "Woodbridge", "return_province": "NJ", "return_postal_code": "07095", "message_template_id": null, "image_template_id": null, "method": "api", "sub_account_id": null, "font_size": "auto", "qrcode_url": null, "custom_background_url": null, "giftcard_brand": null, "giftcard_image": null, "giftcard_amount": null, "status": "reviewing", "addons": { "standardmail": "on" }, "style": 5, "user_id": 2, "updated_at": "2025-08-15 03:50:51", "created_at": "2025-08-15 03:50:51", "id": 42676, "display_status": "Reviewing", "display_trigger": "API", "display_type": "Windowless Letter", "giftcard_brand_longname": "", "sub_account": null, "recipients": [ { "name": "Current Resident", "address": "1 Main Street", "city": "Anytown", "province": "NY", "postal_code": "55555", "country": "US", "address2": "" } ] } }, "Preview Response": { "summary": "Preview Response Example", "value": { "success": true, "code": 200, "message": "OK", "data": { "previews": [ "https://s3.amazonaws.com/content.thanks.io/sls-handwriting-engine/images/9f0bddc8-7dd1-7b1c-8d7e-d9f20084ec5d.png" ] } } } } } } }, "400": { "$ref": "#/components/responses/UserError" }, "403": { "$ref": "#/components/responses/Unauthorized" }, "500": { "$ref": "#/components/responses/UnknownError" } } } }, "/send/notecard": { "post": { "tags": ["Send Mailer"], "summary": "Send Notecard", "description": "Send a folded 4.25x5.5 notecard in envelope.", "requestBody": { "content": { "application/json": { "schema": { "allOf": [ { "$ref": "#/components/schemas/send-mailer-base" }, { "type": "object", "properties": { "image_template": { "type": "integer", "description": "ID of image template to use for the exterior of the notecard. Required if not front_image_url is specified.", "example": 6 }, "front_image_url": { "type": "string", "description": "URL to image to use for the exterior of the notecard. Required if not image_template is specified.", "example": "https://d2md0c8rpvzmz5.cloudfront.net/notecard-inspirations/note1.png" }, "message": { "type": "string", "description": "Handwritten message content to use for interior of notecard.", "example": "Hey %FIRST_NAME%!,\n\nTHANK YOU for allowing us the opportunity to HELP you with your plan!" }, "message_template": { "type": "integer", "description": "ID of message template to use for interior of notecard.", "example": 12 }, "use_custom_background": { "type": "boolean", "description": "Use custom interior background image. This can be used to turn off the default background image.", "default": false }, "custom_background_image": { "type": "string", "description": "URL to custom background image to use for interior of notecard. This image will be placed behind the handwritten message. Must be 1650px by 2475px.", "example": "https://s3.amazonaws.com/content-staging.thanks.io/templates/branding-builder-images/c09d39aadfc-3701d4467b8/44e9a510-78cb-11f0-a77d-dd13e72edce5.png" }, "qrcode_url": { "type": "string", "description": "URL to Autogenerate QR Code in interior of notecard.", "example": "https://www.google.com" } } } ] }, "examples": { "Image URL & Recipients": { "summary": "Notecard with Custom Image and Recipients", "description": "Example of sending a notecard using a custom front image URL, handwritten message, and an array of recipients with custom fields.", "value": { "front_image_url": "https://d2md0c8rpvzmz5.cloudfront.net/notecard-inspirations/note1.png", "message": "Hey %FIRST_NAME%!,\n\nTHANK YOU for allowing us the opportunity to HELP you with your plan!", "handwriting_style": 4, "recipients": [ { "name": "Current Resident", "address": "123 Main Street", "city": "Fake City", "province": "NY", "postal_code": "55555", "country": "US", "custom1": "Example Custom 1", "custom2": "Example Custom 2", "custom3": "Example Custom 3", "custom4": "Example Custom 4" }, { "name": "Jane Doe", "address": "456 Another St", "city": "Fake City", "province": "NY", "postal_code": "55555", "country": "US" } ] } }, "Templates & QR Code & Custom Return Address": { "summary": "Notecard with Templates, QR Code, and Custom Return Address", "description": "Example of sending a notecard using predefined image and message templates, targeting specific mailing lists, including a QR code for recipient engagement, and specifying a custom return address.", "value": { "image_template": 6, "message_template": 12, "qrcode_url": "https://www.google.com", "mailing_lists": [5166, 514], "return_name": "Your Company Name", "return_address": "123 Return St", "return_city": "Return City", "return_state": "RC", "return_postal_code": "12345" } }, "Radius Search": { "summary": "Notecard with Radius Search Targeting and Standard Shipping", "description": "Example of sending a notecard using radius search to automatically find and target recipients within a specific geographic area, with custom message and image URL.", "value": { "front_image_url": "https://d2md0c8rpvzmz5.cloudfront.net/notecard-inspirations/note1.png", "message": "Hey %FIRST_NAME%!,\n\nTHANK YOU for allowing us the opportunity to HELP you with your plan!", "send_standard_mail": "true", "radius_search": { "address": "123 Main Street, Fake City, NY, 55555", "record_types": "likelytomove", "record_count": 10, "include_condos": false, "append_data": true } } }, "Preview": { "summary": "Preview notecard Letter Before Sending", "description": "Example of generating a preview of a notecard before actually sending it. Use the preview parameter to see how your letter will look without placing an actual order.", "value": { "front_image_url": "https://d2md0c8rpvzmz5.cloudfront.net/notecard-inspirations/note1.png", "message": "Hey %FIRST_NAME%!,\n\nTHANK YOU for allowing us the opportunity to HELP you with your plan!", "handwriting_style": 4, "preview": true, "recipients": [ { "name": "Current Resident", "address": "123 Main Street", "city": "Fake City", "province": "NY", "postal_code": "55555", "country": "US", "custom1": "Example Custom 1", "custom2": "Example Custom 2", "custom3": "Example Custom 3", "custom4": "Example Custom 4" }, { "name": "Jane Doe", "address": "456 Another St", "city": "Fake City", "province": "NY", "postal_code": "55555", "country": "US" } ] } } } } } }, "responses": { "200": { "description": "Send Mailer Success", "content": { "application/json": { "schema": { "oneOf": [ { "$ref": "#/components/schemas/send-mailer-order-response" }, { "$ref": "#/components/schemas/send-mailer-preview-response" } ] }, "examples": { "Order Submitted Response": { "summary": "Order Submitted Response Example", "value": { "total_estimated_recipients": 1, "authorization_total": 200, "leads_fee": 0, "mailing_list_ids_used": "", "handwriting_color": "rgba(31,0,113,0.80)", "front_image": "https://s3.amazonaws.com/cdn.thanks.io/user_image_library/1533645532.png", "message": "Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident.", "append_or_current_resident": true, "type": "notecard", "return_name": null, "return_address": null, "return_address2": null, "return_city": null, "return_province": null, "return_postal_code": null, "message_template_id": null, "image_template_id": 6, "method": "api", "sub_account_id": null, "font_size": "auto", "qrcode_url": null, "custom_background_url": "https://s3.amazonaws.com/content-staging.thanks.io/templates/branding-builder-images/c09d39aadfc-3701d4467b8/44e9a510-78cb-11f0-a77d-dd13e72edce5.png", "giftcard_brand": null, "giftcard_image": null, "giftcard_amount": null, "status": "reviewing", "style": 4, "user_id": 2, "updated_at": "2025-08-15 04:24:50", "created_at": "2025-08-15 04:24:50", "id": 42680, "display_status": "Reviewing", "display_trigger": "API", "display_type": "Notecard", "giftcard_brand_longname": "", "sub_account": null, "recipients": [ { "name": "Current Resident", "address": "1 Main Street", "city": "Anytown", "province": "NY", "postal_code": "55555", "country": "US", "address2": "" } ] } }, "Preview Response": { "summary": "Preview Response Example", "value": { "success": true, "code": 200, "message": "OK", "data": { "previews": [ "https://s3.amazonaws.com/cdn.thanks.io/user_image_library/1533645532.png", "https://s3.amazonaws.com/content.thanks.io/sls-handwriting-engine/images/64caa2fb-a7bb-2226-da66-0440446fad30.png" ] } } } } } } }, "400": { "$ref": "#/components/responses/UserError" }, "403": { "$ref": "#/components/responses/Unauthorized" }, "500": { "$ref": "#/components/responses/UnknownError" } } } }, "/send/giftcard": { "post": { "tags": ["Send Mailer"], "summary": "Send Giftcard", "description": "Send a folded 4.25x5.5 giftcard in envelope.", "requestBody": { "content": { "application/json": { "schema": { "allOf": [ { "$ref": "#/components/schemas/send-mailer-base" }, { "type": "object", "properties": { "image_template": { "type": "integer", "description": "ID of image template to use for the exterior of the giftcard. Required if not front_image_url is specified.", "example": 6 }, "front_image_url": { "type": "string", "description": "URL to image to use for the exterior of the giftcard. Required if not image_template is specified.", "example": "https://d2md0c8rpvzmz5.cloudfront.net/notecard-inspirations/note1.png" }, "message": { "type": "string", "description": "Handwritten message content to use for interior of giftcard.", "example": "Hey %FIRST_NAME%!,\n\nTHANK YOU for allowing us the opportunity to HELP you with your plan!" }, "message_template": { "type": "integer", "description": "ID of message template to use for interior of giftcard.", "example": 12 }, "giftcard_brand": { "type": "string", "description": "Brand of giftcard to use. Must be one of the supported brands. The `/giftcard-brands` endpoint can be used to retrieve a list of supported brands.", "example": "amazonus" }, "giftcard_amount_in_cents": { "type": "integer", "description": "Amount of giftcard in cents. The `/giftcard-brands` endpoint can be used to retrieve a list of supported amounts by brand.", "example": 10000 } } } ] }, "examples": { "Image URL & Recipients": { "summary": "Giftcard with Custom Image and Recipients", "description": "Example of sending a giftcard using a custom front image URL, handwritten message, and an array of recipients with custom fields.", "value": { "front_image_url": "https://d2md0c8rpvzmz5.cloudfront.net/notecard-inspirations/note1.png", "message": "Hey %FIRST_NAME%!,\n\nTHANK YOU for allowing us the opportunity to HELP you with your plan!", "handwriting_style": 4, "giftcard_brand": "amazonus", "giftcard_amount_in_cents": 10000, "recipients": [ { "name": "Current Resident", "address": "123 Main Street", "city": "Fake City", "province": "NY", "postal_code": "55555", "country": "US", "custom1": "Example Custom 1", "custom2": "Example Custom 2", "custom3": "Example Custom 3", "custom4": "Example Custom 4" }, { "name": "Jane Doe", "address": "456 Another St", "city": "Fake City", "province": "NY", "postal_code": "55555", "country": "US" } ] } }, "Templates": { "summary": "Giftcard with Templates", "description": "Example of sending a giftcard using predefined image and message templates & targeting specific mailing lists.", "value": { "image_template": 6, "message_template": 12, "mailing_lists": [5166, 514], "giftcard_brand": "amazonus", "giftcard_amount_in_cents": 10000 } }, "Radius Search": { "summary": "Giftcard with Radius Search Targeting and Standard Shipping", "description": "Example of sending a giftcard using radius search to automatically find and target recipients within a specific geographic area, with custom message and image URL.", "value": { "front_image_url": "https://d2md0c8rpvzmz5.cloudfront.net/notecard-inspirations/note1.png", "message": "Hey %FIRST_NAME%!,\n\nTHANK YOU for allowing us the opportunity to HELP you with your plan!", "send_standard_mail": "true", "giftcard_brand": "amazonus", "giftcard_amount_in_cents": 10000, "radius_search": { "address": "123 Main Street, Fake City, NY, 55555", "record_types": "likelytomove", "record_count": 10, "include_condos": false, "append_data": true } } }, "Preview": { "summary": "Preview Giftcard Before Sending", "description": "Example of generating a preview of a giftcard before actually sending it. Use the preview parameter to see how your letter will look without placing an actual order.", "value": { "front_image_url": "https://d2md0c8rpvzmz5.cloudfront.net/notecard-inspirations/note1.png", "message": "Hey %FIRST_NAME%!,\n\nTHANK YOU for allowing us the opportunity to HELP you with your plan!", "handwriting_style": 4, "preview": true, "giftcard_brand": "amazonus", "giftcard_amount_in_cents": 10000, "recipients": [ { "name": "Current Resident", "address": "123 Main Street", "city": "Fake City", "province": "NY", "postal_code": "55555", "country": "US", "custom1": "Example Custom 1", "custom2": "Example Custom 2", "custom3": "Example Custom 3", "custom4": "Example Custom 4" }, { "name": "Jane Doe", "address": "456 Another St", "city": "Fake City", "province": "NY", "postal_code": "55555", "country": "US" } ] } } } } } }, "responses": { "200": { "description": "Send Mailer Success", "content": { "application/json": { "schema": { "oneOf": [ { "$ref": "#/components/schemas/send-mailer-order-response" }, { "$ref": "#/components/schemas/send-mailer-preview-response" } ] }, "examples": { "Order Submitted Response": { "summary": "Order Submitted Response Example", "value": { "total_estimated_recipients": 1, "authorization_total": 179, "leads_fee": 0, "mailing_list_ids_used": "", "handwriting_color": "#000001", "front_image": "https://s3.amazonaws.com/cdn.thanks.io/user_image_library/1533645532.png", "message": "Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.", "append_or_current_resident": true, "type": "giftcard", "return_name": null, "return_address": null, "return_address2": null, "return_city": null, "return_province": null, "return_postal_code": null, "message_template_id": null, "image_template_id": 6, "method": "api", "sub_account_id": null, "font_size": "auto", "qrcode_url": null, "custom_background_url": null, "giftcard_brand": "amazonus", "giftcard_image": "https://d2md0c8rpvzmz5.cloudfront.net/giftcards/amazonus.png", "giftcard_amount": 10000, "status": "reviewing", "addons": { "standardmail": "on" }, "style": 4, "user_id": 2, "updated_at": "2025-09-02 18:25:44", "created_at": "2025-09-02 18:25:44", "id": 42696, "display_status": "Reviewing", "display_trigger": "API", "display_type": "Giftcard", "giftcard_brand_longname": "Amazon.com", "sub_account": null, "recipients": [ { "name": "Current Resident", "address": "1 Main Street", "city": "Anytown", "province": "NY", "postal_code": "55555", "country": "US", "address2": "" } ] } }, "Preview Response": { "summary": "Preview Response Example", "value": { "success": true, "code": 200, "message": "OK", "data": { "previews": [ "https://s3.amazonaws.com/cdn.thanks.io/user_image_library/1533645532.png", "https://s3.amazonaws.com/content.thanks.io/sls-handwriting-engine/images/de84e2b3-f3a7-9d35-edc8-4e8da81dbdc0.png" ] } } } } } } }, "400": { "$ref": "#/components/responses/UserError" }, "403": { "$ref": "#/components/responses/Unauthorized" }, "500": { "$ref": "#/components/responses/UnknownError" } } } }, "/build/image-template": { "get": { "tags": ["Dynamic Images"], "x-hidden": true, "summary": "Create", "description": "Build image for the front of your postcard or notecard. Includes ability to set dynmiac fields and QR code. This does not create an order, it simply builds the image and returns a URL to the image. You can then use this image URL in your order creation request.\n\n ## Dynamic Data Tags\n\nUse these tags in your header, sub-header, background image URL, and QR Code/Redirect URL to have recipient data automatically added further personalizing each postcard.\n- `~FULL_NAME~`\n- `~FIRST_NAME~`\n- `~COMPANY~`\n- `~ADDRESS~`\n- `~ADDRESS2~`\n- `~CITY~`\n- `~STATE~`\n- `~ZIP~`\n- `~EMAIL~`\n- `~PHONE~`\n- `~CUSTOM1~`\n- `~CUSTOM2~`\n- `~CUSTOM3~`\n- `~CUSTOM4~`\n- `~YOUR_FULL_NAME~`\n- `~YOUR_FIRST_NAME~`\n- `~YOUR_COMPANY~`\n- `~YOUR_EMAIL~`\n- `~YOUR_PHONE~`", "parameters": [ { "name": "id", "in": "query", "schema": { "type": "integer", "minimum": 1, "maximum": 18, "example": "8" }, "required": true, "description": "Template ID to use" }, { "name": "background_url", "in": "query", "schema": { "type": "string", "example": "~STREET_VIEW~" }, "description": "Background Image URL sits behind the generated dynamic image. Can be one of the following\n- `~MAP_VIEW~` for Google Map View. \n- `~STREET_VIEW~` for Google Street View.\n- Valid HTTP png or jpg URL " }, { "name": "header", "in": "query", "schema": { "type": "string", "example": "Want to Know ~ADDRESS~'s Value?" }, "description": "Header Text - Taggable" }, { "name": "subheader", "in": "query", "schema": { "type": "string", "example": "Scan the QR code to get an immediate value for ~ADDRESS~." }, "description": "Sub-header Text - Taggable" }, { "name": "redirect_url", "in": "query", "schema": { "type": "string", "example": "https://www.thanks.io" }, "description": "Location to redirect recipeint to on QR Code Scan. Can be one of the following\n- `~MESSAGE_QR~` for Message Template QR Code\n- Valid http URL" }, { "name": "logo_url", "in": "query", "schema": { "type": "string", "example": "https://d2md0c8rpvzmz5.cloudfront.net/assets/brand/logo%402x.png" }, "description": "Image Logo to use. Can be one of the following\n- `~YOUR_LOGO~` for your branding logo\n- `~YOUR_SYMBOL~`for your branding symbol\n- Valid HTTP png or jpg URL" }, { "name": "overlay_url", "in": "query", "schema": { "type": "string", "example": "https://s3.amazonaws.com/content.thanks.io/templates/dynamic-images/b96a8260-34ce-11f0-b5f2-81d9e83ce1aa.png" }, "description": "Overlay Image URL sits in front of the generated dynamic image. Must be 1875x1275 png or jpg." } ], "responses": { "200": { "description": "Successful Response", "content": { "image/png": { "schema": { "type": "string", "format": "binary" } } } } } } }, "/handwriting-styles": { "get": { "tags": ["Handwriting Styles"], "operationId": "listHandwritingStyles", "summary": "List Styles", "description": "List All Available Handwriting Styles", "security": [ { "noauthAuth": [] } ], "responses": { "200": { "description": "200 Response", "headers": { "Content-Type": { "schema": { "type": "string", "example": "application/json" } } }, "content": { "application/json": { "schema": { "type": "object", "properties": { "data": { "type": "array", "items": { "type": "object", "properties": { "handwriting_style_id": { "type": "integer", "description": "Unique ID of the handwriting style", "example": 1 }, "name": { "type": "string", "description": "Name of the handwriting style", "example": "Hi Clarice" }, "sample": { "type": "string", "description": "Sample image URL of the handwriting style", "example": "ttps://d2md0c8rpvzmz5.cloudfront.net/handwriting_examples/1.png" }, "type": { "type": "string", "description": "Type of handwriting style", "example": "Realistic", "enum": ["Realistic", "AI"] } } } } } }, "example": { "data": [ { "handwriting_style_id": 1, "sample": "https://d2md0c8rpvzmz5.cloudfront.net/handwriting_examples/1.png", "name": "Hi Clarice", "type": "Realistic" }, { "handwriting_style_id": 2, "sample": "https://d2md0c8rpvzmz5.cloudfront.net/handwriting_examples/2.png", "name": "Practiced Sharpie", "type": "Bold" }, { "handwriting_style_id": 3, "sample": "https://d2md0c8rpvzmz5.cloudfront.net/handwriting_examples/3.png", "name": "Bold Note", "type": "Bold" }, { "handwriting_style_id": 4, "sample": "https://d2md0c8rpvzmz5.cloudfront.net/handwriting_examples/4.png", "name": "Foxy Lady", "type": "Realistic" }, { "handwriting_style_id": 5, "sample": "https://d2md0c8rpvzmz5.cloudfront.net/handwriting_examples/5.png", "name": "That Dude", "type": "Bold" }, { "handwriting_style_id": 6, "sample": "https://d2md0c8rpvzmz5.cloudfront.net/handwriting_examples/6.png", "name": "Normal Print", "type": "Bold" }, { "handwriting_style_id": 7, "sample": "https://d2md0c8rpvzmz5.cloudfront.net/handwriting_examples/7.png", "name": "Shopping List", "type": "Realistic" }, { "handwriting_style_id": 8, "sample": "https://d2md0c8rpvzmz5.cloudfront.net/handwriting_examples/8.png", "name": "Lazy Note", "type": "Realistic" }, { "handwriting_style_id": 9, "sample": "https://d2md0c8rpvzmz5.cloudfront.net/handwriting_examples/9.png", "name": "Blurred Lines", "type": "Realistic" }, { "handwriting_style_id": 10, "sample": "https://d2md0c8rpvzmz5.cloudfront.net/handwriting_examples/10.png", "name": "Birthday Card", "type": "Realistic" }, { "handwriting_style_id": 11, "sample": "https://d2md0c8rpvzmz5.cloudfront.net/handwriting_examples/11.png", "name": "Scully, Not Molder", "type": "Realistic" }, { "handwriting_style_id": 12, "sample": "https://d2md0c8rpvzmz5.cloudfront.net/handwriting_examples/12.png", "name": "Wow! Signal", "type": "Realistic" }, { "handwriting_style_id": 13, "sample": "https://d2md0c8rpvzmz5.cloudfront.net/handwriting_examples/13.png", "name": "Arabic", "type": "International" }, { "handwriting_style_id": 14, "sample": "https://d2md0c8rpvzmz5.cloudfront.net/handwriting_examples/14.png", "name": "Chinese", "type": "International" }, { "handwriting_style_id": 15, "sample": "https://d2md0c8rpvzmz5.cloudfront.net/handwriting_examples/15.png", "name": "Cyrillic", "type": "International" }, { "handwriting_style_id": 16, "sample": "https://d2md0c8rpvzmz5.cloudfront.net/handwriting_examples/16.png", "name": "Hebrew", "type": "International" }, { "handwriting_style_id": 17, "sample": "https://d2md0c8rpvzmz5.cloudfront.net/handwriting_examples/17.png", "name": "Japanese", "type": "International" }, { "handwriting_style_id": 18, "sample": "https://d2md0c8rpvzmz5.cloudfront.net/handwriting_examples/18.png", "name": "Korean", "type": "International" }, { "handwriting_style_id": 19, "sample": "https://d2md0c8rpvzmz5.cloudfront.net/handwriting_examples/19.png", "name": "Vietnamese", "type": "International" }, { "handwriting_style_id": 20, "sample": "https://d2md0c8rpvzmz5.cloudfront.net/handwriting_examples/20.png", "name": "Notey", "type": "Realistic" }, { "handwriting_style_id": 101, "sample": "https://d2md0c8rpvzmz5.cloudfront.net/handwriting_examples/101.png", "name": "Optimus Prime", "type": "AI" }, { "handwriting_style_id": 102, "sample": "https://d2md0c8rpvzmz5.cloudfront.net/handwriting_examples/102.png", "name": "Binary Bard", "type": "AI" }, { "handwriting_style_id": 103, "sample": "https://d2md0c8rpvzmz5.cloudfront.net/handwriting_examples/103.png", "name": "Quantum Quip", "type": "AI" }, { "handwriting_style_id": 104, "sample": "https://d2md0c8rpvzmz5.cloudfront.net/handwriting_examples/104.png", "name": "Analytic Atom", "type": "AI" }, { "handwriting_style_id": 106, "sample": "https://d2md0c8rpvzmz5.cloudfront.net/handwriting_examples/106.png", "name": "Cerebral Circuit", "type": "AI" }, { "handwriting_style_id": 107, "sample": "https://d2md0c8rpvzmz5.cloudfront.net/handwriting_examples/107.png", "name": "Reflective Relay 2", "type": "AI" }, { "handwriting_style_id": 109, "sample": "https://d2md0c8rpvzmz5.cloudfront.net/handwriting_examples/109.png", "name": "Thoughtful Transistor", "type": "AI" }, { "handwriting_style_id": 110, "sample": "https://d2md0c8rpvzmz5.cloudfront.net/handwriting_examples/110.png", "name": "Bright Byte", "type": "AI" }, { "handwriting_style_id": 112, "sample": "https://d2md0c8rpvzmz5.cloudfront.net/handwriting_examples/112.png", "name": "Pensive Pixel", "type": "AI" }, { "handwriting_style_id": 113, "sample": "https://d2md0c8rpvzmz5.cloudfront.net/handwriting_examples/113.png", "name": "Judicious Jolt", "type": "AI" }, { "handwriting_style_id": 114, "sample": "https://d2md0c8rpvzmz5.cloudfront.net/handwriting_examples/114.png", "name": "Astute Actuator", "type": "AI" }, { "handwriting_style_id": 115, "sample": "https://d2md0c8rpvzmz5.cloudfront.net/handwriting_examples/115.png", "name": "Insightful Interface", "type": "AI" }, { "handwriting_style_id": 118, "sample": "https://d2md0c8rpvzmz5.cloudfront.net/handwriting_examples/118.png", "name": "Prudent Processor", "type": "AI" }, { "handwriting_style_id": 119, "sample": "https://d2md0c8rpvzmz5.cloudfront.net/handwriting_examples/119.png", "name": "Wise Wire", "type": "AI" }, { "handwriting_style_id": 120, "sample": "https://d2md0c8rpvzmz5.cloudfront.net/handwriting_examples/120.png", "name": "Neura Nomad", "type": "AI" }, { "handwriting_style_id": 121, "sample": "https://d2md0c8rpvzmz5.cloudfront.net/handwriting_examples/121.png", "name": "Rosario Type", "type": "AI" } ] } } } } } } }, "/giftcard-brands": { "get": { "tags": ["Giftcards"], "operationId": "listGiftcardBrands", "summary": "List Brands", "description": "List all available Giftcard brands.", "security": [ { "noauthAuth": [] } ], "responses": { "200": { "description": "200 response", "headers": { "Content-Type": { "schema": { "type": "string", "example": "application/json" } } }, "content": { "application/json": { "schema": { "type": "object", "properties": { "main": { "description": "Featured Giftcard Brands", "$ref": "#/components/schemas/giftcard-group" }, "food": { "description": "Food Related Giftcard Brands", "$ref": "#/components/schemas/giftcard-group" }, "entertainment": { "description": "Entertainment Related Giftcard Brands", "$ref": "#/components/schemas/giftcard-group" }, "gift": { "description": "Gift Related Giftcard Brands", "$ref": "#/components/schemas/giftcard-group" }, "travel": { "description": "Travel Industry Giftcard Brands", "$ref": "#/components/schemas/giftcard-group" }, "big_box": { "description": "Big Box Store Giftcard Brands", "$ref": "#/components/schemas/giftcard-group" }, "other": { "description": "Giftcard Brands that don't fit in other categories", "$ref": "#/components/schemas/giftcard-group" } } }, "example": { "main": { "title": "Featured", "brands": [ { "brand_code": "amazonus", "title": "Amazon.com", "image": "https://d2md0c8rpvzmz5.cloudfront.net/giftcards/amazonus.png", "available_amounts": [ 500, 1000, 1500, 2000, 2500, 3000, 4000, 5000, 10000, 20000 ] }, { "brand_code": "starbucksus", "title": "Starbucks", "image": "https://d2md0c8rpvzmz5.cloudfront.net/giftcards/starbucks.png", "available_amounts": [ 500, 1000, 1500, 2000, 2500, 5000, 10000 ] } ] }, "food": { "title": "Food", "brands": [ { "brand_code": "applebees", "title": "Applebees", "image": "https://d2md0c8rpvzmz5.cloudfront.net/giftcards/applebees.png", "available_amounts": [ 500, 1000, 1500, 2000, 2500, 5000, 10000, 20000 ] }, { "brand_code": "baskinrobbinsus", "title": "Baskin Robbins", "image": "https://d2md0c8rpvzmz5.cloudfront.net/giftcards/baskin.png", "available_amounts": [ 500, 1000, 1500, 2000, 2500, 5000, 10000 ] }, { "brand_code": "burgerkingus", "title": "Burger King", "image": "https://d2md0c8rpvzmz5.cloudfront.net/giftcards/burgerking.png", "available_amounts": [ 500, 1000, 1500, 2000, 2500, 5000, 10000, 20000 ] }, { "brand_code": "charthouse", "title": "Chart House", "image": "https://d2md0c8rpvzmz5.cloudfront.net/giftcards/charthouse.png", "available_amounts": [ 1000, 1500, 2000, 2500, 5000, 10000, 20000 ] }, { "brand_code": "chilis", "title": "Chili's", "image": "https://d2md0c8rpvzmz5.cloudfront.net/giftcards/chilis.png", "available_amounts": [ 500, 1000, 1500, 2000, 2500, 5000, 10000 ] }, { "brand_code": "chipotle", "title": "Chipotle", "image": "https://d2md0c8rpvzmz5.cloudfront.net/giftcards/chipotle.png", "available_amounts": [ 500, 1000, 1500, 2000, 2500, 5000, 10000, 20000 ] }, { "brand_code": "coldstonecreameryus", "title": "Cold Stone Creamery", "image": "https://d2md0c8rpvzmz5.cloudfront.net/giftcards/coldstone.png", "available_amounts": [ 1000, 1500, 2000, 2500, 5000, 10000 ] }, { "brand_code": "dominos", "title": "Domino's", "image": "https://d2md0c8rpvzmz5.cloudfront.net/giftcards/dominos.png", "available_amounts": [ 500, 1000, 1500, 2000, 2500, 5000, 10000 ] }, { "brand_code": "doordashus", "title": "DoorDash", "image": "https://d2md0c8rpvzmz5.cloudfront.net/giftcards/doordash.png", "available_amounts": [ 1500, 2000, 2500, 5000, 10000, 20000 ] }, { "brand_code": "dunkindonuts", "title": "Dunkin' Donuts", "image": "https://d2md0c8rpvzmz5.cloudfront.net/giftcards/dunkindonts.png", "available_amounts": [ 500, 1000, 1500, 2000, 2500, 5000, 10000 ] }, { "brand_code": "grubhubus", "title": "Grubhub", "image": "https://d2md0c8rpvzmz5.cloudfront.net/giftcards/grubhub.png", "available_amounts": [ 500, 1000, 1500, 2000, 2500, 5000, 10000, 20000 ] }, { "brand_code": "ihop", "title": "IHOP", "image": "https://d2md0c8rpvzmz5.cloudfront.net/giftcards/ihop.png", "available_amounts": [ 500, 1000, 1500, 2000, 2500, 5000, 10000, 20000 ] }, { "brand_code": "mortons", "title": "Morton's The Steakhouse", "image": "https://d2md0c8rpvzmz5.cloudfront.net/giftcards/mortons.png", "available_amounts": [ 1000, 1500, 2000, 2500, 5000, 10000, 20000 ] }, { "brand_code": "omahasteaks", "title": "Omaha Steaks", "image": "https://d2md0c8rpvzmz5.cloudfront.net/giftcards/omahasteaks.png", "available_amounts": [ 500, 1000, 1500, 2000, 2500, 5000, 10000, 20000 ] }, { "brand_code": "ontheborder", "title": "On The Border", "image": "https://d2md0c8rpvzmz5.cloudfront.net/giftcards/ontheborder.png", "available_amounts": [ 500, 1000, 1500, 2000, 2500, 5000, 10000 ] }, { "brand_code": "outback", "title": "Outback Steakhouse", "image": "https://d2md0c8rpvzmz5.cloudfront.net/giftcards/outback.png", "available_amounts": [ 500, 1000, 1500, 2000, 2500, 5000, 10000, 20000 ] }, { "brand_code": "panerabreadus", "title": "Panera", "image": "https://d2md0c8rpvzmz5.cloudfront.net/giftcards/panera.png", "available_amounts": [ 500, 1000, 1500, 2000, 2500, 5000, 10000, 20000 ] }, { "brand_code": "papjohns", "title": "Papa John's", "image": "https://d2md0c8rpvzmz5.cloudfront.net/giftcards/papajohns.png", "available_amounts": [ 500, 1000, 1500, 2000, 2500, 5000, 10000, 20000 ] }, { "brand_code": "pfchangs", "title": "P.F. Chang's", "image": "https://d2md0c8rpvzmz5.cloudfront.net/giftcards/pfchangs.png", "available_amounts": [ 1000, 1500, 2000, 2500, 5000, 10000, 20000 ] }, { "brand_code": "redrobin", "title": "Red Robin", "image": "https://d2md0c8rpvzmz5.cloudfront.net/giftcards/redrobin.png", "available_amounts": [ 500, 1000, 1500, 2000, 2500, 5000, 10000 ] }, { "brand_code": "sonicus", "title": "SONIC", "image": "https://d2md0c8rpvzmz5.cloudfront.net/giftcards/sonic.png", "available_amounts": [ 500, 1000, 1500, 2000, 2500, 5000, 10000 ] }, { "brand_code": "tacobellus", "title": "Taco Bell", "image": "https://d2md0c8rpvzmz5.cloudfront.net/giftcards/tacobell.png", "available_amounts": [ 500, 1000, 1500, 2000, 2500, 5000, 10000, 20000 ] }, { "brand_code": "tgifridaysus", "title": "TGI Fridays", "image": "https://d2md0c8rpvzmz5.cloudfront.net/giftcards/tjfridays.png", "available_amounts": [ 500, 1000, 1500, 2000, 2500, 5000, 10000, 20000 ] }, { "brand_code": "ubereats", "title": "Uber Eats", "image": "https://d2md0c8rpvzmz5.cloudfront.net/giftcards/ubereats.png", "available_amounts": [ 1500, 2000, 2500, 5000, 10000, 20000 ] } ] }, "entertainment": { "title": "Entertainment", "brands": [ { "brand_code": "amctheatres", "title": "AMC Theatres", "image": "https://d2md0c8rpvzmz5.cloudfront.net/giftcards/amctheaters.png", "available_amounts": [ 500, 1000, 1500, 2000, 2500, 5000, 10000 ] }, { "brand_code": "itunesus", "title": "Apple Gift Card", "image": "https://d2md0c8rpvzmz5.cloudfront.net/giftcards/itunes.png", "available_amounts": [ 500, 1000, 1500, 2000, 2500, 5000, 10000, 20000 ] }, { "brand_code": "cinemark", "title": "Cinemark", "image": "https://d2md0c8rpvzmz5.cloudfront.net/giftcards/cinemark.png", "available_amounts": [ 1000, 1500, 2000, 2500, 5000, 10000, 20000 ] }, { "brand_code": "fandangous", "title": "Fandango", "image": "https://d2md0c8rpvzmz5.cloudfront.net/giftcards/fandango.png", "available_amounts": [2500, 5000, 10000] }, { "brand_code": "gamestop", "title": "Game Stop", "image": "https://d2md0c8rpvzmz5.cloudfront.net/giftcards/gamestop.png", "available_amounts": [ 500, 1000, 1500, 2000, 2500, 5000, 10000, 20000 ] }, { "brand_code": "googleplay", "title": "Google Play", "image": "https://d2md0c8rpvzmz5.cloudfront.net/giftcards/googleplay.png", "available_amounts": [ 1000, 1500, 2000, 2500, 5000, 10000, 20000 ] }, { "brand_code": "playstationus", "title": "Sony Playstation", "image": "https://d2md0c8rpvzmz5.cloudfront.net/giftcards/playstation.png", "available_amounts": [1000, 5000] }, { "brand_code": "regal", "title": "Regal", "image": "https://d2md0c8rpvzmz5.cloudfront.net/giftcards/regal.png", "available_amounts": [ 1000, 1500, 2000, 2500, 5000, 10000 ] }, { "brand_code": "xbox", "title": "Microsoft Xbox", "image": "https://d2md0c8rpvzmz5.cloudfront.net/giftcards/xbox.png", "available_amounts": [1500, 2500, 5000] } ] }, "gifts": { "title": "Gifts", "brands": [ { "brand_code": "1800flowers", "title": "1-800-Flowers.com", "image": "https://d2md0c8rpvzmz5.cloudfront.net/giftcards/1800flowers.png", "available_amounts": [ 500, 1000, 1500, 2000, 2500, 5000, 10000, 20000 ] }, { "brand_code": "athleta", "title": "Athleta", "image": "https://d2md0c8rpvzmz5.cloudfront.net/giftcards/athleta.png", "available_amounts": [ 1000, 1500, 2000, 2500, 5000, 10000, 20000 ] }, { "brand_code": "autozoneus", "title": "AutoZone", "image": "https://d2md0c8rpvzmz5.cloudfront.net/giftcards/autozone.png", "available_amounts": [ 1000, 1500, 2000, 2500, 5000, 10000, 20000 ] }, { "brand_code": "babygap", "title": "Baby Gap", "image": "https://d2md0c8rpvzmz5.cloudfront.net/giftcards/babygap.png", "available_amounts": [ 1000, 1500, 2000, 2500, 5000, 10000, 20000 ] }, { "brand_code": "barnesandnoble", "title": "Barnes and Noble", "image": "https://d2md0c8rpvzmz5.cloudfront.net/giftcards/barnesandnoble.png", "available_amounts": [ 500, 1000, 1500, 2000, 2500, 5000, 10000, 20000 ] }, { "brand_code": "bassproshops", "title": "Bass Pro Shops", "image": "https://d2md0c8rpvzmz5.cloudfront.net/giftcards/bassprosshops.png", "available_amounts": [ 500, 1000, 1500, 2000, 2500, 5000, 10000, 20000 ] }, { "brand_code": "buildabear", "title": "Build-A-Bear Workshop", "image": "https://d2md0c8rpvzmz5.cloudfront.net/giftcards/buildabear.png", "available_amounts": [ 500, 1000, 1500, 2000, 2500, 5000, 10000, 20000 ] }, { "brand_code": "cabelas", "title": "Cabela's", "image": "https://d2md0c8rpvzmz5.cloudfront.net/giftcards/cabelas.png", "available_amounts": [ 500, 1000, 1500, 2000, 2500, 5000, 10000, 20000 ] }, { "brand_code": "callaway", "title": "Callaway", "image": "https://d2md0c8rpvzmz5.cloudfront.net/giftcards/callaway.png", "available_amounts": [5000, 10000] }, { "brand_code": "cratebarrelus", "title": "Crate & Barrel", "image": "https://d2md0c8rpvzmz5.cloudfront.net/giftcards/crateandbarrel.png", "available_amounts": [2500, 5000, 10000, 20000] }, { "brand_code": "cvs", "title": "CVS Pharmacy", "image": "https://d2md0c8rpvzmz5.cloudfront.net/giftcards/cvs.png", "available_amounts": [ 500, 1000, 1500, 2000, 2500, 5000, 10000, 20000 ] }, { "brand_code": "ebay1", "title": "eBay", "image": "https://d2md0c8rpvzmz5.cloudfront.net/giftcards/ebay.png", "available_amounts": [ 500, 1000, 1500, 2000, 2500, 5000, 10000 ] }, { "brand_code": "fanatics", "title": "Fanatics", "image": "https://d2md0c8rpvzmz5.cloudfront.net/giftcards/fanatics.png", "available_amounts": [ 500, 1000, 1500, 2000, 2500, 5000, 10000, 20000 ] }, { "brand_code": "footlocker", "title": "Foot Locker", "image": "https://d2md0c8rpvzmz5.cloudfront.net/giftcards/footlocker.png", "available_amounts": [ 500, 1000, 1500, 2500, 5000, 10000 ] }, { "brand_code": "goplaygolf", "title": "Go Play Golf", "image": "https://d2md0c8rpvzmz5.cloudfront.net/giftcards/goplaygolf.png", "available_amounts": [2500, 5000, 10000, 20000] }, { "brand_code": "guitarcenterus", "title": "Guitar Center", "image": "https://d2md0c8rpvzmz5.cloudfront.net/giftcards/guitarcenter.png", "available_amounts": [2500, 5000, 10000, 20000] }, { "brand_code": "kohls", "title": "Kohl's", "image": "https://d2md0c8rpvzmz5.cloudfront.net/giftcards/kohls.png", "available_amounts": [ 500, 1000, 1500, 2000, 2500, 5000, 10000, 20000 ] }, { "brand_code": "landsend", "title": "Land's End", "image": "https://d2md0c8rpvzmz5.cloudfront.net/giftcards/landsend.png", "available_amounts": [ 500, 1000, 1500, 2000, 2500, 5000, 10000, 20000 ] }, { "brand_code": "reius", "title": "REI", "image": "https://d2md0c8rpvzmz5.cloudfront.net/giftcards/rei.png", "available_amounts": [ 1000, 1500, 2000, 2500, 5000, 10000, 20000 ] }, { "brand_code": "sephora", "title": "Sephora", "image": "https://d2md0c8rpvzmz5.cloudfront.net/giftcards/sephora.png", "available_amounts": [ 1000, 1500, 2000, 2500, 5000, 10000, 20000 ] }, { "brand_code": "spaweek", "title": "Spa Week", "image": "https://d2md0c8rpvzmz5.cloudfront.net/giftcards/spaweek.png", "available_amounts": [ 500, 1000, 1500, 2000, 2500, 5000, 10000, 20000 ] } ] }, "travel": { "title": "Travel", "brands": [ { "brand_code": "uber", "title": "Uber", "image": "https://d2md0c8rpvzmz5.cloudfront.net/giftcards/uberpng.png", "available_amounts": [ 1500, 2000, 2500, 5000, 10000, 20000 ] }, { "brand_code": "delta", "title": "Delta Air Lines", "image": "https://d2md0c8rpvzmz5.cloudfront.net/giftcards/delta.png", "available_amounts": [5000, 10000] }, { "brand_code": "hotels", "title": "Hotels.com", "image": "https://d2md0c8rpvzmz5.cloudfront.net/giftcards/hotels.png", "available_amounts": [ 1000, 1500, 2000, 2500, 5000, 10000, 20000 ] }, { "brand_code": "lyftus", "title": "Lyft", "image": "https://d2md0c8rpvzmz5.cloudfront.net/giftcards/lyft.png", "available_amounts": [2500, 5000, 10000, 20000] } ] }, "big_box": { "title": "Big Box", "brands": [ { "brand_code": "bestbuy", "title": "Best Buy", "image": "https://d2md0c8rpvzmz5.cloudfront.net/giftcards/bestbuy.png", "available_amounts": [ 500, 1000, 1500, 2000, 2500, 5000, 10000, 20000 ] }, { "brand_code": "homedepot", "title": "The Home Depot", "image": "https://d2md0c8rpvzmz5.cloudfront.net/giftcards/homedepot.png", "available_amounts": [ 500, 1000, 1500, 2000, 2500, 5000, 10000, 20000 ] }, { "brand_code": "target", "title": "Target", "image": "https://d2md0c8rpvzmz5.cloudfront.net/giftcards/target.png", "available_amounts": [ 500, 1000, 1500, 2000, 2500, 3000, 4000, 5000, 10000, 20000 ] }, { "brand_code": "walmart", "title": "Walmart", "image": "https://d2md0c8rpvzmz5.cloudfront.net/giftcards/walmart.png", "available_amounts": [ 500, 1000, 1500, 2000, 2500, 5000, 10000, 20000 ] }, { "brand_code": "wayfairus", "title": "Wayfair", "image": "https://d2md0c8rpvzmz5.cloudfront.net/giftcards/wayfair.png", "available_amounts": [ 500, 1000, 1500, 2000, 2500, 5000, 10000, 20000 ] } ] }, "other": { "title": "Other", "brands": [] } } } } } } } }, "/giftcard-brands-list": { "get": { "tags": ["Giftcards"], "operationId": "listGiftcardBrandsAsList", "summary": "List Brands Flat", "description": "List all available Giftcard brands as a flat list.", "security": [ { "noauthAuth": [] } ], "responses": { "200": { "description": "200 response", "headers": { "Content-Type": { "schema": { "type": "string", "example": "application/json" } } }, "content": { "application/json": { "schema": { "type": "array", "items": { "$ref": "#/components/schemas/giftcard-group-list" } }, "example": { "brands": [ { "brand_code": "amazonus", "title": "Amazon.com", "image": "https://d2md0c8rpvzmz5.cloudfront.net/giftcards/amazonus.png", "available_amounts": [ 500, 1000, 1500, 2000, 2500, 3000, 4000, 5000, 10000, 20000 ], "group": "Featured" }, { "brand_code": "starbucksus", "title": "Starbucks", "image": "https://d2md0c8rpvzmz5.cloudfront.net/giftcards/starbucks.png", "available_amounts": [ 500, 1000, 1500, 2000, 2500, 5000, 10000 ], "group": "Featured" }, { "brand_code": "applebees", "title": "Applebees", "image": "https://d2md0c8rpvzmz5.cloudfront.net/giftcards/applebees.png", "available_amounts": [ 500, 1000, 1500, 2000, 2500, 5000, 10000, 20000 ], "group": "Food" }, { "brand_code": "baskinrobbinsus", "title": "Baskin Robbins", "image": "https://d2md0c8rpvzmz5.cloudfront.net/giftcards/baskin.png", "available_amounts": [ 500, 1000, 1500, 2000, 2500, 5000, 10000 ], "group": "Food" }, { "brand_code": "burgerkingus", "title": "Burger King", "image": "https://d2md0c8rpvzmz5.cloudfront.net/giftcards/burgerking.png", "available_amounts": [ 500, 1000, 1500, 2000, 2500, 5000, 10000, 20000 ], "group": "Food" }, { "brand_code": "charthouse", "title": "Chart House", "image": "https://d2md0c8rpvzmz5.cloudfront.net/giftcards/charthouse.png", "available_amounts": [ 1000, 1500, 2000, 2500, 5000, 10000, 20000 ], "group": "Food" }, { "brand_code": "chilis", "title": "Chili's", "image": "https://d2md0c8rpvzmz5.cloudfront.net/giftcards/chilis.png", "available_amounts": [ 500, 1000, 1500, 2000, 2500, 5000, 10000 ], "group": "Food" }, { "brand_code": "chipotle", "title": "Chipotle", "image": "https://d2md0c8rpvzmz5.cloudfront.net/giftcards/chipotle.png", "available_amounts": [ 500, 1000, 1500, 2000, 2500, 5000, 10000, 20000 ], "group": "Food" }, { "brand_code": "coldstonecreameryus", "title": "Cold Stone Creamery", "image": "https://d2md0c8rpvzmz5.cloudfront.net/giftcards/coldstone.png", "available_amounts": [ 1000, 1500, 2000, 2500, 5000, 10000 ], "group": "Food" }, { "brand_code": "dominos", "title": "Domino's", "image": "https://d2md0c8rpvzmz5.cloudfront.net/giftcards/dominos.png", "available_amounts": [ 500, 1000, 1500, 2000, 2500, 5000, 10000 ], "group": "Food" }, { "brand_code": "doordashus", "title": "DoorDash", "image": "https://d2md0c8rpvzmz5.cloudfront.net/giftcards/doordash.png", "available_amounts": [ 1500, 2000, 2500, 5000, 10000, 20000 ], "group": "Food" }, { "brand_code": "dunkindonuts", "title": "Dunkin' Donuts", "image": "https://d2md0c8rpvzmz5.cloudfront.net/giftcards/dunkindonts.png", "available_amounts": [ 500, 1000, 1500, 2000, 2500, 5000, 10000 ], "group": "Food" }, { "brand_code": "grubhubus", "title": "Grubhub", "image": "https://d2md0c8rpvzmz5.cloudfront.net/giftcards/grubhub.png", "available_amounts": [ 500, 1000, 1500, 2000, 2500, 5000, 10000, 20000 ], "group": "Food" }, { "brand_code": "ihop", "title": "IHOP", "image": "https://d2md0c8rpvzmz5.cloudfront.net/giftcards/ihop.png", "available_amounts": [ 500, 1000, 1500, 2000, 2500, 5000, 10000, 20000 ], "group": "Food" }, { "brand_code": "mortons", "title": "Morton's The Steakhouse", "image": "https://d2md0c8rpvzmz5.cloudfront.net/giftcards/mortons.png", "available_amounts": [ 1000, 1500, 2000, 2500, 5000, 10000, 20000 ], "group": "Food" }, { "brand_code": "omahasteaks", "title": "Omaha Steaks", "image": "https://d2md0c8rpvzmz5.cloudfront.net/giftcards/omahasteaks.png", "available_amounts": [ 500, 1000, 1500, 2000, 2500, 5000, 10000, 20000 ], "group": "Food" }, { "brand_code": "ontheborder", "title": "On The Border", "image": "https://d2md0c8rpvzmz5.cloudfront.net/giftcards/ontheborder.png", "available_amounts": [ 500, 1000, 1500, 2000, 2500, 5000, 10000 ], "group": "Food" }, { "brand_code": "outback", "title": "Outback Steakhouse", "image": "https://d2md0c8rpvzmz5.cloudfront.net/giftcards/outback.png", "available_amounts": [ 500, 1000, 1500, 2000, 2500, 5000, 10000, 20000 ], "group": "Food" }, { "brand_code": "panerabreadus", "title": "Panera", "image": "https://d2md0c8rpvzmz5.cloudfront.net/giftcards/panera.png", "available_amounts": [ 500, 1000, 1500, 2000, 2500, 5000, 10000, 20000 ], "group": "Food" }, { "brand_code": "papjohns", "title": "Papa John's", "image": "https://d2md0c8rpvzmz5.cloudfront.net/giftcards/papajohns.png", "available_amounts": [ 500, 1000, 1500, 2000, 2500, 5000, 10000, 20000 ], "group": "Food" }, { "brand_code": "pfchangs", "title": "P.F. Chang's", "image": "https://d2md0c8rpvzmz5.cloudfront.net/giftcards/pfchangs.png", "available_amounts": [ 1000, 1500, 2000, 2500, 5000, 10000, 20000 ], "group": "Food" }, { "brand_code": "redrobin", "title": "Red Robin", "image": "https://d2md0c8rpvzmz5.cloudfront.net/giftcards/redrobin.png", "available_amounts": [ 500, 1000, 1500, 2000, 2500, 5000, 10000 ], "group": "Food" }, { "brand_code": "sonicus", "title": "SONIC", "image": "https://d2md0c8rpvzmz5.cloudfront.net/giftcards/sonic.png", "available_amounts": [ 500, 1000, 1500, 2000, 2500, 5000, 10000 ], "group": "Food" }, { "brand_code": "tacobellus", "title": "Taco Bell", "image": "https://d2md0c8rpvzmz5.cloudfront.net/giftcards/tacobell.png", "available_amounts": [ 500, 1000, 1500, 2000, 2500, 5000, 10000, 20000 ], "group": "Food" }, { "brand_code": "tgifridaysus", "title": "TGI Fridays", "image": "https://d2md0c8rpvzmz5.cloudfront.net/giftcards/tjfridays.png", "available_amounts": [ 500, 1000, 1500, 2000, 2500, 5000, 10000, 20000 ], "group": "Food" }, { "brand_code": "ubereats", "title": "Uber Eats", "image": "https://d2md0c8rpvzmz5.cloudfront.net/giftcards/ubereats.png", "available_amounts": [ 1500, 2000, 2500, 5000, 10000, 20000 ], "group": "Food" }, { "brand_code": "amctheatres", "title": "AMC Theatres", "image": "https://d2md0c8rpvzmz5.cloudfront.net/giftcards/amctheaters.png", "available_amounts": [ 500, 1000, 1500, 2000, 2500, 5000, 10000 ], "group": "Entertainment" }, { "brand_code": "itunesus", "title": "Apple Gift Card", "image": "https://d2md0c8rpvzmz5.cloudfront.net/giftcards/itunes.png", "available_amounts": [ 500, 1000, 1500, 2000, 2500, 5000, 10000, 20000 ], "group": "Entertainment" }, { "brand_code": "cinemark", "title": "Cinemark", "image": "https://d2md0c8rpvzmz5.cloudfront.net/giftcards/cinemark.png", "available_amounts": [ 1000, 1500, 2000, 2500, 5000, 10000, 20000 ], "group": "Entertainment" }, { "brand_code": "fandangous", "title": "Fandango", "image": "https://d2md0c8rpvzmz5.cloudfront.net/giftcards/fandango.png", "available_amounts": [2500, 5000, 10000], "group": "Entertainment" }, { "brand_code": "gamestop", "title": "Game Stop", "image": "https://d2md0c8rpvzmz5.cloudfront.net/giftcards/gamestop.png", "available_amounts": [ 500, 1000, 1500, 2000, 2500, 5000, 10000, 20000 ], "group": "Entertainment" }, { "brand_code": "googleplay", "title": "Google Play", "image": "https://d2md0c8rpvzmz5.cloudfront.net/giftcards/googleplay.png", "available_amounts": [ 1000, 1500, 2000, 2500, 5000, 10000, 20000 ], "group": "Entertainment" }, { "brand_code": "playstationus", "title": "Sony Playstation", "image": "https://d2md0c8rpvzmz5.cloudfront.net/giftcards/playstation.png", "available_amounts": [1000, 5000], "group": "Entertainment" }, { "brand_code": "regal", "title": "Regal", "image": "https://d2md0c8rpvzmz5.cloudfront.net/giftcards/regal.png", "available_amounts": [ 1000, 1500, 2000, 2500, 5000, 10000 ], "group": "Entertainment" }, { "brand_code": "xbox", "title": "Microsoft Xbox", "image": "https://d2md0c8rpvzmz5.cloudfront.net/giftcards/xbox.png", "available_amounts": [1500, 2500, 5000], "group": "Entertainment" }, { "brand_code": "1800flowers", "title": "1-800-Flowers.com", "image": "https://d2md0c8rpvzmz5.cloudfront.net/giftcards/1800flowers.png", "available_amounts": [ 500, 1000, 1500, 2000, 2500, 5000, 10000, 20000 ], "group": "Gifts" }, { "brand_code": "athleta", "title": "Athleta", "image": "https://d2md0c8rpvzmz5.cloudfront.net/giftcards/athleta.png", "available_amounts": [ 1000, 1500, 2000, 2500, 5000, 10000, 20000 ], "group": "Gifts" }, { "brand_code": "autozoneus", "title": "AutoZone", "image": "https://d2md0c8rpvzmz5.cloudfront.net/giftcards/autozone.png", "available_amounts": [ 1000, 1500, 2000, 2500, 5000, 10000, 20000 ], "group": "Gifts" }, { "brand_code": "babygap", "title": "Baby Gap", "image": "https://d2md0c8rpvzmz5.cloudfront.net/giftcards/babygap.png", "available_amounts": [ 1000, 1500, 2000, 2500, 5000, 10000, 20000 ], "group": "Gifts" }, { "brand_code": "barnesandnoble", "title": "Barnes and Noble", "image": "https://d2md0c8rpvzmz5.cloudfront.net/giftcards/barnesandnoble.png", "available_amounts": [ 500, 1000, 1500, 2000, 2500, 5000, 10000, 20000 ], "group": "Gifts" }, { "brand_code": "bassproshops", "title": "Bass Pro Shops", "image": "https://d2md0c8rpvzmz5.cloudfront.net/giftcards/bassprosshops.png", "available_amounts": [ 500, 1000, 1500, 2000, 2500, 5000, 10000, 20000 ], "group": "Gifts" }, { "brand_code": "buildabear", "title": "Build-A-Bear Workshop", "image": "https://d2md0c8rpvzmz5.cloudfront.net/giftcards/buildabear.png", "available_amounts": [ 500, 1000, 1500, 2000, 2500, 5000, 10000, 20000 ], "group": "Gifts" }, { "brand_code": "cabelas", "title": "Cabela's", "image": "https://d2md0c8rpvzmz5.cloudfront.net/giftcards/cabelas.png", "available_amounts": [ 500, 1000, 1500, 2000, 2500, 5000, 10000, 20000 ], "group": "Gifts" }, { "brand_code": "callaway", "title": "Callaway", "image": "https://d2md0c8rpvzmz5.cloudfront.net/giftcards/callaway.png", "available_amounts": [5000, 10000], "group": "Gifts" }, { "brand_code": "cratebarrelus", "title": "Crate & Barrel", "image": "https://d2md0c8rpvzmz5.cloudfront.net/giftcards/crateandbarrel.png", "available_amounts": [2500, 5000, 10000, 20000], "group": "Gifts" }, { "brand_code": "cvs", "title": "CVS Pharmacy", "image": "https://d2md0c8rpvzmz5.cloudfront.net/giftcards/cvs.png", "available_amounts": [ 500, 1000, 1500, 2000, 2500, 5000, 10000, 20000 ], "group": "Gifts" }, { "brand_code": "ebay1", "title": "eBay", "image": "https://d2md0c8rpvzmz5.cloudfront.net/giftcards/ebay.png", "available_amounts": [ 500, 1000, 1500, 2000, 2500, 5000, 10000 ], "group": "Gifts" }, { "brand_code": "fanatics", "title": "Fanatics", "image": "https://d2md0c8rpvzmz5.cloudfront.net/giftcards/fanatics.png", "available_amounts": [ 500, 1000, 1500, 2000, 2500, 5000, 10000, 20000 ], "group": "Gifts" }, { "brand_code": "footlocker", "title": "Foot Locker", "image": "https://d2md0c8rpvzmz5.cloudfront.net/giftcards/footlocker.png", "available_amounts": [500, 1000, 1500, 2500, 5000, 10000], "group": "Gifts" }, { "brand_code": "goplaygolf", "title": "Go Play Golf", "image": "https://d2md0c8rpvzmz5.cloudfront.net/giftcards/goplaygolf.png", "available_amounts": [2500, 5000, 10000, 20000], "group": "Gifts" }, { "brand_code": "guitarcenterus", "title": "Guitar Center", "image": "https://d2md0c8rpvzmz5.cloudfront.net/giftcards/guitarcenter.png", "available_amounts": [2500, 5000, 10000, 20000], "group": "Gifts" }, { "brand_code": "kohls", "title": "Kohl's", "image": "https://d2md0c8rpvzmz5.cloudfront.net/giftcards/kohls.png", "available_amounts": [ 500, 1000, 1500, 2000, 2500, 5000, 10000, 20000 ], "group": "Gifts" }, { "brand_code": "landsend", "title": "Land's End", "image": "https://d2md0c8rpvzmz5.cloudfront.net/giftcards/landsend.png", "available_amounts": [ 500, 1000, 1500, 2000, 2500, 5000, 10000, 20000 ], "group": "Gifts" }, { "brand_code": "reius", "title": "REI", "image": "https://d2md0c8rpvzmz5.cloudfront.net/giftcards/rei.png", "available_amounts": [ 1000, 1500, 2000, 2500, 5000, 10000, 20000 ], "group": "Gifts" }, { "brand_code": "sephora", "title": "Sephora", "image": "https://d2md0c8rpvzmz5.cloudfront.net/giftcards/sephora.png", "available_amounts": [ 1000, 1500, 2000, 2500, 5000, 10000, 20000 ], "group": "Gifts" }, { "brand_code": "spaweek", "title": "Spa Week", "image": "https://d2md0c8rpvzmz5.cloudfront.net/giftcards/spaweek.png", "available_amounts": [ 500, 1000, 1500, 2000, 2500, 5000, 10000, 20000 ], "group": "Gifts" }, { "brand_code": "uber", "title": "Uber", "image": "https://d2md0c8rpvzmz5.cloudfront.net/giftcards/uberpng.png", "available_amounts": [ 1500, 2000, 2500, 5000, 10000, 20000 ], "group": "Travel" }, { "brand_code": "delta", "title": "Delta Air Lines", "image": "https://d2md0c8rpvzmz5.cloudfront.net/giftcards/delta.png", "available_amounts": [5000, 10000], "group": "Travel" }, { "brand_code": "hotels", "title": "Hotels.com", "image": "https://d2md0c8rpvzmz5.cloudfront.net/giftcards/hotels.png", "available_amounts": [ 1000, 1500, 2000, 2500, 5000, 10000, 20000 ], "group": "Travel" }, { "brand_code": "lyftus", "title": "Lyft", "image": "https://d2md0c8rpvzmz5.cloudfront.net/giftcards/lyft.png", "available_amounts": [2500, 5000, 10000, 20000], "group": "Travel" }, { "brand_code": "bestbuy", "title": "Best Buy", "image": "https://d2md0c8rpvzmz5.cloudfront.net/giftcards/bestbuy.png", "available_amounts": [ 500, 1000, 1500, 2000, 2500, 5000, 10000, 20000 ], "group": "Big Box" }, { "brand_code": "homedepot", "title": "The Home Depot", "image": "https://d2md0c8rpvzmz5.cloudfront.net/giftcards/homedepot.png", "available_amounts": [ 500, 1000, 1500, 2000, 2500, 5000, 10000, 20000 ], "group": "Big Box" }, { "brand_code": "target", "title": "Target", "image": "https://d2md0c8rpvzmz5.cloudfront.net/giftcards/target.png", "available_amounts": [ 500, 1000, 1500, 2000, 2500, 3000, 4000, 5000, 10000, 20000 ], "group": "Big Box" }, { "brand_code": "walmart", "title": "Walmart", "image": "https://d2md0c8rpvzmz5.cloudfront.net/giftcards/walmart.png", "available_amounts": [ 500, 1000, 1500, 2000, 2500, 5000, 10000, 20000 ], "group": "Big Box" }, { "brand_code": "wayfairus", "title": "Wayfair", "image": "https://d2md0c8rpvzmz5.cloudfront.net/giftcards/wayfair.png", "available_amounts": [ 500, 1000, 1500, 2000, 2500, 5000, 10000, 20000 ], "group": "Big Box" } ] } } } } } } }, "/sub-accounts/": { "get": { "tags": ["Sub Accounts"], "operationId": "getSubAccounts", "summary": "List All", "description": "List all available sub-accounts.", "responses": { "200": { "description": "OK", "headers": { "Content-Type": { "schema": { "type": "string", "example": "application/json" } } }, "content": { "application/json": { "schema": { "type": "object", "properties": { "data": { "type": "array", "items": { "$ref": "#/components/schemas/sub-account" } } } }, "example": { "data": [ { "$ref": "#/components/examples/sub-account-example" } ] } } } }, "403": { "$ref": "#/components/responses/Unauthorized" } } }, "post": { "tags": ["Sub Accounts"], "operationId": "createSubAccount", "summary": "Create Sub Account", "description": "Create a new sub-account.", "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/sub-account-create" } } } }, "responses": { "201": { "description": "Created", "headers": { "Content-Type": { "schema": { "type": "string", "example": "application/json" } } }, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/sub-account" }, "examples": { "sub-account": { "value": { "user_id": 2, "title": "API Update", "return_name": "Your Business", "return_address": "123 Main Street", "return_address2": "Apartment 1", "return_city": "Fake City", "return_state": "NY", "return_postal_code": null, "updated_at": "2025-09-09 18:26:51", "created_at": "2025-09-09 18:26:51", "id": 50 } } } } } }, "403": { "$ref": "#/components/responses/Unauthorized" } } } }, "/sub-accounts/{subAccountId}": { "parameters": [ { "name": "subAccountId", "in": "path", "description": "ID of sub-account", "required": true, "schema": { "type": "integer", "example": 56 } } ], "get": { "tags": ["Sub Accounts"], "operationId": "getSubAccountDetails", "summary": "Get Details", "description": "Gets a sub-account by ID. Returns a single sub-account object.", "responses": { "200": { "description": "Successful Response", "headers": { "Content-Type": { "schema": { "type": "string", "example": "application/json" } } }, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/sub-account" }, "examples": { "sub-account": { "$ref": "#/components/examples/sub-account-example" } } } } }, "403": { "$ref": "#/components/responses/Unauthorized" }, "404": { "$ref": "#/components/responses/NotFound" } } }, "put": { "tags": ["Sub Accounts"], "operationId": "updateSubAccount", "summary": "Update Sub Account", "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/sub-account-create" } } } }, "responses": { "201": { "description": "Updated", "headers": { "Content-Type": { "schema": { "type": "string", "example": "application/json" } } }, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/sub-account" }, "examples": { "sub-account": { "value": { "user_id": 2, "title": "API Update", "return_name": "Your Business", "return_address": "123 Main Street", "return_address2": "Apartment 1", "return_city": "Fake City", "return_state": "NY", "return_postal_code": null, "updated_at": "2025-09-09 18:26:51", "created_at": "2025-09-09 18:26:51", "id": 50 } } } } } }, "403": { "$ref": "#/components/responses/Unauthorized" } } }, "delete": { "tags": ["Sub Accounts"], "operationId": "deleteSubAccount", "summary": "Delete Sub Account", "responses": { "200": { "description": "Successful Response", "headers": { "Content-Type": { "schema": { "type": "string", "example": "application/json" } } }, "content": { "application/json": { "schema": { "type": "object" }, "example": { "message": "success" } } } }, "403": { "$ref": "#/components/responses/Unauthorized" }, "404": { "$ref": "#/components/responses/NotFound" } } } } } }