Is there any sort of API for ASL?

As the subject line says

I’d love to be able to check for some things, such as PTT being active or inactive, etc

There is no API, just standard commands via poling al la Allmon and Supermon.

Have you seen the Event Management System?

If you like to script,
There is a API through/for asterisk.
Look anywhere on the web for asterisk AGI - asterisk gateway interface.
If you have not somewhat mastered some scripting and a more than basic knowledge of asterisk, it’s probably is not for you.
Just keep in mind we use a older version of asterisk and the current data found on the web may be for newer versions and some options not valid.