The "gary-l-ackerman" part is required, so the URL is really difficult to construct in another app that only has access to bioguide IDs. Even access to each speaker_* field in the API responses isn't enough to construct the slug, since a middle initial is also required.
In legislator URLs like the following: http://capitolwords.org/legislator/A000022-gary-l-ackerman
The "gary-l-ackerman" part is required, so the URL is really difficult to construct in another app that only has access to bioguide IDs. Even access to each speaker_* field in the API responses isn't enough to construct the slug, since a middle initial is also required.