This error occurs when you are gated from accessing a DryMerge object or entity. This can happen for a number of reasons, but it most frequently occurs due to incorrect API keys or a lack of permissions on the DryMerge object.

API Key Errors

Valid DryMerge API Keys look like this…


Note that the API Key is 128 characters long and contains only hexadecimal characters (0-9, a-f). We commonly see errors when the shortened identifier is used instead of the full API Key. For example, the following API Key is invalid…


To verify that the API key is valid, you can use the cli.

dry login --key <API_KEY>
dry whoami

The dry whoami command will return the user associated with the API Key. If the API Key is invalid, you will see an error message.

Wrong Organization

If you’re using the SDK or CLI and are attempting to reference an object that is not in your organization, you will receive a PermissionDenied error. Note that organization names are case sensitive. For example, if you are attempting to instantiate a template from the DryMerge organization, but you instead reference drymerge, you will receive a PermissionDenied error. This commonly occurs with your OWN organization as well.

my_user_id = '-exampleid'
// Note that the organization is 'drymerge' and not 'DryMerge'
client.template(DryId(name='new-spreadsheet-row-webhook', namespace='google', organization='drymerge', type_='template'), {
    'identifier': f'{my_user_id}',
    'oauth_gateway': 'google/oauth-integration.gateway',
    'access_token': f'{{{{{my_user_id}.connection}}}}',
    'spreadsheet_id': '1PokjiacviBzBGXcVnqqs0-SD8sWCxvKg2l3tLen4AkQ',
    'sheet_name': 'Sheet1',
    'webhook_url': ''
}, my_user_id')