### Get Products Example Source: https://wiki.tribute.tg/for-content-creators/api-documentation.md Example of how to make a GET request to the /api/v1/products endpoint using an API key for authentication. ```APIDOC ## GET /api/v1/products ### Description Retrieves a list of products. ### Method GET ### Endpoint https://tribute.tg/api/v1/products ### Parameters #### Headers - **Api-Key** (string) - Required - Your API key for authentication. ### Request Example ```bash curl -X GET \ 'https://tribute.tg/api/v1/products' \ -H 'Api-Key: your_api_key_here' ``` ### Response #### Success Response (200) - **(Schema not provided in source)** #### Response Example **(No example provided in source)** ``` -------------------------------- ### Query Documentation via HTTP GET Source: https://wiki.tribute.tg/for-content-creators/info-products-and-content/api-integration.md Perform an HTTP GET request to query the documentation dynamically. Include your question as the 'ask' query parameter. ```http GET https://wiki.tribute.tg/for-content-creators/info-products-and-content/api-integration.md?ask= ``` -------------------------------- ### Query Documentation with 'ask' Parameter Source: https://wiki.tribute.tg/for-subscribers/how-to-send-a-donation.md Use this GET request to ask questions about the documentation. The response will provide direct answers and relevant excerpts. ```http GET https://wiki.tribute.tg/for-subscribers/how-to-send-a-donation.md?ask= ``` -------------------------------- ### Query Documentation with GET Request Source: https://wiki.tribute.tg/for-subscribers/payment-history.md Use this method to ask specific questions about the documentation. The response includes a direct answer and relevant excerpts. ```http GET https://wiki.tribute.tg/for-subscribers/payment-history.md?ask= ``` -------------------------------- ### Example Digital Product Message Source: https://wiki.tribute.tg/for-content-creators/info-products-and-content/api-integration.md This is the message a buyer will receive after a successful purchase. It should include instructions for the user. ```text ✅ Thank you for purchasing AI Assistant access for 1 month! Access will be provided automatically. To activate your subscription, return to @YourAIBot ``` -------------------------------- ### Query Documentation Dynamically Source: https://wiki.tribute.tg/for-content-creators/energy.md To get specific information not directly on the page, make an HTTP GET request to the page URL with the 'ask' query parameter. The question should be clear and in natural language. ```HTTP GET https://wiki.tribute.tg/for-content-creators/energy.md?ask= ``` -------------------------------- ### Query Documentation with 'ask' Parameter Source: https://wiki.tribute.tg/for-shops/api/webhooks.md To get additional information not directly on the page, perform an HTTP GET request with the 'ask' query parameter. The question should be specific and self-contained. ```http GET https://wiki.tribute.tg/for-shops/api/webhooks.md?ask= ``` -------------------------------- ### Get Products using curl Source: https://wiki.tribute.tg/for-content-creators/api-documentation.md Use this command to retrieve a list of products from the API. Ensure you replace 'your_api_key_here' with your actual API key. ```bash curl -X GET \ 'https://tribute.tg/api/v1/products' \ -H 'Api-Key: your_api_key_here' ``` -------------------------------- ### Query Promotions Documentation Source: https://wiki.tribute.tg/for-content-creators/promotions.md Use this GET request to ask specific questions about promotions or related documentation. The response includes direct answers and relevant excerpts. ```HTTP GET https://wiki.tribute.tg/for-content-creators/promotions.md?ask= ``` -------------------------------- ### Get Shops Source: https://wiki.tribute.tg/for-shops/api.md Retrieves a list of shops. Requires an API key for authentication. ```APIDOC ## GET /api/v1/shops ### Description Retrieves a list of shops. This endpoint is used to query shop information from the Tribute API. ### Method GET ### Endpoint https://tribute.tg/api/v1/shops ### Parameters #### Query Parameters None #### Request Body None ### Request Example ```bash curl -X GET \ 'https://tribute.tg/api/v1/shops' \ -H 'Api-Key: your_api_key_here' ``` ### Response #### Success Response (200) (Response structure not specified in source) #### Response Example (Response example not specified in source) ``` -------------------------------- ### Query Documentation Source: https://wiki.tribute.tg/for-content-creators/donations/how-to-create-a-donation.md To ask questions about the documentation, perform an HTTP GET request on the page URL with the 'ask' query parameter. The question should be specific and in natural language. ```HTTP GET https://wiki.tribute.tg/for-content-creators/donations/how-to-create-a-donation.md?ask= ``` -------------------------------- ### Get Shops List using curl Source: https://wiki.tribute.tg/for-shops/api.md Use this command to retrieve a list of shops from the API. Ensure you replace 'your_api_key_here' with your actual API key. ```bash curl -X GET \ 'https://tribute.tg/api/v1/shops' \ -H 'Api-Key: your_api_key_here' ``` -------------------------------- ### Tribute API - Get Products List Source: https://wiki.tribute.tg/for-content-creators/api-documentation/products.md Retrieves a paginated list of products from the Tribute API. Supports filtering by product type and sorting. ```json { "openapi": "3.1.0", "info": { "title": "Tribute API", "version": "1.0.0" }, "tags": [ { "name": "Products", "description": "Product operations. Products exist in three types:\n\n- `digital` - [Digital product](https://wiki.tribute.tg/for-content-creators/digital-product). Any Telegram message with optional attachments\n- `custom` - [Custom product](https://wiki.tribute.tg/for-content-creators/digital-product/digital-custom-product). On-demand content, e.g., personalized video greetings\n- `physical` - [Physical product](https://wiki.tribute.tg/for-content-creators/fizicheskie-tovary). Merchandise with shipping, e.g., printed t-shirts\n\nAll amounts are in smallest currency units (cents/kopecks)\n" } ], "servers": [ { "url": "https://tribute.tg/api/v1", "description": "Tribute API v1" } ], "security": [ { "ApiKeyAuth": [] } ], "components": { "securitySchemes": { "ApiKeyAuth": { "type": "apiKey", "in": "header", "name": "Api-Key", "description": "API key for authentication." } }, "schemas": { "Product": { "type": "object", "required": [ "id", "type", "name", "amount", "currency", "status", "isCustom", "acceptCards", "acceptWalletPay", "protectContent", "created", "updated", "link", "webLink" ], "properties": { "id": { "type": "integer", "description": "Product ID" }, "type": { "type": "string", "description": "Product type", "enum": [ "digital", "custom", "physical" ] }, "name": { "type": "string", "description": "Product name" }, "description": { "type": "string", "description": "Product description" }, "amount": { "type": "integer", "format": "int64", "description": "Product price in smallest currency units (cents for USD/EUR, kopecks for RUB). For physical products this is the starting price, taken from the cheapest variant." }, "currency": { "type": "string", "description": "Currency code", "enum": [ "USD", "EUR", "RUB" ] }, "starsAmount": { "type": "integer", "description": "Price in Telegram Stars" }, "starsAmountEnabled": { "type": "boolean", "description": "Whether payment with Stars is enabled" }, "status": { "type": "string", "description": "Product status", "enum": [ "pending", "approved", "rejected" ] }, "isCustom": { "type": "boolean", "description": "Whether this is a custom product" }, "acceptCards": { "type": "boolean", "description": "Whether card payments are accepted" }, "acceptWalletPay": { "type": "boolean", "description": "Whether wallet payments are accepted" }, "protectContent": { "type": "boolean", "description": "Whether content protection is enabled" }, "created": { "type": "string", "format": "date-time", "description": "Product creation date" }, "updated": { "type": "string", "format": "date-time", "description": "Product last update date" }, "pendingOrders": { "type": "integer", "description": "Number of pending orders (for custom products)" }, "imageUrl": { "type": "string", "format": "uri", "description": "Product image URL" }, "link": { "type": "string", "format": "uri", "description": "Direct link to product in Telegram app" }, "webLink": { "type": "string", "format": "uri", "description": "Web link to product" } } }, "Error": { "type": "object", "required": [ "error", "message" ], "properties": { "error": { "type": "string", "description": "Error code", "enum": [ "error_bad_request", "error_not_found", "error_not_permitted", "no_access" ] }, "message": { "type": "string", "description": "Error description" } } } } }, "paths": { "/products": { "get": { "summary": "Get Products List", "description": "Returns a paginated list of products", "tags": [ "Products" ], "parameters": [ { "name": "page", "in": "query", "description": "Page number", "required": false, "schema": { "type": "integer", "minimum": 1, "default": 1 } }, { "name": "size", "in": "query", "description": "Items per page", "required": false, "schema": { "type": "integer", "minimum": 1, "maximum": 100, "default": 20 } }, { "name": "type", "in": "query", "description": "Filter by product type", "required": false, "schema": { "type": "string", "enum": [ "digital", "custom", "physical" ] } }, { "name": "desc", "in": "query", "description": "Sort by ID descending", "required": false, "schema": { "type": "boolean", "default": false } } ], "responses": { "200": { "description": "Successful response", "content": { "application/json": { "schema": { "type": "object", "properties": { "rows": { "type": "array", "items": { "$ref": "#/components/schemas/Product" } }, "meta": { "type": "object", "properties": { "total": { "type": "integer", "format": "int64", "description": "Total number of items" }, "offset": { "type": "integer", "format": "int64", "description": "Current page number" }, "limit": { "type": "integer", "format": "int64", "description": "Page size" } } } } } } } }, "400": { "description": "Bad request", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error" } } } }, "401": { "description": "Unauthorized (invalid API key)", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error" } } } } } } } } } ``` -------------------------------- ### Query Documentation via HTTP GET Source: https://wiki.tribute.tg/for-content-creators/donations.md Use this method to ask questions about the documentation when the answer is not explicitly present on the page. The question should be specific and in natural language. ```HTTP GET https://wiki.tribute.tg/for-content-creators/donations.md?ask= ``` -------------------------------- ### Webhook Payload Example Source: https://wiki.tribute.tg/for-content-creators/info-products-and-content/api-integration.md This JSON object represents the data sent to your server when a digital product is successfully purchased. It includes product details, payment amount, and user identifiers. ```json { "name": "new_digital_product", "created_at": "2025-03-20T01:15:58.332Z", "sent_at": "2025-03-20T01:15:58.542Z", "payload": { "product_id": 456, "amount": 500, "currency": "usd", "user_id": 31326, "telegram_user_id": 12321321 } } ``` -------------------------------- ### Get Shop API Specification Source: https://wiki.tribute.tg/for-shops/api/methods.md OpenAPI 3.1.0 specification for the GET /shop endpoint. This endpoint retrieves information about the authenticated user's shop, with options to specify a shop ID. ```json {"openapi":"3.1.0","info":{"title":"Tribute Shop API","version":"1.0.0"},"tags":[{"name":"Methods","description":"Shop methods for managing orders and recurring payments.\n\n## Payment Methods\n\nAvailable payment methods depend on the order configuration:\n\n**Standard orders** (`onlyStars: false`):\n| Method | Availability |\n|--------|-------------|\n| Bank cards | Always available |\n| SBP | Available when seller has SBP enabled (can be enabled by request to Tribute support). Only for one-time orders (`period: \"onetime\"`) |\n| Wallet Pay (TON) | Always available |\n| Telegram Stars | Only when `starsAmount > 0`, period is `onetime` or `monthly`, and `tokenCharging` is disabled |\n\n**OnlyStars orders** (`onlyStars: true`, `tokenCharging` disabled, only `onetime` and `monthly` periods):\n| Method | Availability |\n|--------|-------------|\n| Telegram Stars | Always available |\n| Bank cards | Card-to-Stars flow. Available when `starsAmount >= 50` |\n\n> **Note:** Pix and PayPal are **not available** for shop orders.\n"}],"servers":[{"url":"https://tribute.tg/api/v1","description":"Tribute API v1"}],"security":[{"ApiKeyAuth":[]}], ``` ```json "components":{"securitySchemes":{"ApiKeyAuth":{"type":"apiKey","in":"header","name":"Api-Key","description":"API key for authentication."}},"schemas":{"Error":{"type":"object","required":["error","message"],"properties":{"error":{"type":"string","description":"Error code","enum":["error_bad_request","error_not_found","error_not_permitted","no_access"]},"message":{"type":"string","description":"Error description"}}}}}},"paths":{"/shop":{"get":{"summary":"Get Shop","description":"Returns shop information for the authenticated user. Only active shops are returned. Pass `?shopId=` to target a specific shop; omitting it returns the user's oldest active shop. An explicit `shopId` for an inactive (but owned) shop returns `error_shop_inactive`.","tags":["Methods"],"parameters":[{"name":"shopId","in":"query","required":false,"schema":{"type":"integer","format":"uint64"},"description":"ID of the active shop to return. Defaults to the oldest active shop owned by the authenticated user."}],"responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{"type":"object","required":["id","userId","name","link","callbackUrl","recurrent","onlyStars","status"],"properties":{"id":{"type":"integer","format":"uint64","description":"Shop ID"},"userId":{"type":"integer","description":"Shop owner user ID"},"name":{"type":"string","description":"Shop name"},"link":{"type":"string","description":"Shop link/slug"},"callbackUrl":{"type":"string","format":"uri","description":"Webhook callback URL for order notifications"},"recurrent":{"type":"boolean","description":"Whether recurring payments are available"},"onlyStars":{"type":"boolean","description":"Whether only Telegram Stars payment is accepted"},"tokenCharging":{"type":"boolean","description":"Whether merchant-initiated token charging is enabled"},"status":{"type":"integer","description":"Shop status (0 = inactive, 1 = active)","enum":[0,1]}}}}}},"401":{"description":"Unauthorized (invalid API key)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"Shop not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}}}} ``` -------------------------------- ### OpenAPI 3.1.0 Specification for Get Order Details Source: https://wiki.tribute.tg/for-content-creators/api-documentation/orders.md This OpenAPI specification defines the 'Get Order Details' endpoint, including request parameters, response schemas for successful retrieval and various error conditions, and authentication requirements. ```json { "openapi": "3.1.0", "info": { "title": "Tribute API", "version": "1.0.0" }, "tags": [ { "name": "Orders", "description": "Order operations" } ], "servers": [ { "url": "https://tribute.tg/api/v1", "description": "Tribute API v1" } ], "security": [ { "ApiKeyAuth": [] } ], "components": { "securitySchemes": { "ApiKeyAuth": { "type": "apiKey", "in": "header", "name": "Api-Key", "description": "API key for authentication." } }, "schemas": { "Order": { "type": "object", "required": [ "id", "status", "created", "fullName", "email", "phone", "telegramID", "address", "locality", "fullAddress", "customerNote", "items", "deliveryCost", "currency" ], "properties": { "id": { "type": "integer", "description": "Unique order identifier" }, "status": { "type": "string", "description": "Order status", "enum": [ "pending", "shipped", "delivered", "canceled", "refunded" ] }, "created": { "type": "string", "format": "date-time", "description": "Order creation date and time" }, "fullName": { "type": "string", "description": "Recipient full name" }, "email": { "type": "string", "format": "email", "description": "Recipient email" }, "phone": { "type": "string", "description": "Recipient phone" }, "telegramID": { "type": "integer", "format": "int64", "description": "Buyer's Telegram ID" }, "address": { "type": "object", "description": "Delivery address", "properties": { "countryIso2": { "type": "string", "description": "Two-letter ISO country code" }, "countryIso3": { "type": "string", "description": "Three-letter ISO country code" } } }, "locality": { "type": "string", "description": "City" }, "fullAddress": { "type": "string", "description": "Full delivery address" }, "customerNote": { "type": "string", "description": "Customer note" }, "items": { "type": "array", "description": "Order items", "items": { "$ref": "#/components/schemas/OrderItem" } }, "deliveryCost": { "type": "number", "format": "float", "description": "Delivery cost" }, "currency": { "type": "string", "description": "Order currency" } } }, "OrderItem": { "type": "object", "required": [ "id", "price", "quantity", "currency", "name", "attributes" ], "properties": { "id": { "type": "integer", "description": "Product variant ID" }, "price": { "type": "number", "format": "float", "description": "Unit price" }, "quantity": { "type": "integer", "format": "int64", "description": "Quantity" }, "currency": { "type": "string", "description": "Currency" }, "name": { "type": "string", "description": "Product name" }, "attributes": { "type": "object", "description": "Product attributes (size, color, etc.)", "additionalProperties": { "type": "string" } } } }, "Error": { "type": "object", "required": [ "error", "message" ], "properties": { "error": { "type": "string", "description": "Error code", "enum": [ "error_bad_request", "error_not_found", "error_not_permitted", "no_access" ] }, "message": { "type": "string", "description": "Error description" } } } } }, "paths": { "/physical/orders/{id}": { "get": { "summary": "Get Order Details", "description": "Returns detailed information about a specific order", "tags": [ "Orders" ], "parameters": [ { "name": "id", "in": "path", "description": "Order ID", "required": true, "schema": { "type": "integer" } } ], "responses": { "200": { "description": "Successful response", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Order" } } } }, "400": { "description": "Bad request (order ID not provided)", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error" } } } }, "401": { "description": "Unauthorized (invalid API key)", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error" } } } }, "404": { "description": "Order not found", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error" } } } } } } } } } ``` -------------------------------- ### Query Documentation Dynamically Source: https://wiki.tribute.tg/for-content-creators/donations/regular-donations.md Use this method to ask questions about the documentation. The response includes a direct answer and relevant excerpts. ```HTTP GET https://wiki.tribute.tg/for-content-creators/donations/regular-donations.md?ask= ``` -------------------------------- ### Query Documentation Dynamically Source: https://wiki.tribute.tg/for-content-creators/fees-limits-currencies.md Use this method to ask questions about the documentation. The response includes direct answers and relevant excerpts. ```HTTP GET https://wiki.tribute.tg/for-content-creators/fees-limits-currencies.md?ask= ``` -------------------------------- ### Get Shop Order Transactions Source: https://wiki.tribute.tg/for-shops/api/methods.md Retrieves a list of transactions for a specific shop order. Supports pagination to fetch data in chunks. ```APIDOC ## Get Shop Order Transactions ### Description Retrieves a list of transactions for a specific shop order. Supports pagination to fetch data in chunks. ### Method GET ### Endpoint /shops/{shopId}/orders/{orderId}/transactions ### Parameters #### Path Parameters - **shopId** (string) - Required - The ID of the shop. - **orderId** (string) - Required - The ID of the order. #### Query Parameters - **nextFrom** (string) - Optional - Offset for the next page. Use the value returned in the `nextFrom` field of the previous response to paginate. ### Response #### Success Response (200) - **transactions** (array) - A list of transaction objects. - **nextFrom** (string) - Offset for the next page. Empty string if no more pages. #### Response Example { "transactions": [ { "transactionId": "txn_123", "amount": 100.50, "currency": "USD", "timestamp": "2023-10-27T10:00:00Z" } ], "nextFrom": "offset_abc" } #### Error Responses - **401** Unauthorized (invalid API key) - **403** Forbidden (access denied) - **404** Order or shop not found ``` -------------------------------- ### Get Shop Order Status Source: https://wiki.tribute.tg/for-shops/api/methods.md Returns the current status of a specific shop order by its UUID. This endpoint is only accessible by the shop owner. ```APIDOC ## GET /shop/orders/{orderUuid}/status ### Description Returns the current status of a specific shop order by its UUID. Only accessible by the shop owner. ### Method GET ### Endpoint /shop/orders/{orderUuid}/status ### Parameters #### Path Parameters - **orderUuid** (string) - Required - Order UUID ### Response #### Success Response (200) - **status** (string) - Order status (enum: "pending", "paid", "failed") #### Response Example ```json { "status": "paid" } ``` #### Error Responses - **401** - Unauthorized (invalid API key) - **403** - Forbidden (order belongs to another shop) - **404** - Order or shop not found ``` -------------------------------- ### Get Order Details Source: https://wiki.tribute.tg/for-content-creators/api-documentation/orders.md Retrieves detailed information about a specific order using its unique identifier. This endpoint is part of the Orders API. ```APIDOC ## GET /physical/orders/{id} ### Description Returns detailed information about a specific order. ### Method GET ### Endpoint /physical/orders/{id} ### Parameters #### Path Parameters - **id** (integer) - Required - Order ID ### Responses #### Success Response (200) - **Order** (object) - Successful response containing order details. #### Error Response (400) - **Error** (object) - Bad request (order ID not provided). #### Error Response (401) - **Error** (object) - Unauthorized (invalid API key). #### Error Response (404) - **Error** (object) - Order not found. ``` -------------------------------- ### Query Documentation Page Source: https://wiki.tribute.tg/for-content-creators/affiliate-program.md To ask questions about the documentation and receive direct answers, perform an HTTP GET request on the page URL with the 'ask' query parameter. The question should be specific and in natural language. ```HTTP GET https://wiki.tribute.tg/for-content-creators/affiliate-program.md?ask= ``` -------------------------------- ### Get Products List Source: https://wiki.tribute.tg/for-content-creators/api-documentation/products.md Retrieves a paginated list of products. You can filter and sort the results by type, page number, and items per page. ```APIDOC ## GET /products ### Description Returns a paginated list of products. ### Method GET ### Endpoint /products ### Parameters #### Query Parameters - **page** (integer) - Optional - Page number, defaults to 1. Minimum value is 1. - **size** (integer) - Optional - Items per page, defaults to 20. Minimum value is 1, maximum value is 100. - **type** (string) - Optional - Filter by product type. Allowed values: `digital`, `custom`, `physical`. - **desc** (boolean) - Optional - Sort by ID descending, defaults to false. ### Response #### Success Response (200) - **rows** (array) - An array of Product objects. - **id** (integer) - Product ID - **type** (string) - Product type (`digital`, `custom`, `physical`) - **name** (string) - Product name - **description** (string) - Product description - **amount** (integer) - Product price in smallest currency units - **currency** (string) - Currency code (`USD`, `EUR`, `RUB`) - **starsAmount** (integer) - Price in Telegram Stars - **starsAmountEnabled** (boolean) - Whether payment with Stars is enabled - **status** (string) - Product status (`pending`, `approved`, `rejected`) - **isCustom** (boolean) - Whether this is a custom product - **acceptCards** (boolean) - Whether card payments are accepted - **acceptWalletPay** (boolean) - Whether wallet payments are accepted - **protectContent** (boolean) - Whether content protection is enabled - **created** (string) - Product creation date - **updated** (string) - Product last update date - **pendingOrders** (integer) - Number of pending orders (for custom products) - **imageUrl** (string) - Product image URL - **link** (string) - Direct link to product in Telegram app - **webLink** (string) - Web link to product - **meta** (object) - Pagination metadata. - **total** (integer) - Total number of items - **offset** (integer) - Current page number - **limit** (integer) - Page size #### Error Response (400) - **error** (string) - Error code (`error_bad_request`) - **message** (string) - Error description #### Error Response (401) - **error** (string) - Error code (`no_access`) - **message** (string) - Error description (e.g., "Unauthorized (invalid API key)") ``` -------------------------------- ### Query Documentation Dynamically Source: https://wiki.tribute.tg/faq.md Use this method to ask questions about the documentation when the answer is not explicitly present. The question should be specific and in natural language. ```http GET https://wiki.tribute.tg/faq.md?ask= ``` -------------------------------- ### Query Documentation Source: https://wiki.tribute.tg/for-content-creators/api-documentation.md How to query the documentation dynamically by asking a question using the `ask` query parameter. ```APIDOC ## GET /for-content-creators/api-documentation.md?ask= ### Description Allows dynamic querying of the documentation. You can ask specific questions to get direct answers, relevant excerpts, and sources. ### Method GET ### Endpoint https://wiki.tribute.tg/for-content-creators/api-documentation.md ### Parameters #### Query Parameters - **ask** (string) - Required - Your question in natural language. ### Usage Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections. ``` -------------------------------- ### Query Documentation with 'ask' Parameter Source: https://wiki.tribute.tg/for-content-creators/api-documentation/orders.md To get information not explicitly present on a page, append the 'ask' query parameter to the page URL with your question. The response will include an answer and relevant documentation excerpts. ```http GET https://wiki.tribute.tg/for-content-creators/api-documentation/orders.md?ask= ```