Oneprofile Table UI Prefs API

Endpoints for org-shared per-column display preferences: hidden, pinned, width, and colour tint.

GitHub OpenAPI

Operations 1

PATCH /tables/{table_id}/columns/{column_id}/ui-prefs/ Update a column's display preferences #

Work with this as data

Every API here is available over the APIs.io API and to AI agents over MCP.

MCP server

One button, every client — Claude, Cursor, VS Code and the rest.

https://apis.io/mcp

Tools for apis

7 MCP tools reach this
  • find_apisBrowse and filter every API in the catalog.
  • get_api_artifactsOne API's artifacts, grouped by type.
  • get_openapiThe primary OpenAPI for this API.
  • find_similar_apisAPIs that look like this one.
  • apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.
  • resolveTurn a domain, URL or GitHub org into the provider it belongs to.
  • find_cohortsEvery scored population of providers in the catalog.
All 92 tools →

Call it yourself

curl for this page
This API
curl "https://apis.io/api/v1/apis/getoneprofile-ai:getoneprofile-ai-table-ui-prefs-api"
All apis
curl "https://apis.io/api/v1/apis?limit=25"

Calls without X-API-Key need no key. Calls with it need a paid plan — get a key.

Get an API key

Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.

A second provider on the same verified email joins the account you already have.

OpenAPI Specification

getoneprofile-ai-table-ui-prefs-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  contact:
    email: support@getoneprofile.ai
    name: Oneprofile Support
  description: REST API reference for Oneprofile, the GTM data layer for your CRM. Manage tables, enrichments, and integrations. Authenticate with an API key to get started.
  termsOfService: https://www.getoneprofile.ai/terms
  title: Reference | Oneprofile Table UI Prefs API
  version: 1.0.42765316646
tags:
- description: 'Endpoints for org-shared per-column display preferences: hidden, pinned, width, and colour tint.'
  name: table-ui-prefs
paths:
  /tables/{table_id}/columns/{column_id}/ui-prefs/:
    patch:
      description: 'Partially update how one column is displayed: hidden, pinned, width, colour tint (omitted fields are left untouched). Hidden, pinned and width are the CALLING USER''s own: they change this person''s Default view and nobody else''s, over the team''s layout. The colour tint is shared by everyone in the organisation. A caller with no person behind it (an API key) sets the team''s layout. Cosmetic only: this never touches the column definition, never bumps the columns change watermark, and never requests a recompute run. A request that sets nothing is a no-op and leaves the preferences watermark unmoved. Answers with the column''s preferences as the caller now sees them.'
      operationId: update_table_column_ui_prefs
      parameters:
      - in: path
        name: table_id
        required: true
        schema:
          format: uuid
          title: Table Id
          type: string
      - in: path
        name: column_id
        required: true
        schema:
          format: uuid
          title: Column Id
          type: string
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/TableColumnUIPrefsUpdateSchema'
        required: true
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/TableColumnUIPrefsSchema'
          description: Successful Response
        '401':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UnauthorizedResponse'
          description: Unauthorized
        '403':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ForbiddenResponse'
          description: Forbidden
        '404':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/NotFoundResponse'
          description: Table column not found
        '422':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UnprocessableEntityResponse'
          description: Invalid request made to the API.
        '500':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ServerErrorResponse'
          description: Internal server error.
        '502':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ServerErrorResponse'
          description: Bad gateway error.
        '503':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ServerErrorResponse'
          description: Service unavailable.
      security:
      - APIKeyHeader: []
      - HTTPBearer: []
      summary: Update a column's display preferences
      tags:
      - table-ui-prefs
components:
  schemas:
    ForbiddenResponse:
      properties:
        detail:
          description: The detail of why the request is forbidden.
          title: Detail
          type: string
      required:
      - detail
      title: ForbiddenResponse
      type: object
    UnprocessableEntityIssue:
      properties:
        input:
          anyOf:
          - type: string
          - type: integer
          - type: number
          - type: boolean
          - items: {}
            type: array
          - additionalProperties: true
            type: object
          description: The user's input that caused the error.
          title: Input
        loc:
          description: The location of the error. Always contains 1 or 2 elements. The first element is the type of location (e.g. 'body', 'query', 'path', 'header'). The second element is the name of the field that caused the error. If the error is not related to a specific field, the second element is not present.
          items:
            type: string
          title: Loc
          type: array
        msg:
          description: The message of the error. The error message to show to the user.
          title: Msg
          type: string
        type:
          description: The type of the error. Useful for frontend code to handle different types of errors.
          title: Type
          type: string
      required:
      - loc
      - msg
      - type
      - input
      title: UnprocessableEntityIssue
      type: object
    ServerErrorResponse:
      properties:
        detail:
          description: The detail of why the server returned an error.
          title: Detail
          type: string
      required:
      - detail
      title: ServerErrorResponse
      type: object
    TableColumnUIPrefsUpdateSchema:
      description: Request body for updating a column's display preferences (tri-state PATCH).
      properties:
        color:
          anyOf:
          - $ref: '#/components/schemas/TableColumnUIColor'
          - {}
          - type: 'null'
          description: New palette token, the same for everyone. Set to null to clear the tint.
          title: Color
        hidden:
          anyOf:
          - type: boolean
          - {}
          description: Hide the column from the grid, or show it. A signed-in person's choice is their own and stays theirs over the team's; an API key sets the team's.
          title: Hidden
        pinned:
          anyOf:
          - type: boolean
          - {}
          description: Pin the column to the left edge, or unpin it. A signed-in person's choice is their own and stays theirs over the team's; an API key sets the team's.
          title: Pinned
        width:
          anyOf:
          - maximum: 720.0
            minimum: 64.0
            type: integer
          - {}
          - type: 'null'
          description: New width in pixels, for a signed-in person their own. Null makes a person's column follow the team's width again; from an API key it restores the client default for the team.
          title: Width
      title: TableColumnUIPrefsUpdateSchema
      type: object
    TableColumnUIPrefsSchema:
      description: 'How one column is displayed to the caller.


        Hidden, pinned and width are the caller''s own where they set one, laid over

        the team''s; the colour tint is the team''s. An API key sees the team''s alone.

        Always present on a column, whether or not anything has been customised:

        a column nobody has touched reports the defaults rather than null.'
      properties:
        color:
          anyOf:
          - $ref: '#/components/schemas/TableColumnUIColor'
          - type: 'null'
          description: Semantic palette token the client maps per theme; null means untinted.
        hidden:
          description: Whether the grid omits the column; its cell values are untouched.
          title: Hidden
          type: boolean
        pinned:
          description: Whether the column is frozen to the left edge through horizontal scroll.
          title: Pinned
          type: boolean
        width:
          anyOf:
          - type: integer
          - type: 'null'
          description: Rendered width in pixels; null means the client default.
          title: Width
      required:
      - hidden
      - pinned
      - width
      - color
      title: TableColumnUIPrefsSchema
      type: object
    TableColumnUIColor:
      description: 'Semantic tint token, shared by a column and by a column GROUP.


        Stored as a token rather than a hex value because the grid renders in both a

        light and a dark theme, and a single stored colour is only legible in one of

        them. The client maps each token to a per-mode value.


        Deliberately excludes teal: the brand primary is used for range selection and

        the anchor outline, so a teal column would read as permanently selected.


        Lives HERE rather than in ``table_column_prefs``, where it started, because

        two domains now need it and the layering only allows one direction. A

        column''s tint is stored in ``table_column_prefs`` (org-shared appearance,

        keyed by column) while a group''s is a field on the group row itself in

        ``table_column``, and ``table_column_prefs`` sits ABOVE ``table_column`` in

        the domain layers, so the token had to move DOWN to be reachable from both.

        ``table_column_prefs.types`` re-exports it, which is why that move touched

        no existing import.


        One enum for both on purpose: a colour token is a shared vocabulary (a team

        agreeing that amber means "needs review" is agreeing about it across

        columns and groups alike) and the organisation''s renaming of the palette

        (``table_column_color_labels``) is keyed by this token, so a second enum

        would give groups colours the rename dialog could not name.'
      enum:
      - gray
      - red
      - orange
      - amber
      - green
      - blue
      - purple
      - pink
      title: TableColumnUIColor
      type: string
    UnprocessableEntityResponse:
      properties:
        detail:
          description: The detail of the error. This is the error message to show to the user. You should also use the issues field to show more detailed error messages per field. Use this field for a single liner error message.
          title: Detail
          type: string
        issues:
          description: The issues that caused the error. There can be multiple issues. Each issue is a user-facing error message.
          items:
            $ref: '#/components/schemas/UnprocessableEntityIssue'
          title: Issues
          type: array
      required:
      - detail
      - issues
      title: UnprocessableEntityResponse
      type: object
    UnauthorizedResponse:
      properties:
        detail:
          description: The detail of why the request is unauthorized.
          title: Detail
          type: string
      required:
      - detail
      title: UnauthorizedResponse
      type: object
    NotFoundResponse:
      properties:
        detail:
          description: The detail of why the resource was not found.
          title: Detail
          type: string
      required:
      - detail
      title: NotFoundResponse
      type: object
  securitySchemes:
    APIKeyHeader:
      in: header
      name: X-API-Key
      type: apiKey
    HTTPBearer:
      scheme: bearer
      type: http