39 - it can throws errors instead of just returning `false`, which can be triggered by sending an invalid signature
40 - it can be lured into checking a SHA1 signature if the signature header starts with `sha1=`
41- you need to pass the secret and payload as argument to the val, which makes them appear in the evaluation logs you produce ([they are only visible for the author of the val if you run them as an API](https://docs.val.town/permissions), but it still feels odd to see the secret in the evaluation logs.)
42- parameters are all of type string and the order can be confused
43- you can not use fallback secrets for rotating
1Migrated from folder: common/pageApi
1Migrated from folder: common/paginateAPI
2Returns information about a specific version of a val.
3
4To access private vals this requires a secret called valtownToken, set to your API Token. See more about [authentication](https://docs.val.town/api/authentication) to understand how to generate a token.
5
6Migrated from folder: docs/api/getValVersion
1Migrated from folder: docs/api/valVersion
2Returns information about each version of a specific val.
3
4To access private vals this requires a secret called valtownToken, set to your API Token. See more about [authentication](https://docs.val.town/api/authentication) to understand how to generate a token.
5
6Migrated from folder: docs/api/getValVersions
1Migrated from folder: docs/api/valVersions
2Deletes a specific val.
3
4Pass your API token as a secret to the function. Read more about [authentication](https://docs.val.town/api/authentication) to understand how to generate a token and save it as a secret.
5
6Migrated from folder: docs/api/deleteValExample
1Migrated from folder: docs/api/deleteVal
1A type guard for vals that expect a WebApi `Request` as the first parameter.
2
3Since a val can be invoked by run, web, express or even email, the correct type for a web endpoint should be `req?: Request | unknown`.