openapi: 3.0.3 info: title: ClickSend v3 Account Post Letter API description: Representative OpenAPI 3.x description of the ClickSend v3 REST API, a single cloud communications API for SMS, MMS, voice / text-to-speech, transactional email, and physical post (letters and postcards), plus contacts and lists, delivery receipts, inbound handling, and account/balance. All requests use HTTP Basic authentication with your ClickSend username and API key. This document models a representative subset of the documented endpoints; see the official reference for the complete surface. termsOfService: https://www.clicksend.com/au/legal/terms-of-service/ contact: name: ClickSend Support email: support@clicksend.com url: https://developers.clicksend.com/ version: '3.1' servers: - url: https://rest.clicksend.com/v3 description: ClickSend v3 production API security: - basicAuth: [] tags: - name: Post Letter description: Print and mail physical letters. paths: /post/letters/send: post: tags: - Post Letter operationId: postLettersSendPost summary: Print and mail one or more letters from an uploaded PDF. requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/PostLetter' responses: '200': description: Letters queued for print and mail. content: application/json: schema: $ref: '#/components/schemas/ApiResponse' /post/letters/price: post: tags: - Post Letter operationId: postLettersPricePost summary: Calculate the price of a letter before sending. requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/PostLetter' responses: '200': description: Price calculated. content: application/json: schema: $ref: '#/components/schemas/ApiResponse' /post/letters/history: get: tags: - Post Letter operationId: postLettersHistoryGet summary: Get a paginated list of sent letters. parameters: - $ref: '#/components/parameters/page' - $ref: '#/components/parameters/limit' responses: '200': description: A paginated list of letters. content: application/json: schema: $ref: '#/components/schemas/ApiResponse' /post/letters/detect-address: post: tags: - Post Letter operationId: postLettersDetectAddressPost summary: Detect and validate a delivery address on an uploaded letter PDF. requestBody: required: true content: application/json: schema: type: object properties: file_url: type: string responses: '200': description: Address detection result. content: application/json: schema: $ref: '#/components/schemas/ApiResponse' /uploads: post: tags: - Post Letter operationId: uploadsPost summary: Upload a media file (PDF, image) to reference in post, MMS, or campaigns. parameters: - name: convert in: query required: true schema: type: string enum: - mms - post - campaign requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/Upload' responses: '200': description: File uploaded; returns a referenceable URL. content: application/json: schema: $ref: '#/components/schemas/ApiResponse' components: parameters: page: name: page in: query required: false schema: type: integer default: 1 description: Page number for paginated results. limit: name: limit in: query required: false schema: type: integer default: 10 description: Number of results per page. schemas: ApiResponse: type: object properties: http_code: type: integer example: 200 response_code: type: string example: SUCCESS response_msg: type: string data: type: object PostLetter: type: object properties: file_url: type: string description: URL of the uploaded PDF to print and mail. template_used: type: integer colour: type: integer description: 1 for colour, 0 for black and white. duplex: type: integer description: 1 for double-sided, 0 for single-sided. priority_post: type: integer recipients: type: array items: $ref: '#/components/schemas/PostRecipient' required: - file_url - recipients Upload: type: object properties: content: type: string description: Base64-encoded or hosted file content reference. required: - content PostRecipient: type: object properties: address_name: type: string address_line_1: type: string address_line_2: type: string address_city: type: string address_state: type: string address_postal_code: type: string address_country: type: string return_address_id: type: integer schedule: type: integer required: - address_name - address_line_1 - address_city - address_postal_code - address_country securitySchemes: basicAuth: type: http scheme: basic description: HTTP Basic authentication using your ClickSend username and API key. The username is your ClickSend account username; the password is your API key from the ClickSend dashboard.