openapi: 3.0.1 info: title: Textmagic REST Bulk Templates API description: The Textmagic REST API (v2) provides programmatic access to the Textmagic business text-messaging platform. Send and receive SMS, manage contacts and lists, schedule and template messages, run two-way chats, and administer sender IDs and dedicated numbers. All requests are authenticated with the X-TM-Username and X-TM-Key headers. termsOfService: https://www.textmagic.com/terms-of-service/ contact: name: Textmagic Support email: support@textmagic.com url: https://docs.textmagic.com/ version: '2.0' servers: - url: https://rest.textmagic.com/api/v2 security: - TmUsername: [] TmKey: [] tags: - name: Templates description: Manage reusable message templates. paths: /templates: get: operationId: getTemplates tags: - Templates summary: Get all templates parameters: - $ref: '#/components/parameters/Page' - $ref: '#/components/parameters/Limit' responses: '200': description: A paginated list of templates. content: application/json: schema: $ref: '#/components/schemas/TemplateList' post: operationId: createTemplate tags: - Templates summary: Create a template requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/TemplateRequest' responses: '201': description: The created template's identifier. content: application/json: schema: $ref: '#/components/schemas/ResourceLink' /templates/{id}: get: operationId: getTemplate tags: - Templates summary: Get a template's details parameters: - $ref: '#/components/parameters/IdPath' responses: '200': description: A single template. content: application/json: schema: $ref: '#/components/schemas/Template' '404': $ref: '#/components/responses/NotFound' put: operationId: updateTemplate tags: - Templates summary: Update a template parameters: - $ref: '#/components/parameters/IdPath' requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/TemplateRequest' responses: '200': description: The updated template's identifier. content: application/json: schema: $ref: '#/components/schemas/ResourceLink' delete: operationId: deleteTemplate tags: - Templates summary: Delete a template parameters: - $ref: '#/components/parameters/IdPath' responses: '204': description: The template was deleted. components: parameters: Limit: name: limit in: query schema: type: integer default: 10 description: Number of items per page. Page: name: page in: query schema: type: integer default: 1 description: Page number for pagination. IdPath: name: id in: path required: true schema: type: integer description: The resource identifier. schemas: TemplateList: type: object properties: page: type: integer limit: type: integer pageCount: type: integer resources: type: array items: $ref: '#/components/schemas/Template' ResourceLink: type: object properties: id: type: integer href: type: string TemplateRequest: type: object properties: name: type: string content: type: string required: - name - content Template: type: object properties: id: type: integer name: type: string content: type: string lastModified: type: string format: date-time Error: type: object properties: message: type: string code: type: integer errors: type: object responses: NotFound: description: The requested resource was not found. content: application/json: schema: $ref: '#/components/schemas/Error' securitySchemes: TmUsername: type: apiKey in: header name: X-TM-Username description: Your Textmagic account username. TmKey: type: apiKey in: header name: X-TM-Key description: Your Textmagic API key, generated in the account settings.