Elementum Elements API

Manage elements imported from connected cloud sources

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/elementum-elements-api"
All apis
curl "https://apis.io/api/v1/apis?limit=25"

Discovery needs no key. Ratings and market analysis are Pro.

Get an API key

Free tier, no email required.

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

OpenAPI Specification

elementum-elements-api-openapi.yml Raw ↑
openapi: 3.0.1
info:
  title: Elementum Access Token Elements API
  description: Manage access tokens using OAuth 2.0 standards
  contact:
    email: apiteam@elementum.io
  version: 0.0.1
servers:
- url: /v1
tags:
- name: Elements
  description: Manage elements imported from connected cloud sources
paths:
  /elements:
    post:
      tags:
      - Elements
      summary: Import an existing connected-source table as an element
      operationId: createElement
      parameters: []
      requestBody:
        description: Element creation request (Snowflake import)
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ElementCreateRequest'
        required: true
      responses:
        '201':
          description: Created
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Aspect'
        '400':
          $ref: '#/components/responses/400'
        '401':
          $ref: '#/components/responses/401'
        '403':
          $ref: '#/components/responses/403'
        '404':
          $ref: '#/components/responses/404'
        '422':
          $ref: '#/components/responses/422'
        '429':
          $ref: '#/components/responses/429'
        '500':
          $ref: '#/components/responses/500'
      security:
      - ClientCredentials: []
      x-codegen-request-body-name: body
  /elements/{alias}:
    get:
      tags:
      - Elements
      summary: Get an element by alias
      operationId: getElement
      parameters:
      - $ref: '#/components/parameters/alias'
      responses:
        '200':
          description: Ok
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Aspect'
        '400':
          $ref: '#/components/responses/400'
        '401':
          $ref: '#/components/responses/401'
        '403':
          $ref: '#/components/responses/403'
        '404':
          $ref: '#/components/responses/404'
        '422':
          $ref: '#/components/responses/422'
        '429':
          $ref: '#/components/responses/429'
        '500':
          $ref: '#/components/responses/500'
      security:
      - ClientCredentials: []
      x-codegen-request-body-name: body
    put:
      tags:
      - Elements
      summary: Update an element by alias
      operationId: updateElement
      parameters:
      - $ref: '#/components/parameters/alias'
      requestBody:
        description: Element fields to update
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ElementUpdateRequest'
        required: true
      responses:
        '200':
          description: Ok
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Aspect'
        '400':
          $ref: '#/components/responses/400'
        '401':
          $ref: '#/components/responses/401'
        '403':
          $ref: '#/components/responses/403'
        '404':
          $ref: '#/components/responses/404'
        '422':
          $ref: '#/components/responses/422'
        '429':
          $ref: '#/components/responses/429'
        '500':
          $ref: '#/components/responses/500'
      security:
      - ClientCredentials: []
      x-codegen-request-body-name: body
components:
  schemas:
    AspectFieldInput:
      required:
      - name
      - type
      type: object
      properties:
        lockOnCreate:
          type: boolean
        type:
          $ref: '#/components/schemas/AspectFieldType'
        description:
          type: string
        showOnCreate:
          type: boolean
        name:
          type: string
          description: Field display name
        requiredOnClose:
          type: boolean
        columnName:
          type: string
          description: Underlying source-column name (import mode); leave blank for native modes
        required:
          type: boolean
        tags:
          type: array
          items:
            type: string
        semanticTags:
          type: array
          items:
            type: string
    AspectCategoryRef:
      type: object
      properties:
        name:
          type: string
          description: The category name
        id:
          type: string
          description: The category ID
          format: uuid
    AspectSourceType:
      type: string
      description: Where an aspect's data lives. ELEMENTUM = native; SNOWFLAKE = imported from a connected Snowflake table.
      enum:
      - ELEMENTUM
      - SNOWFLAKE
    ElementCreateRequest:
      required:
      - categoryId
      - name
      type: object
      properties:
        recordCreateTypes:
          $ref: '#/components/schemas/RecordCreateTypesInput'
        namespace:
          type: string
          description: URL namespace. Derived from name (lowercase letters only) when omitted.
        table:
          type: string
          description: Source table name — import mode only; omit in native and native-at-link modes
        categoryId:
          type: string
          description: Aspect category to file the element under
          format: uuid
        description:
          type: string
          description: Element description
        allowForwardedEmailIngestion:
          type: boolean
        workflowValuePerAutomation:
          type: number
        color:
          type: string
        titleColumn:
          type: string
          description: Source column to tag with the TITLE semantic tag. Must be TEXT. Import mode only.
        cloudOptions:
          $ref: '#/components/schemas/CloudOptionsInput'
        cloudLinkId:
          type: string
          description: Cloud link to import from (import mode) or to host a newly-created table on (native-at-link mode)
          format: uuid
        schema:
          type: string
          description: Source schema — import mode only; omit in native and native-at-link modes
        handle:
          type: string
          description: Record-handle prefix. Derived from name (uppercase letters only) when omitted.
        allowAnonymousEmailCreation:
          type: boolean
        name:
          type: string
          description: Element display name
        icon:
          type: string
        allowInlineImageIngestion:
          type: boolean
        database:
          type: string
          description: Source database — import mode only; omit in native and native-at-link modes
        readOnly:
          type: boolean
        snowflakeWarehouse:
          type: string
          description: Warehouse override for this element
        fields:
          type: array
          description: Field definitions for native and native-at-link modes. Must be omitted in import mode.
          items:
            $ref: '#/components/schemas/AspectFieldInput'
        idColumn:
          type: string
          description: Source column to tag with the HANDLE semantic tag. Must be TEXT, NUMBER, or HANDLE. Import mode only.
      description: 'Body for POST /v1/elements. Three modes: (1) import — `cloudLinkId` + `database`/`schema`/`table`/`idColumn`/`titleColumn`; columns are discovered from the source table and `fields` must be omitted. (2) native-at-link — `cloudLinkId` only (no source-table group); a new physical table is created at the cloud link''s configured database/schema; supply `fields` for the schema or omit for system defaults. (3) native — omit both `cloudLinkId` and the source-table group; the element lives on the organization''s system cloud link.'
    ElementUpdateRequest:
      type: object
      properties:
        recordCreateTypes:
          $ref: '#/components/schemas/RecordCreateTypesInput'
        workflowValuePerAutomation:
          type: number
        allowForwardedEmailIngestion:
          type: boolean
        categoryId:
          type: string
          description: Aspect category to file the element under
          format: uuid
        description:
          type: string
          description: Element description
        name:
          type: string
          description: Element display name
        allowInlineImageIngestion:
          type: boolean
        icon:
          type: string
        allowAnonymousEmailCreation:
          type: boolean
        color:
          type: string
      description: 'Body for PUT /v1/elements/{alias}. Partial update: only the fields present are changed. Source binding (cloud link, source table, field schema) is fixed at create time and cannot be edited here.'
    AspectFieldType:
      type: string
      description: The Elementum field data type
      enum:
      - ATTACHMENT_ID
      - BOOLEAN
      - DATE
      - DATETIME
      - DECIMAL
      - GROUP_ID
      - HANDLE
      - HTML
      - JSON
      - MULTI_PICKLIST
      - NUMBER
      - PICKLIST
      - TEXT
      - USER_ID
    CloudOptionsInput:
      type: object
      properties:
        snowflake:
          $ref: '#/components/schemas/SnowflakeOptionsInput'
    Aspect:
      type: object
      properties:
        configured:
          type: boolean
          description: Whether the aspect has been fully configured
        status:
          type: string
          description: Lifecycle status (DRAFT, ACTIVE, ARCHIVED, …)
        description:
          type: string
          description: The aspect description
        __typename:
          type: string
          description: The aspect variant (AspectApp, AspectElement, AspectTask, AspectTransaction)
        icon:
          type: string
          description: The aspect icon
        namespace:
          type: string
          description: The aspect namespace (lowercase identifier used in URLs)
        handle:
          type: string
          description: The aspect handle (uppercase identifier used in record handles)
        readOnly:
          type: boolean
        sourceType:
          $ref: '#/components/schemas/AspectSourceType'
        color:
          type: string
          description: The aspect color
        id:
          type: string
          description: The aspect ID
          format: uuid
        name:
          type: string
          description: The aspect display name
        category:
          $ref: '#/components/schemas/AspectCategoryRef'
    SnowflakeOptionsInput:
      type: object
      properties:
        hybridTable:
          type: boolean
          description: Use a Snowflake hybrid table
    RecordCreateTypesInput:
      type: object
      properties:
        agents:
          type: boolean
          description: Whether records can be created by agents
        email:
          type: boolean
          description: Whether records can be created via inbound email
        services:
          type: boolean
          description: Whether records can be created by services
        api:
          type: boolean
          description: Whether records can be created via the API
        automations:
          type: boolean
          description: Whether records can be created by automations
        manual:
          type: boolean
          description: Whether records can be created manually in the UI
  responses:
    '422':
      description: Unprocessable Entity
    '404':
      description: Not Found
    '401':
      description: Unauthorized
    '403':
      description: Forbidden
    '400':
      description: Bad Request
    '500':
      description: Internal Server Error
    '429':
      description: Too Many Requests
  parameters:
    alias:
      name: alias
      in: path
      description: The app's namespace or its UUID
      required: true
      schema:
        type: string
        format: string
  securitySchemes:
    ClientCredentials:
      type: oauth2
      flows:
        clientCredentials:
          tokenUrl: /oauth/token
externalDocs:
  description: Find out more about Elementum
  url: https://www.elementum.com/