Lytics Segment ML API

SegmentML provides a framework for building custom machine learning models directly in Lytics. Lytics SegmentML models are self-training, continuously-updating and real-time. SegmentML models are built by identifying: 1. A segment of users, called the **Target Segment** who exhibit behavior for *prediction*, 2. A segment of users, called the **Source Segment** to be candidates for model *evaluation*, or scoring. Models are built with a variety of pre-selected candidate features, which include behavioral scores and content affinities, and can additionally support any custom field available in Lytics user profiles. Attributes concerning the SegmentML model's setup configuration are detailed in **SegmentML Create**. Attributes concerning the model's results are defined in **SegmentML Model Fetch**. Generic attributes from SegmentML model GET and POST: | field | DataType | Description | |-------------- |------------------|---------------| | name | string | The model's name | state | string | The state of the model: Either *building*, *invalid*, or *complete* | reason | string | If the state is *invalid* the reason will denote the error | created | string | Date and time the model was created

Operations 4

GET /api/segmentml/{id} SegmentML Model Fetch #
DELETE /api/segmentml/{id} SegmentML Delete #
POST /api/segmentml SegmentML Create #
GET /api/segmentml/_dependencies/{modelname} SegmentML Dependencies #

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/lytics-segmentml-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 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

lytics-segmentml-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: V1 Lytics Segment ML API
  version: 1.0.0
  description: "The Lytics API is a _restful_ *JSON* api that includes:\n* *Data Collection* api's for collection, and upload of custom data.\n* *Personalization api* for real-time user profile usage in personalization.\n* *Segmentation api* for lists of users, and creating/managing the segmentation rules.\n* *Catalog api* for schema information.\n* *Content api* for content recommendation, and content-classification to drive personalization.\n* *Management api* for general account management.\n## Authentication\nThe *Lytics API* supports authentication using one of the following:\nLogin to your account [Lytics App](https://activate.getlytics.com) and navigate to *Account* to find your keys.\nAfter you have acquired your token, use it to access the Lytics API.\nOur api supports two methods for authorization:\n*  query string url parameter, using **access_token**\n*  http **Authorization** HEADER\n\n```\n# example showing passing auth token in header\ncurl -XPOST 'https://api.lytics.io/api/segment' \\\n    -H \"Authorization: pretendtoken8762\" \\\n    -H 'Content-type: application/json' \\\n    -d '{\"notreal\" : []}'\n\n# example as query string parameter\ncurl -XPOST 'https://api.lytics.io/api/segment?access_token=804ef78pretendtoken8762' \\\n    -H 'Content-type: application/json' \\\n    -d '{\"notreal\" : []}'\n\n```\n\nAdditionally, there are two types of authentication token's:\n\n* *User Auth Token* is normally just for the web admin. But may be used on the api, this is a user-specific token, and attributes actions to this user. This token expires.\n\n* *API User* is a less privileged role and does not expire.  But, less history is available on actions.\n\n## IP Whitelisting\n\nFor better security, you can manage access to the Lytics API using the IP address whitelisting api_ip_whitelist setting on your account. This setting will also be applied to manage admin access to your Lytics account.\n\nProvide a CIDR value for the range of IP addresses you trust. Lytics will then ignore any unauthenticated users and/or IP addresses that fall out of the valid range. This means you can grant access to only your trusted users.\n\nWhat is CIDR?\nCIDR is a flexible allocation of IP addresses. Use an [IP address tool] (https://www.ipaddressguide.com/), to convert your IP addresses into a CIDR format, either v4 or v6.\n\n## Documentation Examples\n\nWe use [jq json command line prettifier](https://stedolan.github.io/jq/) in our examples throughout this doc.\n\n## Media Types\n\nOur API is a JSON REST API. We have data-upload api's which support\ncsv uploads as well.\n\nRequests with a message-body use plain JSON to set or update resource states.\n\n## Error States\n\nThe common [HTTP Response Status Codes](https://github.com/for-GET/know-your-http-well/blob/master/status-codes.md) are used.\n\n## Query Parameters\n\nA variety of places our api accepts query parameters that allow a list of values.\nThe documentation will often say it allows `[]string or []int` (meaning an array of strings, or integers).\nWhen this occurs, we allow a variety of formats to pass these.\n\n*  `ids=1234`         convert this to []string{\"123\"}\n\n*  `ids=[123,456]`    convert this to []string{\"123\",\"456\"}\n\n*  `ids=123,456`      convert this to []string{\"123\",\"456\"}\n\n*  `ids=123&ids=456`  convert this to []string{\"123\",\"456\"}\n\n*  `ids[]=123&ids[]=456`  convert this to []string{\"123\",\"456\"}  Note that we alias ids[] = ids"
servers:
- url: https://api.lytics.io
tags:
- name: SegmentML
  description: 'SegmentML provides a framework for building custom machine learning

    models directly in Lytics.  Lytics SegmentML models are self-training,

    continuously-updating and real-time.


    SegmentML models are built by identifying:


    1. A segment of users, called the **Target Segment** who exhibit behavior for *prediction*,


    2. A segment of users, called the **Source Segment** to be candidates for model *evaluation*, or scoring.


    Models are built with a variety of pre-selected candidate features, which include behavioral scores and content affinities, and can additionally support any custom field available in Lytics user profiles.


    Attributes concerning the SegmentML model''s setup configuration are detailed in **SegmentML Create**. Attributes concerning the model''s results are defined in **SegmentML Model Fetch**.


    Generic attributes from SegmentML model GET and POST:


    | field          | DataType         | Description   |

    |--------------  |------------------|---------------|

    | name           | string           | The model''s name

    | state          | string           | The state of the model: Either *building*, *invalid*, or *complete*

    | reason         | string           | If the state is *invalid* the reason will denote the error

    | created        | string           | Date and time the model was created'
paths:
  /api/segmentml/{id}:
    get:
      responses:
        '200':
          description: OK
          headers: {}
      security:
      - ApiKeyAuth: []
      summary: SegmentML Model Fetch
      operationId: SegmentML Model Fetch
      description: 'Get a SegmentML model.


        Additional atttributes from a completed SegmentML model GET response:


        | field                 | DataType         | Description   |

        |-----------------------|------------------|---------------|

        | features: kind        | string           | The field is either a Lytics Segment feature (*segment*), a lql/user-field feature (*lql*), a Lytics Behavioral Score feature (*score*), or a Lytics Content Affinity feature (*content*)

        | features: fieldtype   | string           | Field type is either *numeric* or *categorical*

        | features: name        | string           | The name of a field

        | features: importance  | number           | The relative importance of a field in the model

        | features: correlation | number           | Correlation between specific field and target

        | features: impact      | object           | The impact object details the Lift and shows the marginal effect of a feature on the predicted outcome of the model

        | mse                   | number           | Mean-squared error value

        | rsq                   | number           | R-squared value or coefficient of determination

        | false_negative        | number           | The number of users in the source segment who are predicted to be in the target segment.

        | false_positive        | number           | The number of users in the target segment who are not predicted to be in the target segment.

        | true_negative         | number           | The number of users in the source segment who are not predicted to be in the target segment.

        | true_positive         | number           | The number of users in the target segment who are predicted to be in the target segment.

        | success               | []number         | Number of successful predictions for a given prediction value

        | failure               | []number         | Number of failed predictions for a given prediction value

        | auc                   | number           | Area under the ROC curve

        | threshold             | number           | Optimal decision threshold to minimize false-positives and false-negatives

        | accuracy              | number           | A value that represents the accuracy of the model; scale ranges from 0 (least accurate) to 10 (most accurate).

        | reach                 | number           | A value that represents the number of source users that look like target users; scale ranges from 0 (low reach) to 10 (high reach).

        | model_health          | number           | The overall health of the model (i.e. "healthy", "unhealthy")

        | msgs                  | number           | Messages for the user about the model with levels of severity (i.e. "debug", "info", "warn", "error")


        To learn more about the metrics false negative, false positive etc., check out [binary classification](https://en.wikipedia.org/wiki/Binary_classification).


        ```

        # Curl example of getting a SegmentML model

        curl -s -J -XGET "https://api.lytics.io/api/segmentml/all::smt_power" -H "Authorization: $LIOKEY"

        ```'
      tags:
      - SegmentML
      parameters:
      - name: account_id
        in: query
        description: Your Lytics account ID.
        required: false
        schema:
          type: string
      - name: id
        in: path
        description: ID of the SegmentML model to retrieve, of the form `SOURCE_SLUG::TARGET_SLUG`.
        required: true
        example: source::target
        schema:
          type: string
    delete:
      responses:
        '204':
          description: No Content
          headers: {}
      security:
      - ApiKeyAuth: []
      summary: SegmentML Delete
      operationId: SegmentML Delete
      description: 'Delete a SegmentML model.


        ```sh

        # Curl example of deleting a SegmentML model

        curl -s -J -XDELETE "https://api.lytics.io/api/segmentml/all::smt_power" -H "Authorization: $LIOKEY"

        ```'
      tags:
      - SegmentML
      parameters:
      - name: account_id
        in: query
        description: Your Lytics account ID.
        required: false
        schema:
          type: string
      - name: id
        in: path
        description: ID of the SegmentML model to delete, of the form `SOURCE_SLUG::TARGET_SLUG`.
        required: true
        example: source::target
        schema:
          type: string
  /api/segmentml:
    post:
      responses:
        '201':
          description: Created
          headers: {}
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SegmentMLModel'
              examples:
                response:
                  value:
                    name: test_rf
                    state: building
                    reason: ''
                    created: '2018-07-10T16:10:54.456003352-07:00'
                    conf:
                      source:
                        aid: 123
                        account_id: lol
                        id: ''
                        name: all
                        is_public: false
                        slug_name: ''
                        description: ''
                        author_id: ''
                        updated: '0001-01-01T00:00:00Z'
                        created: '2018-07-10T16:10:54.442558895-07:00'
                        invalid: false
                        invalid_reason: ''
                        deleted: false
                        datemath_calc: false
                        forward_datemath: false
                        save_hist: false
                        schedule_exit: false
                        tags: null
                      target:
                        aid: 123
                        account_id: lol
                        id: ''
                        name: goal
                        is_public: false
                        slug_name: ''
                        description: ''
                        author_id: ''
                        updated: '0001-01-01T00:00:00Z'
                        created: '2018-07-10T16:10:54.442559277-07:00'
                        invalid: false
                        invalid_reason: ''
                        deleted: false
                        datemath_calc: false
                        forward_datemath: false
                        save_hist: false
                        schedule_exit: false
                        tags: null
                      target_field: null
                      model_name: ''
                      additional: null
                      collections: null
                      collect: 0
                      use_scores: true
                      use_content: false
                      build_only: false
                      auto_tune: false
      security:
      - ApiKeyAuth: []
      summary: SegmentML Create
      operationId: SegmentML Create
      description: "Create a new SegmentML model.\n\nModel configuration can be specified either through sending the options\nas a flat JSON object POST body or through URL parameters on the request.\n\n```sh\n# Curl example of creating a SegmentML model\ncurl -s -J -XPOST \"https://api.lytics.io/api/segmentml\" -H \"Authorization: $LIOKEY\" -d '\n{\n    \"source\": \"all\",\n    \"target\": \"smt_power\",\n    \"use_scores\": true\n}\n'\n```"
      tags:
      - SegmentML
      parameters:
      - name: account_id
        in: query
        description: Your Lytics account ID.
        required: false
        schema:
          type: string
      - name: source
        in: query
        description: ID or slug of the source segment.
        required: true
        example: all
        schema:
          type: string
      - name: target
        in: query
        description: ID or slug of the target segment. **Required** if target field is not supplied.
        required: false
        example: smt_power
        schema:
          type: string
      - name: use_scores
        in: query
        description: Include raw behavioral scores as features in the model (usually very useful).
        required: false
        example: 'true'
        schema:
          type: boolean
      - name: target_field
        in: query
        description: Slug of the target field. Cannot provide both a target and a target field, hence required if target segment is not indicated (see above).
        required: false
        example: LTV
        schema:
          type: string
      - name: use_content
        in: query
        description: If true, include content affinities as features in the model.
        required: false
        example: 'false'
        schema:
          type: boolean
      - name: aspect_collections
        in: query
        description: List of Segment Collections to include in the model.  Possible values are "email", "web", "support", "mobile", "commerce", "behaviors", "content".
        required: false
        example: '["web", "mobile"]'
        schema:
          type: string
      - name: additional_fields
        in: query
        description: List of additional user fields to include in the model.
        required: false
        example: '["age", "country"]'
        schema:
          type: string
      - name: model_only
        in: query
        description: Build the model without scoring each user. This is useful during model building exercises when comparing efficiency and accuracy between models. Set true by default unless **evalonly** is selected.
        required: false
        example: 'true'
        schema:
          type: boolean
      - name: eval_only
        in: query
        description: If true, a previously built model is used to rescore users. Only the source and target parameters are needed in the API call to to identify which model to use.
        required: false
        example: 'false'
        schema:
          type: boolean
      - name: auto_tune
        in: query
        description: If true, enable auto-tune feature selection.
        required: false
        example: 'false'
        schema:
          type: boolean
      - name: tune_model
        in: query
        description: If true, model tuning parameters are optimized before any models are built. Experimental.
        required: false
        example: 'false'
        schema:
          type: boolean
      - name: tags
        in: query
        description: Includes tags to be associated with the model.
        required: false
        example: '["increase momentum", "mobile users"]'
        schema:
          type: string
      - name: re_run
        in: query
        description: If true, re-run the model every week.
        required: false
        example: 'false'
        schema:
          type: boolean
      - name: save_segments
        in: query
        description: "If true, this saves three different segments:\n    1) Users from source and target segments who \"look like\" users from the target segment.\n    2) Users not in the target segment.\n    3) Users from the source segment who look like users from the target segment.\n"
        required: false
        example: 'false'
        schema:
          type: boolean
      - name: as_is
        in: query
        description: If true, do not remove any of the model features when creating the model.
        required: false
        example: 'false'
        schema:
          type: boolean
      - name: num_to_train
        in: query
        description: The number of samples to collect from both the source and target segment for feature matrices.  Defaults to 5,000.
        required: false
        example: '5000'
        schema:
          type: number
      - name: cor_threshold
        in: query
        description: Threshold (0.0-1.0) at which to remove correlated features.
        required: false
        example: '0.9'
        schema:
          type: number
  /api/segmentml/_dependencies/{modelname}:
    get:
      responses:
        '200':
          description: OK
          headers: {}
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SegmentMLDependenciesModel'
              examples:
                response:
                  value:
                    message: success
                    status: 200
                    data:
                      fields:
                        lytics_score_frequency:
                        - - 1
                          - 0.5283225806451614
                        - - 4.6
                          - 0.5283225806451614
                        - - 8.2
                          - 0.5281612903225807
                        lytics_score_intensity:
                        - - 1
                          - 0.5283225806451614
                        - - 4.6
                          - 0.5283225806451614
                        - - 8.2
                          - 0.5281612903225807
      security:
      - ApiKeyAuth: []
      summary: SegmentML Dependencies
      operationId: SegmentML Dependencies
      description: ''
      tags:
      - SegmentML
      parameters:
      - name: account_id
        in: query
        description: Your Lytics account ID.
        required: false
        schema:
          type: string
      - name: modelname
        in: path
        description: Name of the model to get dependencies for.
        required: true
        example: my_model
        schema:
          type: string
components:
  schemas:
    SegmentMLDependenciesModel:
      type: object
      properties:
        message:
          type: string
        status:
          type: number
        data:
          type: object
          properties:
            fields:
              type: object
              properties:
                lytics_score_frequency:
                  type: array
                  items:
                    type: array
                    items: {}
                lytics_score_intensity:
                  type: array
                  items:
                    type: array
                    items: {}
      example:
        message: success
        status: 200
        data:
          fields:
            lytics_score_frequency:
            - - 1
              - 0.5283225806451614
            - - 4.6
              - 0.5283225806451614
            - - 8.2
              - 0.5281612903225807
            lytics_score_intensity:
            - - 1
              - 0.5283225806451614
            - - 4.6
              - 0.5283225806451614
            - - 8.2
              - 0.5281612903225807
    SegmentMLModel:
      type: object
      properties:
        name:
          type: string
        state:
          type: string
        reason:
          type: string
        created:
          type: string
        conf:
          type: object
          properties:
            source:
              type: object
              properties:
                aid:
                  type: number
                account_id:
                  type: string
                id:
                  type: string
                name:
                  type: string
                is_public:
                  type: boolean
                slug_name:
                  type: string
                description:
                  type: string
                author_id:
                  type: string
                updated:
                  type: string
                created:
                  type: string
                invalid:
                  type: boolean
                invalid_reason:
                  type: string
                deleted:
                  type: boolean
                datemath_calc:
                  type: boolean
                forward_datemath:
                  type: boolean
                save_hist:
                  type: boolean
                schedule_exit:
                  type: boolean
                tags: {}
            target:
              type: object
              properties:
                aid:
                  type: number
                account_id:
                  type: string
                id:
                  type: string
                name:
                  type: string
                is_public:
                  type: boolean
                slug_name:
                  type: string
                description:
                  type: string
                author_id:
                  type: string
                updated:
                  type: string
                created:
                  type: string
                invalid:
                  type: boolean
                invalid_reason:
                  type: string
                deleted:
                  type: boolean
                datemath_calc:
                  type: boolean
                forward_datemath:
                  type: boolean
                save_hist:
                  type: boolean
                schedule_exit:
                  type: boolean
                tags: {}
            target_field: {}
            model_name:
              type: string
            additional: {}
            collections: {}
            collect:
              type: number
            use_scores:
              type: boolean
            use_content:
              type: boolean
            build_only:
              type: boolean
            auto_tune:
              type: boolean
      example:
        name: test_rf
        state: building
        reason: ''
        created: '2018-07-10T16:10:54.456003352-07:00'
        conf:
          source:
            aid: 123
            account_id: lol
            id: ''
            name: all
            is_public: false
            slug_name: ''
            description: ''
            author_id: ''
            updated: '0001-01-01T00:00:00Z'
            created: '2018-07-10T16:10:54.442558895-07:00'
            invalid: false
            invalid_reason: ''
            deleted: false
            datemath_calc: false
            forward_datemath: false
            save_hist: false
            schedule_exit: false
            tags: null
          target:
            aid: 123
            account_id: lol
            id: ''
            name: goal
            is_public: false
            slug_name: ''
            description: ''
            author_id: ''
            updated: '0001-01-01T00:00:00Z'
            created: '2018-07-10T16:10:54.442559277-07:00'
            invalid: false
            invalid_reason: ''
            deleted: false
            datemath_calc: false
            forward_datemath: false
            save_hist: false
            schedule_exit: false
            tags: null
          target_field: null
          model_name: ''
          additional: null
          collections: null
          collect: 0
          use_scores: true
          use_content: false
          build_only: false
          auto_tune: false
  securitySchemes:
    ApiKeyAuth:
      in: header
      name: Authorization
      type: apiKey
x-readme:
  explorer-enabled: true
  proxy-enabled: true