Brazilian Bus Websites
The National Land Transport Agency has a search facility where you can type in the name of the origin and destination cities and search for all companies that provide services between these two points. In theory. It does work pretty well but it isn't perfect. Just because it can not find a bus running between two particular cities does not mean it does not exist. In Brazil whereever there is a major road there is a fair chance a bus runs down it.
This link should take you straight to the search function. Otherwise, from the menu on the left hand side select Transporte de Passageiros, then Consulata as empresas e linhas and finally Linhas que Fazem Ligação entre Duas Localidades.
The database is easy to use.Selecione um estado (select the state), localidade de origem (type in the origin city), repeat for the destino (destination) and verificar (verify) each entry. Fechar janela (close window) will close the small window that opens when you verify the selection. You must verify each entry or the search will not be performed. When it works well you get the company, prices, distances and timetable frequency. At other times you get nothing.
The search results will display all the buses that run the route along with the company's contact details. Clicking on Preço da Passagem will give you the ticket price whilst Horários e Frequência displays timetable information.
Alternatively Seções que Atendem a Uma Localidade will give you a list of every destination that is in the database. The database goes down to some pretty small towns (e.g. Criçiúma, SC) so search here first to see if the town you're in is on the database. If you select Rio de Janeiro you'll end up getting a list long enough to keep you occupied all the way to Bahia. Equally Linhas que Fazem Seção em Uma Localidade will give you a list of every company that has a route passing through whatever city you type into the box.
The only downfall of the database is that it tells you everything but arrival and journey times. That said, you can go to the company's website and try to find the details there or estimate it based on the distance
My understanding of Socicam is that they are a bus station management company. A service no doubt but not the sort of industry people think of when considering career choices with the school guidance councellor.
Their database is smaller than that of ANTT's but it does cover Rio de Janeiro and São Paulo. It is also relatively straight forward to use. There are only 13 origins (presumably the rodoviarias that they manage) from which you can search but several hundred destinations.
If you're travelling from somewhere to Rio or Sao Paulo just do the search in reverse starting with Rio as your origin and you'll get the information you need. Search results show what companies provide services between the destinations you searched. Links to company websites are provided where you should be able to search for timetables and prices. Not as comprehensive as the government database but good for a quick search and has a clean easy to use interface.
Passagem em Domicilio
This is an easy to use but hard to look at website. On the right hand side is a box with two scroll down menus from which you select your A to B destinations. You must also enter at least one date. From this they search the database and bring up all the avaiable fares. Pretty simple. They're all in Portuguese but key words are much the same as outlined earlier. From left to right the search results are Emprese (company), Tipo de veículo (type of vehicle), horário (timetable), Duração da viagem (duration of trip), Terminal de embarque (bus terminal of departure)and Preço (price). The last two fields are for if you order online. They are for the quantity of tickets you want and prefered seating arrangements.
Listed below are some of the major bus companies in Brazil. There are many more but I haven't had time to add to this list.