List all Custom Fields

Retrieve a paginated list of custom fields for a project or across multiple projects with filtering and sorting options


List all Custom Fields

Custom fields allow you to extend Blue’s standard record structure with additional data fields specific to your business needs. This endpoint retrieves custom fields available in your projects, with filtering by field type and pagination support.

Basic Example

query ListCustomFields {
  customFields(
    filter: { projectId: "project_123" }
    sort: position_ASC
    take: 20
  ) {
    items {
      id
      uid
      name
      type
      position
    }
    pageInfo {
      totalItems
      hasNextPage
    }
  }
}

Advanced Example

query ListCustomFieldsAdvanced {
  customFields(
    filter: {
      projectId: "project_123"
      types: [TEXT_SINGLE, NUMBER, SELECT_SINGLE]
    }
    sort: name_ASC
    skip: 20
    take: 50
  ) {
    items {
      id
      uid
      name
      type
      position
      description
      
      # Type-specific fields
      min              # For NUMBER, RATING, PERCENT
      max              # For NUMBER, RATING, PERCENT
      currency         # For CURRENCY type
      prefix           # For UNIQUE_ID type
      isDueDate        # For DATE type
      formula          # For FORMULA type
      
      # Validation settings
      editable
      metadata
      
      # For SELECT types
      customFieldOptions {
        id
        title
        color
        position
      }
    }
    pageInfo {
      totalItems
      hasNextPage
      hasPreviousPage
    }
  }
}

Input Parameters

CustomFieldFilterInput

ParameterTypeRequiredDescription
projectIdStringNoFilter by specific project ID
types[CustomFieldType!]NoFilter by custom field types

CustomFieldSort Values

ValueDescription
name_ASCSort by name ascending (A-Z)
name_DESCSort by name descending (Z-A)
createdAt_ASCSort by creation date (oldest first)
createdAt_DESCSort by creation date (newest first)
position_ASCSort by position (default)
position_DESCSort by position descending

CustomFieldType Values

ValueDescription
TEXT_SINGLESingle line text input
TEXT_MULTIMulti-line text area
SELECT_SINGLESingle selection dropdown
SELECT_MULTIMultiple selection dropdown
CHECKBOXBoolean checkbox field
RATINGStar rating (1-5 or custom range)
PHONEPhone number with validation
NUMBERNumeric input
CURRENCYCurrency amount
PERCENTPercentage value
EMAILEmail address with validation
URLWeb URL with validation
UNIQUE_IDAuto-generated unique identifier
LOCATIONGeographic location (lat/lng)
FILEFile attachment
DATEDate picker
COUNTRYCountry selector
FORMULACalculated field based on other fields
REFERENCELink to records in another project
LOOKUPPull data from referenced records
TIME_DURATIONTime tracking field
BUTTONActionable button field
CURRENCY_CONVERSIONCurrency conversion field

Pagination Parameters

ParameterTypeRequiredDescription
skipIntNoNumber of items to skip (default: 0)
takeIntNoNumber of items to return (default: 20, max: 500)

Response Fields

CustomField

FieldTypeDescription
idString!Unique identifier
uidString!Unique user-friendly ID
nameString!Display name of the field
typeCustomFieldType!Type of the custom field
positionFloat!Sort order position
descriptionStringOptional field description
minFloatMinimum value (NUMBER, RATING, PERCENT)
maxFloatMaximum value (NUMBER, RATING, PERCENT)
currencyStringCurrency code (CURRENCY type)
prefixStringPrefix for UNIQUE_ID generation
isDueDateBooleanWhether DATE field represents a due date
formulaJSONFormula configuration (FORMULA type)
editableBooleanWhether current user can edit this field
metadataJSONAdditional field configuration
customFieldOptions[CustomFieldOption!]Available options for SELECT types

CustomFieldOption

FieldTypeDescription
idString!Unique identifier
titleString!Display text for the option
colorString!Hex color code
positionFloat!Sort order position

PageInfo

FieldTypeDescription
totalItemsIntTotal number of custom fields
hasNextPageBoolean!Whether more pages exist
hasPreviousPageBoolean!Whether previous pages exist
endCursorStringCursor for pagination (deprecated - use offset-based pagination)

Required Permissions

Custom fields are accessible based on your project role. If you have a custom role with restricted field access, only fields marked as editable for your role will be returned.

RoleCan List Custom Fields
OWNER✅ Yes (all fields)
ADMIN✅ Yes (all fields)
MEMBER✅ Yes (based on role permissions)
CLIENT✅ Yes (based on role permissions)

Error Responses

Project Not Found

{
  "errors": [{
    "message": "Project not found.",
    "extensions": {
      "code": "PROJECT_NOT_FOUND"
    }
  }]
}

Invalid Field Type

{
  "errors": [{
    "message": "Variable \"$filter\" got invalid value \"INVALID_TYPE\" at \"filter.types[0]\"; Value \"INVALID_TYPE\" does not exist in \"CustomFieldType\" enum.",
    "extensions": {
      "code": "GRAPHQL_VALIDATION_FAILED"
    }
  }]
}

Important Notes

  • Custom fields are scoped to projects - you must specify a projectId in the filter
  • The take parameter is capped at 500 items per request for performance
  • Fields are returned based on user permissions - custom roles may have restricted access
  • The default sort order is by position ascending, which reflects the order shown in the UI
  • This query supports single project filtering - for multi-project queries, use the nested CustomFieldQueries interface
  • Some field types (like FORMULA and REFERENCE) may include additional nested data structures
  • The editable field indicates whether the current user can modify values for this custom field