I programmed my new key myself. It takes like 2 minutes but you need the software. My CT allowed for up to 5 keys to be programmed and now I have 3 programmed for my car.
To program a key you need the special OBD connector cable and toyota techstream software.
You can buy the cable and software for $35 online. I bought this one:
2014 Latest Mini VCI Diagnostic Tool Cable for Toyota Lexus Scion Tis Techstream | eBay
If you have a brand new key not programmed to any other car then it will program easily without an problem.
Once a key is already programmed to another car it wont program to your car unless you do a key reset and you need a "seed passcode" and when you enter it in, it makes you wait 15 minutes before it will program the used key to your car.
Any dealer can get the seed passcode and program your key for a price.
There are some people online that can get you your seed/passcode, but I have not tried that as I did not need to.
Either they work for a dealer or they found the formula for calculating the toyota passcode.
Smartkey Seed/Passcode calculation service | PriusChat
Calculation of Passcode for Toyota, Lexus, Scion vehicles - Service
Also, it is possible to find a local locksmith that can get toyota passcodes and they may be cheaper than the dealer.