Unique one time use URL

You could add a setting using add_option( 'access_keys', [ 'key_1', 'key_2 ] ) to check against when loading the page.

add_action( 'init', 'wpse339612_check_access_codes' );
function wpse339612_check_access_codes(){

    if( isset( $_GET['key'] ) ){

        $available_keys = get_option( 'access_keys' );

        $key_index = array_search( filter_var( $_GET['key'], $available_keys );

        if( $key_index !== false ){

             /*User has access! Delete the key from the available keys*/
             unset( $available_keys[$key_index] );
             update_option( 'access_keys', $available_keys );

        }

    }

}

Then whenever a user hits a URL of https://yoursite.com?key=key_1 they will get to the access condition and the key will be deleted from the database.