PowerShell
Per Site Collection using pnp-powershell
$siteUrl = "https://tenant.sharepoint.com/sites/site"
$siteConnection = Connect-PnPOnline $siteUrl -ReturnConnection
$tenantSite = Get-PnPTenantSite -Detailed -Url $siteUrl -Connection $siteConnection
$tenantSite.DenyAddAndCustomizePages = [Microsoft.Online.SharePoint.TenantAdministration.DenyAddAndCustomizePagesStatus]::Disabled
$tenantSite.Update()
$tenantSite.Context.ExecuteQuery()