Welcome to the community!
Unfortunately, I don't think it's possible to allow only free 1-8XX phone numbers. While North American toll-free numbers can generally be called free of charge from Canada or the US, it depends on the designated area as determined by the business owning the phone number. In addition to restricting those numbers to either Canada or US, some businesses may also place additional limits on their free usage (ie only from certain states or provinces etc)(see here). It all depends from where they wish to accept the long-distance charges.
Since the designated call area is determined by the businesses, it's not possible to know the availability of a particular toll-free number in specific regions just by the phone number itself. Since Canada and the US (and other countries) utilise the same North American Numbering Plan, those phone numbers all have the same format, regardless of their intended call areas. The only way to determine whether a business is willing to accept the long-distance charges for their toll-free phone number from a particular location would be to enquire with them directly. I understand the particular Catch-22 aspect of the situation. However, the company may have other means of communication to determine the company's designated call area (ie social media, email, etc).
It would be helpful to have a specific phone number formats to identify those numbers available to both Canada and the US. However, a system like that would not take into consideration any state or provincial specific (or other) limitations. Unfortunately, as it stands, all of the toll-free phone numbers do have the same format regardless of designated call area.
Hope this helps 😀