Executando verificação de segurança...
1

Particularmente, gerenciaria isso com uma interface:

interface ExternalInfoInterface
{
    public function call(): void;
    public function response(): array;
}
   
readonly class ApiX implements ExternalInfoInterface
{
    private $response; 
    
    public function call(): void
    {
        $this->response = Http::get('link');
        // não esqueça de tratar os erros
    }
    
    public function response(): array
    {
        return $this->response; 
    }
}

readonly class ApiY implements ExternalInfoInterface
{ 
    //mesma coisa 
}

readonly class ApiA implements ExternalInfoInterface
{ 
    //mesma coisa 
}

No exemplo eu separei a call() da response() por puro costume de separar bem separado as responsabilidade dos métodos, faça como achar melhor para você. Gosto assim.

Prefiro trabalhar orientado a interfaces ao invez de herança (explicação melhor aqui).