Is it possible to have a single input or output with multiple addresses
The answer here is escrow outputs.

When one of the outputs is sent to escrow, the related addresses are listed in those arrays.

Here is an example: https://insight.bitpay.com/api/tx/09dd94f2c85262173da87a745a459007bb1eed6eeb6bfa238a0cd91a16cf7790

A single output will be displayed to have multiple addresses.

Blockcypher's API will show an address starting with 4 instead of multiple adresses. And output script type = pay-to-multi-pubkey-hash

{
      "value": 10860,
      "script": "5121032487c2a32f7c8d57d2a93906a6457afd00697925b0e6e145d89af6d3bca330162102308673d16987eaa010e540901cc6fe3695e758c19f46ce604e174dac315e685a52ae",
      "addresses": [
        "4bkHBecr4EQvVUa8Lsa2kH6rGtvsC9AZ5Y"
      ],
      "script_type": "pay-to-multi-pubkey-hash"
    },