Oneprofile Table Templates API

Endpoints for saving and applying column templates.

GitHub OpenAPI

Operations 4

GET /column-templates/ List column templates #
POST /column-templates/ Capture a multi-column template #
DELETE /column-templates/{template_id}/ Delete a column template #
POST /column-templates/{template_id}/apply/ Apply a template to a table #

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-templates-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-templates-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 Templates API
  version: 1.0.42765316646
tags:
- description: Endpoints for saving and applying column templates.
  name: table-templates
paths:
  /column-templates/:
    get:
      description: The organisation's saved multi-column templates, newest first.
      operationId: list_column_templates
      parameters:
      - in: query
        name: filters
        required: true
        schema:
          $ref: '#/components/schemas/ListColumnTemplatesFilterParamsSchema'
      - description: The number of items to return.
        in: query
        name: limit
        required: false
        schema:
          default: 10
          description: The number of items to return.
          maximum: 100
          minimum: 1
          title: Limit
          type: integer
      - in: query
        name: order_by
        required: false
        schema:
          $ref: '#/components/schemas/OrderingParametersForIdCreatedAtName'
          default: created_at
          enum:
          - id
          - created_at
          - name
          type: string
      - in: query
        name: order_direction
        required: false
        schema:
          default: desc
          enum:
          - asc
          - desc
          title: Order Direction
          type: string
      - description: Set the cursor to the next or previous page. You can get the cursor from the previous page's response.
        in: query
        name: cursor
        required: false
        schema:
          anyOf:
          - type: string
          - type: 'null'
          description: Set the cursor to the next or previous page. You can get the cursor from the previous page's response.
          title: Cursor for pagination.
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PaginatedResponse_ColumnTemplateReadSchema_'
          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
        '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: List column templates
      tags:
      - table-templates
    post:
      description: Snapshot a selection of a table's columns (definitions, settings and the display names their references carry) as a named, org-level template replayable on any table.
      operationId: create_column_template
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ColumnTemplateCreateSchema'
        required: true
      responses:
        '201':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ColumnTemplateReadSchema'
          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 or 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: Capture a multi-column template
      tags:
      - table-templates
  /column-templates/{template_id}/:
    delete:
      description: 'Delete a saved template. Columns already created from it are untouched: a template is a snapshot of how to build them, not a link to them.'
      operationId: delete_column_template
      parameters:
      - in: path
        name: template_id
        required: true
        schema:
          format: uuid
          title: Template Id
          type: string
      - description: Report what would be deleted, and delete nothing.
        in: query
        name: dry_run
        required: false
        schema:
          default: false
          description: Report what would be deleted, and delete nothing.
          title: Dry Run
          type: boolean
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SuccessfullyDeletedResponse'
          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: Template 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: Delete a column template
      tags:
      - table-templates
  /column-templates/{template_id}/apply/:
    post:
      description: 'Create the template''s columns on a table, left to right, as one block at the requested position (appended when omitted), references remapped: template-internal references land on their new counterparts, external ones on the target''s same-named columns, and anything unmatched stays visibly broken rather than silently wrong. All or nothing: a column the table refuses undoes the ones created before it. Nothing runs. The created columns wait to be run deliberately. Answers the names of the columns it created. With dry_run it drafts each column against the table and the ones before it, refuses what the apply would refuse, answers the names it would create and creates none.'
      operationId: apply_column_template
      parameters:
      - in: path
        name: template_id
        required: true
        schema:
          format: uuid
          title: Template Id
          type: string
      - description: Report which columns would be created, and create none.
        in: query
        name: dry_run
        required: false
        schema:
          default: false
          description: Report which columns would be created, and create none.
          title: Dry Run
          type: boolean
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ColumnTemplateApplySchema'
        required: true
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ColumnTemplateApplyResponseSchema'
          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: Template or table 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: Apply a template to a table
      tags:
      - table-templates
components:
  schemas:
    ForbiddenResponse:
      properties:
        detail:
          description: The detail of why the request is forbidden.
          title: Detail
          type: string
      required:
      - detail
      title: ForbiddenResponse
      type: object
    ColumnTemplateCreateSchema:
      description: Capture a selection of a table's columns as a named template.
      properties:
        column_ids:
          description: The columns to capture; stored in display order.
          items:
            format: uuid
            type: string
          maxItems: 50
          minItems: 1
          title: Column Ids
          type: array
        description:
          anyOf:
          - maxLength: 2000
            type: string
          - type: 'null'
          title: Description
        name:
          maxLength: 255
          minLength: 1
          title: Name
          type: string
        table_id:
          description: The table the columns live on.
          format: uuid
          title: Table Id
          type: string
      required:
      - name
      - table_id
      - column_ids
      title: ColumnTemplateCreateSchema
      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
    ColumnTemplateApplyResponseSchema:
      description: What an apply created, or on a dry run would create.
      properties:
        created_column_names:
          description: The new columns' names, in template order. A name the table already had carries a number after it.
          items:
            type: string
          title: Created Column Names
          type: array
      required:
      - created_column_names
      title: ColumnTemplateApplyResponseSchema
      type: object
    OrderingParametersForIdCreatedAtName:
      enum:
      - id
      - created_at
      - name
      title: OrderingParametersForIdCreatedAtName
      type: string
    PaginatedResponse_ColumnTemplateReadSchema_:
      properties:
        data:
          description: The list of ResponseItems.
          items:
            $ref: '#/components/schemas/ColumnTemplateReadSchema'
          title: Data
          type: array
        next_page_cursor:
          anyOf:
          - type: string
          - type: 'null'
          description: The cursor to the next page. If there are no more pages, this is None.
        previous_page_cursor:
          anyOf:
          - type: string
          - type: 'null'
          description: The cursor to the previous page. If there are no previous pages, this is None.
      title: PaginatedResponse[ColumnTemplateReadSchema]
      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
    ListColumnTemplatesFilterParamsSchema:
      description: Query parameters for filtering column templates.
      properties:
        name__contains:
          anyOf:
          - maxLength: 255
            type: string
          - type: 'null'
          description: Case-insensitive name fragment.
          title: Name  Contains
      title: ListColumnTemplatesFilterParamsSchema
      type: object
    ColumnTemplateApplySchema:
      description: Replay a template onto a table.
      properties:
        position:
          anyOf:
          - minimum: 0.0
            type: integer
          - type: 'null'
          description: Insert position of the FIRST column; the rest follow it contiguously, in template order. Appended when omitted.
          title: Position
        table_id:
          description: The table to create the columns on.
          format: uuid
          title: Table Id
          type: string
      required:
      - table_id
      title: ColumnTemplateApplySchema
      type: object
    ColumnTemplateReadSchema:
      description: One template as the picker lists it.
      properties:
        column_count:
          description: How many columns the bundle holds.
          title: Column Count
          type: integer
        column_names:
          description: The columns the template creates, in order.
          items:
            type: string
          title: Column Names
          type: array
        created_at:
          format: date-time
          title: Created At
          type: string
        description:
          anyOf:
          - type: string
          - type: 'null'
          title: Description
        id:
          format: uuid
          title: Id
          type: string
        name:
          title: Name
          type: string
      required:
      - id
      - name
      - description
      - column_count
      - column_names
      - created_at
      title: ColumnTemplateReadSchema
      type: object
    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
    SuccessfullyDeletedResponse:
      properties:
        count:
          default: 1
          description: The number of resources that were deleted.
          title: Count
          type: integer
        detail:
          description: The detail of why the resource was deleted.
          title: Detail
          type: string
      required:
      - detail
      title: SuccessfullyDeletedResponse
      type: object
  securitySchemes:
    APIKeyHeader:
      in: header
      name: X-API-Key
      type: apiKey
    HTTPBearer:
      scheme: bearer
      type: http