{
  "openapi": "3.1.0",
  "info": {
    "title": "SlickText API (Legacy Platform)",
    "version": "2026-04-29",
    "summary": "Initial machine-readable spec for the published legacy SlickText API docs.",
    "description": "This OpenAPI document captures the legacy SlickText API documented under `/docs/v1`.\n\nThe legacy platform differs materially from the newer API:\n- it uses `https://api.slicktext.com/v1`\n- it authenticates with HTTP Basic auth\n- write operations use `application/x-www-form-urlencoded`\n- several POST endpoints multiplex behavior through an `action` form field\n\nThe spec is intentionally conservative where the prose docs do not enumerate every field or every\nrequest-body variation exhaustively. Shapes remain useful for retrieval, validation, and SDK bootstrapping\nwithout overstating undocumented behavior.\n"
  },
  "jsonSchemaDialect": "https://json-schema.org/draft/2020-12/schema",
  "servers": [
    {
      "url": "https://api.slicktext.com/v1",
      "description": "Legacy API base URL"
    }
  ],
  "security": [
    {
      "basicAuth": [

      ]
    }
  ],
  "tags": [
    {
      "name": "Account"
    },
    {
      "name": "Contacts"
    },
    {
      "name": "Messages"
    },
    {
      "name": "Textwords"
    },
    {
      "name": "Text Numbers"
    },
    {
      "name": "Coupons"
    },
    {
      "name": "Contests"
    },
    {
      "name": "Opt Outs"
    },
    {
      "name": "Shortlinks"
    },
    {
      "name": "Analytics"
    },
    {
      "name": "Webhooks"
    }
  ],
  "paths": {
    "/account": {
      "get": {
        "tags": [
          "Account"
        ],
        "operationId": "getLegacyAccount",
        "summary": "Retrieve account information",
        "responses": {
          "200": {
            "description": "Account retrieved successfully.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/AccountResponse"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "500": {
            "$ref": "#/components/responses/InternalServerError"
          }
        }
      }
    },
    "/contacts": {
      "get": {
        "tags": [
          "Contacts"
        ],
        "operationId": "listLegacyContacts",
        "summary": "Retrieve all contacts",
        "description": "Supports exact-match filters on returned fields, plus `subscribedAfter` and `subscribedBefore`.",
        "parameters": [
          {
            "$ref": "#/components/parameters/Limit"
          },
          {
            "$ref": "#/components/parameters/Offset"
          },
          {
            "$ref": "#/components/parameters/SubscribedAfter"
          },
          {
            "$ref": "#/components/parameters/SubscribedBefore"
          }
        ],
        "responses": {
          "200": {
            "description": "Contacts retrieved successfully.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ContactsResponse"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "500": {
            "$ref": "#/components/responses/InternalServerError"
          }
        }
      },
      "post": {
        "tags": [
          "Contacts"
        ],
        "operationId": "mutateLegacyContactsCollection",
        "summary": "Opt in or edit a contact",
        "description": "The legacy contacts collection endpoint multiplexes several write operations through the required\n`action` form field:\n- `OPTIN`\n- `OPTINWITHAUTOREPLY`\n- `DOUBLEOPTIN`\n- `EDIT`\n",
        "requestBody": {
          "$ref": "#/components/requestBodies/LegacyContactsCollectionAction"
        },
        "responses": {
          "200": {
            "description": "Contact mutation succeeded.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ContactCollectionMutationResponse"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "500": {
            "$ref": "#/components/responses/InternalServerError"
          }
        }
      }
    },
    "/contacts/{id}": {
      "get": {
        "tags": [
          "Contacts"
        ],
        "operationId": "getLegacyContact",
        "summary": "Retrieve a specific contact",
        "parameters": [
          {
            "$ref": "#/components/parameters/Id"
          }
        ],
        "responses": {
          "200": {
            "description": "Contact retrieved successfully.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ContactsResponse"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "500": {
            "$ref": "#/components/responses/InternalServerError"
          }
        }
      },
      "post": {
        "tags": [
          "Contacts"
        ],
        "operationId": "mutateLegacyContactById",
        "summary": "Opt out or delete a contact",
        "description": "The action is selected by the required `action` form field on the resource endpoint.",
        "parameters": [
          {
            "$ref": "#/components/parameters/Id"
          }
        ],
        "requestBody": {
          "$ref": "#/components/requestBodies/LegacyContactByIdAction"
        },
        "responses": {
          "200": {
            "description": "Contact mutation succeeded.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/LegacySuccessResponse"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "500": {
            "$ref": "#/components/responses/InternalServerError"
          }
        }
      }
    },
    "/messages": {
      "get": {
        "tags": [
          "Messages"
        ],
        "operationId": "listLegacyMessages",
        "summary": "Retrieve all messages",
        "description": "Supports `limit`, `offset`, `sentAfter`, and `sentBefore` query filters.",
        "parameters": [
          {
            "$ref": "#/components/parameters/Limit"
          },
          {
            "$ref": "#/components/parameters/Offset"
          },
          {
            "$ref": "#/components/parameters/SentAfter"
          },
          {
            "$ref": "#/components/parameters/SentBefore"
          }
        ],
        "responses": {
          "200": {
            "description": "Messages retrieved successfully.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/MessagesResponse"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "500": {
            "$ref": "#/components/responses/InternalServerError"
          }
        }
      },
      "post": {
        "tags": [
          "Messages"
        ],
        "operationId": "mutateLegacyMessagesCollection",
        "summary": "Send or schedule a message",
        "description": "The action is selected by the required `action` form field and must be either `SEND` or `SCHEDULE`.",
        "requestBody": {
          "$ref": "#/components/requestBodies/LegacyMessagesCollectionAction"
        },
        "responses": {
          "200": {
            "description": "Message mutation succeeded.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/MessageResponse"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "500": {
            "$ref": "#/components/responses/InternalServerError"
          }
        }
      }
    },
    "/messages/{id}": {
      "get": {
        "tags": [
          "Messages"
        ],
        "operationId": "getLegacyMessage",
        "summary": "Retrieve a specific message",
        "parameters": [
          {
            "$ref": "#/components/parameters/Id"
          }
        ],
        "responses": {
          "200": {
            "description": "Message retrieved successfully.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/MessageResponse"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "500": {
            "$ref": "#/components/responses/InternalServerError"
          }
        }
      },
      "post": {
        "tags": [
          "Messages"
        ],
        "operationId": "deleteLegacyMessage",
        "summary": "Delete a scheduled or unsent message",
        "parameters": [
          {
            "$ref": "#/components/parameters/Id"
          }
        ],
        "requestBody": {
          "$ref": "#/components/requestBodies/LegacyMessageDeleteAction"
        },
        "responses": {
          "200": {
            "description": "Message deletion succeeded.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/LegacySuccessResponse"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "500": {
            "$ref": "#/components/responses/InternalServerError"
          }
        }
      }
    },
    "/messages/{id}/log": {
      "get": {
        "tags": [
          "Messages"
        ],
        "operationId": "getLegacyMessageLog",
        "summary": "Retrieve a message send log",
        "parameters": [
          {
            "$ref": "#/components/parameters/Id"
          },
          {
            "$ref": "#/components/parameters/PageKey"
          },
          {
            "$ref": "#/components/parameters/To"
          }
        ],
        "responses": {
          "200": {
            "description": "Message log retrieved successfully.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/MessageLogResponse"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "500": {
            "$ref": "#/components/responses/InternalServerError"
          }
        }
      }
    },
    "/textwords": {
      "get": {
        "tags": [
          "Textwords"
        ],
        "operationId": "listLegacyTextwords",
        "summary": "Retrieve all textwords",
        "parameters": [
          {
            "$ref": "#/components/parameters/Limit"
          },
          {
            "$ref": "#/components/parameters/Offset"
          }
        ],
        "responses": {
          "200": {
            "description": "Textwords retrieved successfully.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/TextwordsResponse"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "500": {
            "$ref": "#/components/responses/InternalServerError"
          }
        }
      }
    },
    "/textwords/{id}": {
      "get": {
        "tags": [
          "Textwords"
        ],
        "operationId": "getLegacyTextword",
        "summary": "Retrieve a specific textword",
        "parameters": [
          {
            "$ref": "#/components/parameters/Id"
          }
        ],
        "responses": {
          "200": {
            "description": "Textword retrieved successfully.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/TextwordResponse"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "500": {
            "$ref": "#/components/responses/InternalServerError"
          }
        }
      }
    },
    "/textwords/{id}/contacts": {
      "get": {
        "tags": [
          "Textwords"
        ],
        "operationId": "listLegacyTextwordContacts",
        "summary": "Retrieve a textword's contacts",
        "parameters": [
          {
            "$ref": "#/components/parameters/Id"
          },
          {
            "$ref": "#/components/parameters/Limit"
          },
          {
            "$ref": "#/components/parameters/Offset"
          }
        ],
        "responses": {
          "200": {
            "description": "Textword contacts retrieved successfully.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ContactsResponse"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "500": {
            "$ref": "#/components/responses/InternalServerError"
          }
        }
      },
      "post": {
        "tags": [
          "Textwords"
        ],
        "operationId": "deleteLegacyTextwordSubscribers",
        "summary": "Delete a textword's contacts",
        "parameters": [
          {
            "$ref": "#/components/parameters/Id"
          }
        ],
        "requestBody": {
          "$ref": "#/components/requestBodies/DeleteTextwordSubscribersAction"
        },
        "responses": {
          "200": {
            "description": "Contacts deleted successfully.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ContactsDeletedResponse"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "500": {
            "$ref": "#/components/responses/InternalServerError"
          }
        }
      }
    },
    "/textwords/{id}/messages": {
      "get": {
        "tags": [
          "Textwords"
        ],
        "operationId": "listLegacyTextwordMessages",
        "summary": "Retrieve a textword's messages",
        "parameters": [
          {
            "$ref": "#/components/parameters/Id"
          },
          {
            "$ref": "#/components/parameters/Limit"
          },
          {
            "$ref": "#/components/parameters/Offset"
          }
        ],
        "responses": {
          "200": {
            "description": "Textword messages retrieved successfully.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/MessagesResponse"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "500": {
            "$ref": "#/components/responses/InternalServerError"
          }
        }
      }
    },
    "/textwords/{id}/segments": {
      "get": {
        "tags": [
          "Textwords"
        ],
        "operationId": "listLegacyTextwordSegments",
        "summary": "Retrieve a textword's segments",
        "parameters": [
          {
            "$ref": "#/components/parameters/Id"
          }
        ],
        "responses": {
          "200": {
            "description": "Textword segments retrieved successfully.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/SegmentsResponse"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "500": {
            "$ref": "#/components/responses/InternalServerError"
          }
        }
      }
    },
    "/textwords/{id}/customfields": {
      "get": {
        "tags": [
          "Textwords"
        ],
        "operationId": "listLegacyTextwordCustomFields",
        "summary": "Retrieve a textword's custom fields",
        "parameters": [
          {
            "$ref": "#/components/parameters/Id"
          }
        ],
        "responses": {
          "200": {
            "description": "Custom fields retrieved successfully.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/CustomFieldsResponse"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "500": {
            "$ref": "#/components/responses/InternalServerError"
          }
        }
      }
    },
    "/coupons": {
      "get": {
        "tags": [
          "Coupons"
        ],
        "operationId": "listLegacyCoupons",
        "summary": "Retrieve all coupons",
        "parameters": [
          {
            "$ref": "#/components/parameters/Limit"
          },
          {
            "$ref": "#/components/parameters/Offset"
          }
        ],
        "responses": {
          "200": {
            "description": "Coupons retrieved successfully.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/CouponsResponse"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "500": {
            "$ref": "#/components/responses/InternalServerError"
          }
        }
      }
    },
    "/coupons/{id}": {
      "get": {
        "tags": [
          "Coupons"
        ],
        "operationId": "getLegacyCoupon",
        "summary": "Retrieve a specific coupon",
        "parameters": [
          {
            "$ref": "#/components/parameters/Id"
          }
        ],
        "responses": {
          "200": {
            "description": "Coupon retrieved successfully.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/CouponResponse"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "500": {
            "$ref": "#/components/responses/InternalServerError"
          }
        }
      }
    },
    "/contests": {
      "get": {
        "tags": [
          "Contests"
        ],
        "operationId": "listLegacyContests",
        "summary": "Retrieve all contests",
        "parameters": [
          {
            "$ref": "#/components/parameters/Limit"
          },
          {
            "$ref": "#/components/parameters/Offset"
          }
        ],
        "responses": {
          "200": {
            "description": "Contests retrieved successfully.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ContestsResponse"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "500": {
            "$ref": "#/components/responses/InternalServerError"
          }
        }
      }
    },
    "/contests/{id}": {
      "get": {
        "tags": [
          "Contests"
        ],
        "operationId": "getLegacyContest",
        "summary": "Retrieve a specific contest",
        "parameters": [
          {
            "$ref": "#/components/parameters/Id"
          }
        ],
        "responses": {
          "200": {
            "description": "Contest retrieved successfully.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ContestResponse"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "500": {
            "$ref": "#/components/responses/InternalServerError"
          }
        }
      }
    },
    "/optouts": {
      "get": {
        "tags": [
          "Opt Outs"
        ],
        "operationId": "listLegacyOptOuts",
        "summary": "Retrieve all opt outs",
        "parameters": [
          {
            "$ref": "#/components/parameters/Limit"
          },
          {
            "$ref": "#/components/parameters/Offset"
          }
        ],
        "responses": {
          "200": {
            "description": "Opt outs retrieved successfully.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/OptOutsResponse"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "500": {
            "$ref": "#/components/responses/InternalServerError"
          }
        }
      }
    },
    "/optouts/{id}": {
      "get": {
        "tags": [
          "Opt Outs"
        ],
        "operationId": "getLegacyOptOut",
        "summary": "Retrieve a specific opt out",
        "parameters": [
          {
            "$ref": "#/components/parameters/Id"
          }
        ],
        "responses": {
          "200": {
            "description": "Opt out retrieved successfully.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/OptOutResponse"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "500": {
            "$ref": "#/components/responses/InternalServerError"
          }
        }
      }
    },
    "/deactivatedNumbers": {
      "get": {
        "tags": [
          "Contacts"
        ],
        "operationId": "listLegacyDeactivatedNumbers",
        "summary": "Retrieve deactivated numbers",
        "parameters": [
          {
            "$ref": "#/components/parameters/Date"
          }
        ],
        "responses": {
          "200": {
            "description": "Deactivated numbers retrieved successfully.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/DeactivatedNumbersResponse"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "500": {
            "$ref": "#/components/responses/InternalServerError"
          }
        }
      }
    },
    "/textnumbers": {
      "get": {
        "tags": [
          "Text Numbers"
        ],
        "operationId": "listLegacyTextNumbers",
        "summary": "Retrieve all text numbers",
        "parameters": [
          {
            "$ref": "#/components/parameters/Limit"
          },
          {
            "$ref": "#/components/parameters/Offset"
          }
        ],
        "responses": {
          "200": {
            "description": "Text numbers retrieved successfully.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/TextNumbersResponse"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "500": {
            "$ref": "#/components/responses/InternalServerError"
          }
        }
      }
    },
    "/textnumbers/{id}": {
      "get": {
        "tags": [
          "Text Numbers"
        ],
        "operationId": "getLegacyTextNumber",
        "summary": "Retrieve a specific text number",
        "parameters": [
          {
            "$ref": "#/components/parameters/Id"
          }
        ],
        "responses": {
          "200": {
            "description": "Text number retrieved successfully.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/TextNumberResponse"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "500": {
            "$ref": "#/components/responses/InternalServerError"
          }
        }
      }
    },
    "/shortlinks": {
      "get": {
        "tags": [
          "Shortlinks"
        ],
        "operationId": "listLegacyShortlinks",
        "summary": "Retrieve all shortlinks",
        "parameters": [
          {
            "$ref": "#/components/parameters/Limit"
          },
          {
            "$ref": "#/components/parameters/Offset"
          }
        ],
        "responses": {
          "200": {
            "description": "Shortlinks retrieved successfully.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ShortlinksResponse"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "500": {
            "$ref": "#/components/responses/InternalServerError"
          }
        }
      }
    },
    "/shortlinks/{id}": {
      "get": {
        "tags": [
          "Shortlinks"
        ],
        "operationId": "getLegacyShortlinkById",
        "summary": "Retrieve a specific shortlink by id",
        "parameters": [
          {
            "$ref": "#/components/parameters/Id"
          }
        ],
        "responses": {
          "200": {
            "description": "Shortlink retrieved successfully.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ShortlinkResponse"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "500": {
            "$ref": "#/components/responses/InternalServerError"
          }
        }
      }
    },
    "/shortlinks/hash-{hash}": {
      "get": {
        "tags": [
          "Shortlinks"
        ],
        "operationId": "getLegacyShortlinkByHash",
        "summary": "Retrieve a specific shortlink by hash",
        "parameters": [
          {
            "$ref": "#/components/parameters/Hash"
          }
        ],
        "responses": {
          "200": {
            "description": "Shortlink retrieved successfully.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ShortlinkResponse"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "500": {
            "$ref": "#/components/responses/InternalServerError"
          }
        }
      }
    },
    "/shortlinks/{id}/contacts": {
      "get": {
        "tags": [
          "Shortlinks"
        ],
        "operationId": "listLegacyShortlinkContactsById",
        "summary": "Retrieve contacts who clicked a shortlink by id",
        "parameters": [
          {
            "$ref": "#/components/parameters/Id"
          },
          {
            "$ref": "#/components/parameters/Limit"
          },
          {
            "$ref": "#/components/parameters/Offset"
          }
        ],
        "responses": {
          "200": {
            "description": "Shortlink contacts retrieved successfully.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ContactsResponse"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "500": {
            "$ref": "#/components/responses/InternalServerError"
          }
        }
      }
    },
    "/shortlinks/hash-{hash}/contacts": {
      "get": {
        "tags": [
          "Shortlinks"
        ],
        "operationId": "listLegacyShortlinkContactsByHash",
        "summary": "Retrieve contacts who clicked a shortlink by hash",
        "parameters": [
          {
            "$ref": "#/components/parameters/Hash"
          },
          {
            "$ref": "#/components/parameters/Limit"
          },
          {
            "$ref": "#/components/parameters/Offset"
          }
        ],
        "responses": {
          "200": {
            "description": "Shortlink contacts retrieved successfully.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ContactsResponse"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "500": {
            "$ref": "#/components/responses/InternalServerError"
          }
        }
      }
    },
    "/analytics/textwords/{id}": {
      "get": {
        "tags": [
          "Analytics"
        ],
        "operationId": "getLegacyTextwordAnalytics",
        "summary": "Retrieve textword analytics",
        "parameters": [
          {
            "$ref": "#/components/parameters/Id"
          }
        ],
        "responses": {
          "200": {
            "description": "Analytics retrieved successfully.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/AnalyticsResponse"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "500": {
            "$ref": "#/components/responses/InternalServerError"
          }
        }
      }
    },
    "/analytics/messages/{id}": {
      "get": {
        "tags": [
          "Analytics"
        ],
        "operationId": "getLegacyMessageAnalytics",
        "summary": "Retrieve campaign/message analytics",
        "parameters": [
          {
            "$ref": "#/components/parameters/Id"
          }
        ],
        "responses": {
          "200": {
            "description": "Analytics retrieved successfully.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/AnalyticsResponse"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "500": {
            "$ref": "#/components/responses/InternalServerError"
          }
        }
      }
    },
    "/analytics/coupons/{id}": {
      "get": {
        "tags": [
          "Analytics"
        ],
        "operationId": "getLegacyCouponAnalytics",
        "summary": "Retrieve coupon analytics",
        "parameters": [
          {
            "$ref": "#/components/parameters/Id"
          }
        ],
        "responses": {
          "200": {
            "description": "Analytics retrieved successfully.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/AnalyticsResponse"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "500": {
            "$ref": "#/components/responses/InternalServerError"
          }
        }
      }
    }
  },
  "webhooks": {
    "legacyEventDelivery": {
      "post": {
        "tags": [
          "Webhooks"
        ],
        "summary": "Legacy webhook delivery",
        "description": "Legacy webhook deliveries POST a single form field named `data` containing a JSON string payload.\nRequests include `X-Slicktext-Signature`, an HMAC-MD5 hexadecimal digest of the `data` field using\nyour webhook secret as the key.\n",
        "parameters": [
          {
            "$ref": "#/components/parameters/LegacyWebhookSignature"
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/x-www-form-urlencoded": {
              "schema": {
                "type": "object",
                "required": [
                  "data"
                ],
                "properties": {
                  "data": {
                    "type": "string",
                    "description": "JSON string containing the event payload."
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Return a 2xx response within 5 seconds to acknowledge receipt."
          }
        }
      }
    }
  },
  "components": {
    "securitySchemes": {
      "basicAuth": {
        "type": "http",
        "scheme": "basic",
        "description": "Supply your public key as the username and your private key as the password."
      }
    },
    "parameters": {
      "Id": {
        "name": "id",
        "in": "path",
        "required": true,
        "schema": {
          "type": "string"
        },
        "description": "Resource identifier."
      },
      "Hash": {
        "name": "hash",
        "in": "path",
        "required": true,
        "schema": {
          "type": "string"
        },
        "description": "Shortlink hash."
      },
      "Limit": {
        "name": "limit",
        "in": "query",
        "schema": {
          "type": "integer",
          "minimum": 1,
          "maximum": 10000
        },
        "description": "Number of items to return. The legacy docs default to 20 and allow up to 10,000."
      },
      "Offset": {
        "name": "offset",
        "in": "query",
        "schema": {
          "type": "integer",
          "minimum": 0
        },
        "description": "Number of items to skip before returning results."
      },
      "SubscribedAfter": {
        "name": "subscribedAfter",
        "in": "query",
        "schema": {
          "type": "string"
        },
        "description": "Return contacts subscribed after the given `YYYY-MM-DD HH:MM:SS` timestamp in Pacific time."
      },
      "SubscribedBefore": {
        "name": "subscribedBefore",
        "in": "query",
        "schema": {
          "type": "string"
        },
        "description": "Return contacts subscribed before the given `YYYY-MM-DD HH:MM:SS` timestamp in Pacific time."
      },
      "SentAfter": {
        "name": "sentAfter",
        "in": "query",
        "schema": {
          "type": "string"
        },
        "description": "Return messages sent after the given `YYYY-MM-DD HH:MM:SS` timestamp in Pacific time."
      },
      "SentBefore": {
        "name": "sentBefore",
        "in": "query",
        "schema": {
          "type": "string"
        },
        "description": "Return messages sent before the given `YYYY-MM-DD HH:MM:SS` timestamp in Pacific time."
      },
      "PageKey": {
        "name": "pageKey",
        "in": "query",
        "schema": {
          "type": "string"
        },
        "description": "Pagination cursor for message send logs."
      },
      "To": {
        "name": "to",
        "in": "query",
        "schema": {
          "type": "string"
        },
        "description": "Filter message log items by destination phone number."
      },
      "Date": {
        "name": "date",
        "in": "query",
        "schema": {
          "type": "string",
          "format": "date"
        },
        "description": "Date filter for retrieving deactivated numbers."
      },
      "LegacyWebhookSignature": {
        "name": "X-Slicktext-Signature",
        "in": "header",
        "required": true,
        "schema": {
          "type": "string"
        },
        "description": "HMAC-MD5 hex digest of the `data` form field using the webhook secret."
      }
    },
    "requestBodies": {
      "LegacyContactsCollectionAction": {
        "required": true,
        "content": {
          "application/x-www-form-urlencoded": {
            "schema": {
              "oneOf": [
                {
                  "$ref": "#/components/schemas/LegacyContactOptInRequest"
                },
                {
                  "$ref": "#/components/schemas/LegacyContactOptInWithAutoReplyRequest"
                },
                {
                  "$ref": "#/components/schemas/LegacyContactDoubleOptInRequest"
                },
                {
                  "$ref": "#/components/schemas/LegacyContactEditRequest"
                }
              ]
            },
            "examples": {
              "optIn": {
                "summary": "Opt in a contact without an auto reply",
                "value": {
                  "action": "OPTIN",
                  "textword": 43434439,
                  "number": "+13334445555",
                  "firstName": "John",
                  "lastName": "Smith"
                }
              },
              "doubleOptIn": {
                "summary": "Start double opt in for a contact",
                "value": {
                  "action": "DOUBLEOPTIN",
                  "textword": 43434439,
                  "number": "+13334445555",
                  "doubleOptInMessage": "Reply YES to confirm your subscription."
                }
              }
            }
          }
        }
      },
      "LegacyContactByIdAction": {
        "required": true,
        "content": {
          "application/x-www-form-urlencoded": {
            "schema": {
              "oneOf": [
                {
                  "$ref": "#/components/schemas/LegacyContactOptOutRequest"
                },
                {
                  "$ref": "#/components/schemas/LegacyDeleteRequest"
                }
              ]
            },
            "examples": {
              "optOut": {
                "summary": "Record an irreversible opt out",
                "value": {
                  "action": "OPTOUT"
                }
              },
              "delete": {
                "summary": "Remove the contact from the list without recording an opt out",
                "value": {
                  "action": "DELETE"
                }
              }
            }
          }
        }
      },
      "LegacyMessagesCollectionAction": {
        "required": true,
        "content": {
          "application/x-www-form-urlencoded": {
            "schema": {
              "oneOf": [
                {
                  "$ref": "#/components/schemas/LegacyMessageSendRequest"
                },
                {
                  "$ref": "#/components/schemas/LegacyMessageScheduleRequest"
                }
              ]
            },
            "examples": {
              "send": {
                "summary": "Send a message immediately",
                "value": {
                  "action": "SEND",
                  "textword": 111,
                  "body": "API demo message",
                  "campaign": "API demo"
                }
              },
              "schedule": {
                "summary": "Schedule a message for later delivery",
                "value": {
                  "action": "SCHEDULE",
                  "textword": 111,
                  "body": "Scheduled API demo message",
                  "scheduled": "2013-06-23 20:45:00"
                }
              }
            }
          }
        }
      },
      "LegacyMessageDeleteAction": {
        "required": true,
        "content": {
          "application/x-www-form-urlencoded": {
            "schema": {
              "$ref": "#/components/schemas/LegacyDeleteRequest"
            }
          }
        }
      },
      "DeleteTextwordSubscribersAction": {
        "required": true,
        "content": {
          "application/x-www-form-urlencoded": {
            "schema": {
              "$ref": "#/components/schemas/LegacyDeleteSubscribersRequest"
            }
          }
        }
      }
    },
    "responses": {
      "BadRequest": {
        "description": "Bad Request",
        "content": {
          "application/json": {
            "schema": {
              "$ref": "#/components/schemas/LegacyErrorResponse"
            }
          }
        }
      },
      "Forbidden": {
        "description": "Forbidden",
        "content": {
          "application/json": {
            "schema": {
              "$ref": "#/components/schemas/LegacyErrorResponse"
            }
          }
        }
      },
      "NotFound": {
        "description": "Not Found",
        "content": {
          "application/json": {
            "schema": {
              "$ref": "#/components/schemas/LegacyErrorResponse"
            }
          }
        }
      },
      "InternalServerError": {
        "description": "Internal Server Error",
        "content": {
          "application/json": {
            "schema": {
              "$ref": "#/components/schemas/LegacyErrorResponse"
            }
          }
        }
      }
    },
    "schemas": {
      "LegacyMeta": {
        "type": "object",
        "properties": {
          "limit": {
            "type": [
              "integer",
              "string",
              "null"
            ]
          },
          "offset": {
            "type": [
              "integer",
              "string",
              "null"
            ]
          },
          "total": {
            "type": [
              "integer",
              "string",
              "null"
            ]
          },
          "success": {
            "type": [
              "boolean",
              "string",
              "null"
            ]
          },
          "link": {
            "type": [
              "string",
              "null"
            ]
          }
        },
        "additionalProperties": true
      },
      "LegacyLinks": {
        "type": "object",
        "properties": {
          "self": {
            "type": [
              "string",
              "null"
            ]
          },
          "next": {
            "type": [
              "string",
              "null"
            ]
          },
          "message": {
            "type": [
              "string",
              "null"
            ]
          }
        },
        "additionalProperties": true
      },
      "LegacyErrorResponse": {
        "type": "object",
        "properties": {
          "meta": {
            "$ref": "#/components/schemas/LegacyMeta"
          },
          "error": {
            "type": "object",
            "properties": {
              "message": {
                "type": "string"
              }
            },
            "additionalProperties": true
          }
        },
        "additionalProperties": true
      },
      "LegacySuccessResponse": {
        "type": "object",
        "properties": {
          "meta": {
            "$ref": "#/components/schemas/LegacyMeta"
          }
        },
        "additionalProperties": true
      },
      "Account": {
        "type": "object",
        "properties": {
          "id": {
            "type": [
              "integer",
              "string",
              "null"
            ]
          },
          "company": {
            "type": [
              "string",
              "null"
            ]
          },
          "characterLimit": {
            "type": [
              "integer",
              "string",
              "null"
            ]
          }
        },
        "additionalProperties": true
      },
      "Contact": {
        "type": "object",
        "properties": {
          "id": {
            "type": [
              "integer",
              "string"
            ]
          },
          "number": {
            "type": [
              "string",
              "null"
            ]
          },
          "city": {
            "type": [
              "string",
              "null"
            ]
          },
          "state": {
            "type": [
              "string",
              "null"
            ]
          },
          "zipCode": {
            "type": [
              "integer",
              "string",
              "null"
            ]
          },
          "country": {
            "type": [
              "string",
              "null"
            ]
          },
          "textword": {
            "type": [
              "integer",
              "string",
              "null"
            ]
          },
          "subscribedDate": {
            "type": [
              "string",
              "null"
            ]
          },
          "firstName": {
            "type": [
              "string",
              "null"
            ]
          },
          "lastName": {
            "type": [
              "string",
              "null"
            ]
          },
          "birthDate": {
            "type": [
              "string",
              "null"
            ]
          },
          "email": {
            "type": [
              "string",
              "null"
            ]
          },
          "optInMethod": {
            "type": [
              "string",
              "null"
            ]
          }
        },
        "additionalProperties": true
      },
      "Message": {
        "type": "object",
        "properties": {
          "id": {
            "type": [
              "integer",
              "string"
            ]
          },
          "campaign": {
            "type": [
              "string",
              "null"
            ]
          },
          "body": {
            "type": [
              "string",
              "null"
            ]
          },
          "textword": {
            "type": [
              "integer",
              "string",
              "null"
            ]
          },
          "contact": {
            "type": [
              "integer",
              "string",
              "null"
            ]
          },
          "contactID": {
            "type": [
              "integer",
              "string",
              "null"
            ]
          },
          "count": {
            "type": [
              "integer",
              "string",
              "null"
            ]
          },
          "deleted": {
            "type": [
              "integer",
              "string",
              "null"
            ]
          },
          "sent": {
            "type": [
              "string",
              "null"
            ]
          },
          "scheduled": {
            "type": [
              "string",
              "null"
            ]
          },
          "source": {
            "type": [
              "string",
              "null"
            ]
          },
          "mediaUrl": {
            "type": [
              "string",
              "null"
            ]
          }
        },
        "additionalProperties": true
      },
      "Textword": {
        "type": "object",
        "properties": {
          "id": {
            "type": [
              "integer",
              "string"
            ]
          },
          "word": {
            "type": [
              "string",
              "null"
            ]
          },
          "autoReply": {
            "type": [
              "string",
              "null"
            ]
          },
          "added": {
            "type": [
              "string",
              "null"
            ]
          },
          "optOuts": {
            "type": [
              "integer",
              "string",
              "null"
            ]
          },
          "contactsCount": {
            "type": [
              "integer",
              "string",
              "null"
            ]
          },
          "textNumber": {
            "type": [
              "integer",
              "string",
              "null"
            ]
          }
        },
        "additionalProperties": true
      },
      "Coupon": {
        "type": "object",
        "additionalProperties": true
      },
      "Contest": {
        "type": "object",
        "additionalProperties": true
      },
      "OptOut": {
        "type": "object",
        "additionalProperties": true
      },
      "TextNumber": {
        "type": "object",
        "additionalProperties": true
      },
      "Shortlink": {
        "type": "object",
        "properties": {
          "id": {
            "type": [
              "integer",
              "string"
            ]
          },
          "name": {
            "type": [
              "string",
              "null"
            ]
          },
          "url": {
            "type": [
              "string",
              "null"
            ]
          },
          "hash": {
            "type": [
              "string",
              "null"
            ]
          },
          "clickCount": {
            "type": [
              "integer",
              "string",
              "null"
            ]
          },
          "isSmart": {
            "type": [
              "integer",
              "string",
              "null"
            ]
          },
          "created": {
            "type": [
              "string",
              "null"
            ]
          },
          "shortUrl": {
            "type": [
              "string",
              "null"
            ]
          }
        },
        "additionalProperties": true
      },
      "Segment": {
        "type": "object",
        "additionalProperties": true
      },
      "CustomField": {
        "type": "object",
        "additionalProperties": true
      },
      "AccountResponse": {
        "type": "object",
        "properties": {
          "links": {
            "$ref": "#/components/schemas/LegacyLinks"
          },
          "account": {
            "$ref": "#/components/schemas/Account"
          }
        },
        "additionalProperties": true
      },
      "ContactsResponse": {
        "type": "object",
        "properties": {
          "meta": {
            "$ref": "#/components/schemas/LegacyMeta"
          },
          "links": {
            "$ref": "#/components/schemas/LegacyLinks"
          },
          "contacts": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/Contact"
            }
          }
        },
        "additionalProperties": true
      },
      "ContactMutationResponse": {
        "type": "object",
        "properties": {
          "meta": {
            "$ref": "#/components/schemas/LegacyMeta"
          },
          "links": {
            "$ref": "#/components/schemas/LegacyLinks"
          },
          "contact": {
            "$ref": "#/components/schemas/Contact"
          }
        },
        "additionalProperties": true
      },
      "PendingContactMutationResponse": {
        "type": "object",
        "properties": {
          "meta": {
            "$ref": "#/components/schemas/LegacyMeta"
          },
          "links": {
            "$ref": "#/components/schemas/LegacyLinks"
          },
          "pendingContact": {
            "$ref": "#/components/schemas/Contact"
          }
        },
        "additionalProperties": true
      },
      "ContactCollectionMutationResponse": {
        "oneOf": [
          {
            "$ref": "#/components/schemas/ContactMutationResponse"
          },
          {
            "$ref": "#/components/schemas/PendingContactMutationResponse"
          }
        ]
      },
      "MessagesResponse": {
        "type": "object",
        "properties": {
          "meta": {
            "$ref": "#/components/schemas/LegacyMeta"
          },
          "links": {
            "$ref": "#/components/schemas/LegacyLinks"
          },
          "messages": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/Message"
            }
          }
        },
        "additionalProperties": true
      },
      "MessageResponse": {
        "type": "object",
        "properties": {
          "meta": {
            "$ref": "#/components/schemas/LegacyMeta"
          },
          "links": {
            "$ref": "#/components/schemas/LegacyLinks"
          },
          "message": {
            "$ref": "#/components/schemas/Message"
          }
        },
        "additionalProperties": true
      },
      "MessageLogItem": {
        "type": "object",
        "properties": {
          "contact": {
            "type": [
              "integer",
              "string",
              "null"
            ]
          },
          "to": {
            "type": [
              "string",
              "null"
            ]
          },
          "from": {
            "type": [
              "string",
              "null"
            ]
          },
          "status": {
            "type": [
              "string",
              "null"
            ],
            "enum": [
              "failed",
              "sent to carrier",
              "delivered",
              "undelivered",
              null
            ]
          },
          "created": {
            "type": [
              "string",
              "null"
            ]
          },
          "updated": {
            "type": [
              "string",
              "null"
            ]
          }
        },
        "additionalProperties": true
      },
      "MessageLogMeta": {
        "allOf": [
          {
            "$ref": "#/components/schemas/LegacyMeta"
          },
          {
            "type": "object",
            "properties": {
              "isLastPage": {
                "type": [
                  "integer",
                  "boolean",
                  "string",
                  "null"
                ]
              },
              "nextPageKey": {
                "type": [
                  "string",
                  "null"
                ]
              }
            }
          }
        ]
      },
      "MessageLogResponse": {
        "type": "object",
        "properties": {
          "meta": {
            "$ref": "#/components/schemas/MessageLogMeta"
          },
          "links": {
            "$ref": "#/components/schemas/LegacyLinks"
          },
          "items": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/MessageLogItem"
            }
          }
        },
        "additionalProperties": true
      },
      "TextwordsResponse": {
        "type": "object",
        "properties": {
          "meta": {
            "$ref": "#/components/schemas/LegacyMeta"
          },
          "links": {
            "$ref": "#/components/schemas/LegacyLinks"
          },
          "textwords": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/Textword"
            }
          }
        },
        "additionalProperties": true
      },
      "TextwordResponse": {
        "type": "object",
        "properties": {
          "links": {
            "$ref": "#/components/schemas/LegacyLinks"
          },
          "textword": {
            "$ref": "#/components/schemas/Textword"
          }
        },
        "additionalProperties": true
      },
      "SegmentsResponse": {
        "type": "object",
        "properties": {
          "meta": {
            "$ref": "#/components/schemas/LegacyMeta"
          },
          "links": {
            "$ref": "#/components/schemas/LegacyLinks"
          },
          "segments": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/Segment"
            }
          }
        },
        "additionalProperties": true
      },
      "CustomFieldsResponse": {
        "type": "object",
        "properties": {
          "meta": {
            "$ref": "#/components/schemas/LegacyMeta"
          },
          "links": {
            "$ref": "#/components/schemas/LegacyLinks"
          },
          "customfields": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/CustomField"
            }
          }
        },
        "additionalProperties": true
      },
      "CouponsResponse": {
        "type": "object",
        "properties": {
          "meta": {
            "$ref": "#/components/schemas/LegacyMeta"
          },
          "links": {
            "$ref": "#/components/schemas/LegacyLinks"
          },
          "coupons": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/Coupon"
            }
          }
        },
        "additionalProperties": true
      },
      "CouponResponse": {
        "type": "object",
        "properties": {
          "links": {
            "$ref": "#/components/schemas/LegacyLinks"
          },
          "coupon": {
            "$ref": "#/components/schemas/Coupon"
          }
        },
        "additionalProperties": true
      },
      "ContestsResponse": {
        "type": "object",
        "properties": {
          "meta": {
            "$ref": "#/components/schemas/LegacyMeta"
          },
          "links": {
            "$ref": "#/components/schemas/LegacyLinks"
          },
          "contests": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/Contest"
            }
          }
        },
        "additionalProperties": true
      },
      "ContestResponse": {
        "type": "object",
        "properties": {
          "links": {
            "$ref": "#/components/schemas/LegacyLinks"
          },
          "contest": {
            "$ref": "#/components/schemas/Contest"
          }
        },
        "additionalProperties": true
      },
      "OptOutsResponse": {
        "type": "object",
        "properties": {
          "meta": {
            "$ref": "#/components/schemas/LegacyMeta"
          },
          "links": {
            "$ref": "#/components/schemas/LegacyLinks"
          },
          "optouts": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/OptOut"
            }
          }
        },
        "additionalProperties": true
      },
      "OptOutResponse": {
        "type": "object",
        "properties": {
          "links": {
            "$ref": "#/components/schemas/LegacyLinks"
          },
          "optout": {
            "$ref": "#/components/schemas/OptOut"
          }
        },
        "additionalProperties": true
      },
      "DeactivatedNumbersResponse": {
        "type": "object",
        "additionalProperties": true
      },
      "TextNumbersResponse": {
        "type": "object",
        "properties": {
          "meta": {
            "$ref": "#/components/schemas/LegacyMeta"
          },
          "links": {
            "$ref": "#/components/schemas/LegacyLinks"
          },
          "textnumbers": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/TextNumber"
            }
          }
        },
        "additionalProperties": true
      },
      "TextNumberResponse": {
        "type": "object",
        "properties": {
          "links": {
            "$ref": "#/components/schemas/LegacyLinks"
          },
          "textnumber": {
            "$ref": "#/components/schemas/TextNumber"
          }
        },
        "additionalProperties": true
      },
      "ShortlinksResponse": {
        "type": "object",
        "properties": {
          "meta": {
            "$ref": "#/components/schemas/LegacyMeta"
          },
          "links": {
            "$ref": "#/components/schemas/LegacyLinks"
          },
          "shortlinks": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/Shortlink"
            }
          }
        },
        "additionalProperties": true
      },
      "ShortlinkResponse": {
        "type": "object",
        "properties": {
          "links": {
            "$ref": "#/components/schemas/LegacyLinks"
          },
          "shortlink": {
            "$ref": "#/components/schemas/Shortlink"
          }
        },
        "additionalProperties": true
      },
      "AnalyticsResponse": {
        "type": "object",
        "description": "Analytics payloads vary across legacy endpoints.",
        "additionalProperties": true
      },
      "ContactsDeletedResponse": {
        "type": "object",
        "properties": {
          "meta": {
            "$ref": "#/components/schemas/LegacyMeta"
          },
          "contactsDeleted": {
            "type": [
              "integer",
              "string"
            ]
          }
        },
        "additionalProperties": true
      },
      "LegacyActionBase": {
        "type": "object",
        "properties": {
          "action": {
            "type": "string"
          }
        },
        "required": [
          "action"
        ],
        "additionalProperties": true
      },
      "LegacyContactOptInRequest": {
        "allOf": [
          {
            "$ref": "#/components/schemas/LegacyActionBase"
          },
          {
            "type": "object",
            "properties": {
              "action": {
                "const": "OPTIN"
              },
              "textword": {
                "type": [
                  "integer",
                  "string"
                ]
              },
              "number": {
                "type": "string"
              }
            },
            "required": [
              "action",
              "textword",
              "number"
            ]
          }
        ]
      },
      "LegacyContactOptInWithAutoReplyRequest": {
        "allOf": [
          {
            "$ref": "#/components/schemas/LegacyActionBase"
          },
          {
            "type": "object",
            "properties": {
              "action": {
                "const": "OPTINWITHAUTOREPLY"
              },
              "textword": {
                "type": [
                  "integer",
                  "string"
                ]
              },
              "number": {
                "type": "string"
              }
            },
            "required": [
              "action",
              "textword",
              "number"
            ]
          }
        ]
      },
      "LegacyContactDoubleOptInRequest": {
        "allOf": [
          {
            "$ref": "#/components/schemas/LegacyActionBase"
          },
          {
            "type": "object",
            "properties": {
              "action": {
                "const": "DOUBLEOPTIN"
              },
              "textword": {
                "type": [
                  "integer",
                  "string"
                ]
              },
              "number": {
                "type": "string"
              },
              "doubleOptInMessage": {
                "type": "string"
              }
            },
            "required": [
              "action",
              "textword",
              "number"
            ]
          }
        ]
      },
      "LegacyContactEditRequest": {
        "allOf": [
          {
            "$ref": "#/components/schemas/LegacyActionBase"
          },
          {
            "type": "object",
            "properties": {
              "action": {
                "const": "EDIT"
              },
              "id": {
                "type": [
                  "integer",
                  "string"
                ]
              },
              "textword": {
                "type": [
                  "integer",
                  "string"
                ]
              },
              "number": {
                "type": "string"
              }
            },
            "required": [
              "action"
            ],
            "anyOf": [
              {
                "required": [
                  "id"
                ]
              },
              {
                "required": [
                  "textword",
                  "number"
                ]
              }
            ]
          }
        ]
      },
      "LegacyContactOptOutRequest": {
        "allOf": [
          {
            "$ref": "#/components/schemas/LegacyActionBase"
          },
          {
            "type": "object",
            "properties": {
              "action": {
                "const": "OPTOUT"
              }
            },
            "required": [
              "action"
            ]
          }
        ]
      },
      "LegacyDeleteRequest": {
        "allOf": [
          {
            "$ref": "#/components/schemas/LegacyActionBase"
          },
          {
            "type": "object",
            "properties": {
              "action": {
                "const": "DELETE"
              }
            },
            "required": [
              "action"
            ]
          }
        ]
      },
      "LegacyDeleteSubscribersRequest": {
        "allOf": [
          {
            "$ref": "#/components/schemas/LegacyActionBase"
          },
          {
            "type": "object",
            "properties": {
              "action": {
                "const": "DELETESUBSCRIBERS"
              }
            },
            "required": [
              "action"
            ]
          }
        ]
      },
      "LegacyMessageSendRequest": {
        "allOf": [
          {
            "$ref": "#/components/schemas/LegacyActionBase"
          },
          {
            "type": "object",
            "properties": {
              "action": {
                "const": "SEND"
              },
              "textword": {
                "type": [
                  "integer",
                  "string"
                ]
              },
              "contact": {
                "type": [
                  "integer",
                  "string"
                ]
              },
              "body": {
                "type": "string"
              },
              "campaign": {
                "type": "string"
              },
              "segment": {
                "type": [
                  "integer",
                  "string"
                ]
              },
              "mediaUrl": {
                "type": "string"
              }
            },
            "required": [
              "action",
              "body"
            ],
            "anyOf": [
              {
                "required": [
                  "textword"
                ]
              },
              {
                "required": [
                  "contact"
                ]
              }
            ]
          }
        ]
      },
      "LegacyMessageScheduleRequest": {
        "allOf": [
          {
            "$ref": "#/components/schemas/LegacyActionBase"
          },
          {
            "type": "object",
            "properties": {
              "action": {
                "const": "SCHEDULE"
              },
              "textword": {
                "type": [
                  "integer",
                  "string"
                ]
              },
              "contact": {
                "type": [
                  "integer",
                  "string"
                ]
              },
              "body": {
                "type": "string"
              },
              "scheduled": {
                "type": "string"
              },
              "campaign": {
                "type": "string"
              },
              "segment": {
                "type": [
                  "integer",
                  "string"
                ]
              },
              "mediaUrl": {
                "type": "string"
              }
            },
            "required": [
              "action",
              "body",
              "scheduled"
            ],
            "anyOf": [
              {
                "required": [
                  "textword"
                ]
              },
              {
                "required": [
                  "contact"
                ]
              }
            ]
          }
        ]
      }
    }
  }
}
