Scope custom_field_settings:read required but do not exist

Hello,

I’m experiencing a “missing scope” error via the API using an OAuth token, but the same operation succeeds with a Personal Access Token.

Setup:

  • Endpoint: GET /projects?opt_fields=custom_field_settings

  • OAuth token scopes: teams:read custom_fields:read projects:read users:read workspaces:read

“errors”: [

    {

        "message": "The following scopes must be present to fulfill this request: custom_field_settings:read",

        "help": "For more information on API status codes and how to handle them, read the docs on errors: https://developers.asana.com/docs/errors "

    }

I don’t find this scope in the App’s control panel.

And, when I set “Full Permissions” to the App and request a new OAuth with the scope “custom_field_settings:read” I have this error :

invalid_scope: Invalid scope(s) requested. These scopes do not exist: `custom_field_settings:read` scopes.

Is there a solution ?
Thank you

Hi @Data_Connector and welcome!

Unfortunately, we don’t currently expose OAuth scopes for the custom_field_settings resource. Because of this, the quickest workaround is to use scope=default and set your app’s Permission Scopes in the Developer Console to Full Permissions.

OAuth scopes are still an ongoing project, and our API team is actively working on expanding coverage. Feedback like yours is very valuable—it helps us prioritize which scopes developers need most. I’ll flag this internally so the team is aware of the demand for this specific scope.

Thanks,
Dominik

Hi @Data_Connector!

I’m back with some good news — we’ve implemented granular OAuth access for custom field settings. You no longer need to request full permissions to access them.

That said, the behavior is slightly different from other resources. There is no dedicated custom_field_settings read/write scope. Instead, access is inherited from the parent container (for example, a project). More detailed custom field data—such as the field name, enum options, or descriptions—is available when the appropriate custom field scopes are used.

Here’s a quick breakdown:

  • Access to custom field settings only (without details of the underlying custom fields):
    → Use the scope required for the parent resource you’re querying (e.g. projects:read).

  • Access to detailed custom field data (values, enum options, descriptions, etc.):
    → Use custom_fields:read plus the scope required for the associated parent resource (e.g. projects:read).

If anything is unclear, feel free to ask!

Best,
Dominik

1 Like