Lytics Content API

Content APIs for Lytics Content Affinity Engine, allow for adding content into lytics, getting lists of content, and understanding the content and content-topics. **Content Classification** Content classification refers to the Lytics automated process of taking text, URL, image based content and classifying it to attach topics to content documents. * *Content* A list of content (URLs, Email Documents, Uploaded Documents, Campaigns) and the topics, created dates, etc for each. * *ContentTopics* Categories/Topics are applied to each piece of content. * *User Content Affinity* Based on user interacting with content, the topics (derived from the content they interact with) is enriched into their profile. First, an overview of How this content gets here. * *Observed URLs* Once the lytics tag is on a Website, as users use the website any new URL they interact with is collected. * *Crawling* we can proactively crawl a site. * *Email Tools* We see URLs inside of email campaigns and proactively classify those URLs, as well as the emails themselves. * *Uploaded Content* You may upload content to the **Classify**. **Use Cases** *1) User Content Recomendations* Find content for a user based on their content-affinity. *2) Get List of Content* Rich query api to get content. **Examples** ``` # ad-hoc segment scan from content table # get a list of content documents that # - have aspects=article (aspects = article,product, etc) # - has imageurl curl -s -H "Authorization: $LIOKEY" \ -XGET "https://api.lytics.io/api/segment/scan?sortfield=created&limit=10" -d ' FILTER AND ( EXISTS imageurls aspects = "article" ) FROM content ' | jq '.' # Create a content-segment # - uses "ALIAS" as id for create/update, must be unique curl -s -H "Authorization: $LIOKEY" -H "Content-Type: text/plain" \ -XPOST "$LIOAPI/api/segment" -d ' FILTER AND ( EXISTS imageurls aspects = "article" ) FROM content WITH name = "My Articles" ALIAS my_articles ' | jq '.' # grab just those content-docs using named segment scan curl -s -H "Authorization: $LIOKEY" \ -XGET "https://api.lytics.io/api/segment/my_articles/scan?sortfield=created&limit=10" \ | jq '.' # grab recommended articles for single user curl -s -H "Authorization: $LIODATAKEY" \ -XGET "https://api.lytics.io/api/content/recommend/:your_account_id/user/user_id/123456" \ | jq '.' ```

Operations 30

GET /api/content/topic ContentTopics #
GET /api/content/topic/{topic} ContentTopicSummary #
GET /api/content/rollup/{label} ContentTopicRollupSummary #
GET /api/content/topicrollup ContentTopicRollupList #
GET /api/content/topicblocklist Content Topic Blacklist Fetch #
POST /api/content/topicblocklist Content Topic Blacklist Create #
PUT /api/content/topicblocklist Content Topic Blacklist Update #
GET /api/content/topicrollup/{id} ContentTopicRollup Fetch #
POST /api/content/topicrollup/{id} ContentTopicRollup Create #
DELETE /api/content/topicrollup/{id} ContentTopicRollup Delete #
GET /api/content/doc ContentDocument #
GET /api/content/doc/classify Content Classify #
POST /api/content/doc/classify Content Classify #
GET /api/content/recommend/user/{fieldname}/{fieldval} Content Recommendation #
GET /api/content/recommend/segment/{segId} Content Segment Recommendation #
GET /api/content/recommend/{account}/user/{fieldname}/{fieldval} Public Content Recommendation #
GET /api/content/taxonomy Content Taxonomy #
POST /api/content/corpus Content Corpus #
GET /api/content/filter/topic Content Plot #
POST /api/content/doc/{docField}/{docId}/topic/{topicLabel} Topic Add #
DELETE /api/content/doc/{docField}/{docId}/topic/{topicLabel} Topic Remove #
POST /api/content/crawl Content Crawl #
GET /api/content/metrics Content Metrics #
GET /api/content/topic/cluster Content Topic Clusters #
POST /api/content/topic/cluster Create Content Topic Clusters #
GET /api/content/topic/cluster/{topicId} Content Topic Cluster #
POST /content/align Get content alignment with a set of topics
POST /content/classify Classify a URL
POST /content/enrich Enrich a URL or text with Topics
GET /content/opportunity Get content opportunities

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-content-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-content-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: Lytics Content API
  version: '1.0'
  description: 'Operations tagged Content across 2 of this provider''s published API definitions: lytics-api-v1-openapi.json, lytics-api-v2-openapi.json. Each path carries the servers of the definition it was published in.'
servers:
- url: https://api.lytics.io
- url: https://api.lytics.io/v2
tags:
- name: Content
  description: "Content APIs for Lytics Content Affinity Engine, allow for\nadding content into lytics, getting lists of content, and\nunderstanding the content and content-topics.\n\n**Content Classification**\nContent classification refers to the Lytics automated\nprocess of taking text, URL, image based content\nand classifying it to attach topics to content documents.\n\n* *Content* A list of content (URLs, Email Documents, Uploaded Documents, Campaigns) and\n  the topics, created dates, etc for each.\n\n* *ContentTopics*  Categories/Topics are applied to each piece of content.\n\n* *User Content Affinity* Based on user interacting with content, the topics\n   (derived from the content they interact with) is enriched into their\n   profile.\n\nFirst, an overview of How this content gets here.\n\n* *Observed URLs* Once the lytics tag is on a Website, as users\n  use the website any new URL they interact with is collected.\n\n* *Crawling* we can proactively crawl a site.\n\n* *Email Tools* We see URLs inside of email campaigns and proactively classify\n  those URLs, as well as the emails themselves.\n\n* *Uploaded Content* You may upload content to the **Classify**.\n\n**Use Cases**\n\n*1)  User Content Recomendations*  Find content for a user\n  based on their content-affinity.\n\n*2)  Get List of Content* Rich query api to get content.\n\n**Examples**\n\n```\n\n# ad-hoc segment scan from content table\n# get a list of content documents that\n#  - have aspects=article   (aspects = article,product, etc)\n#  - has imageurl\ncurl -s -H \"Authorization: $LIOKEY\" \\\n -XGET \"https://api.lytics.io/api/segment/scan?sortfield=created&limit=10\" -d '\nFILTER AND (\n EXISTS imageurls\n aspects = \"article\"\n)\nFROM content\n' | jq '.'\n\n# Create a content-segment\n# - uses \"ALIAS\" as id for create/update, must be unique\ncurl -s -H \"Authorization: $LIOKEY\" -H \"Content-Type: text/plain\" \\\n  -XPOST \"$LIOAPI/api/segment\" -d '\nFILTER AND (\n EXISTS imageurls\n aspects = \"article\"\n)\nFROM content\nWITH name = \"My Articles\"\nALIAS my_articles\n' | jq '.'\n\n# grab just those content-docs using named segment scan\ncurl -s -H \"Authorization: $LIOKEY\" \\\n -XGET \"https://api.lytics.io/api/segment/my_articles/scan?sortfield=created&limit=10\" \\\n  | jq '.'\n\n\n# grab recommended articles for single user\n\ncurl -s -H \"Authorization: $LIODATAKEY\" \\\n -XGET \"https://api.lytics.io/api/content/recommend/:your_account_id/user/user_id/123456\" \\\n  | jq '.'\n\n```"
paths:
  /api/content/topic:
    get:
      responses:
        '200':
          description: OK
          headers: {}
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ContentTopicsModel'
              examples:
                response:
                  value:
                    status: 200
                    message: success
                    data:
                    - label: Data-First Marketing
                      doc_count: 275
                      total: 380636
                      missing: 216048
                      present: 143710
                      avg: 0.5983867964798089
                      tags:
                      - custom
                    - label: User Data Unification
                      doc_count: 273
                      total: 380636
                      missing: 216048
                      present: 154068
                      avg: 0.6036863622558337
                      tags:
                      - custom
                    - label: Customer Data Platform
                      doc_count: 313
                      total: 380260
                      missing: 216043
                      present: 159628
                      avg: 0.9704200631406573
                      tags:
                      - custom
      security:
      - ApiKeyAuth: []
      summary: ContentTopics
      operationId: ContentTopics
      description: "Get a list of topics in the content graph.\n\n```\n\ncurl -s -H \"Authorization: $LIOKEY\" \\\n -XGET \"https://api.lytics.io/api/content/topic?limit=10\" | jq '.'\n\n```"
      tags:
      - Content
      parameters:
      - name: account_id
        in: query
        description: Your Lytics account ID.
        required: false
        schema:
          type: string
      - name: limit
        in: query
        description: limit on number of topics to return, default = 500
        required: false
        example: '20'
        schema:
          type: string
    servers:
    - url: https://api.lytics.io
  /api/content/topic/{topic}:
    get:
      responses:
        '200':
          description: OK
          headers: {}
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ContentTopicSummaryModel'
              examples:
                response:
                  value:
                    status: 200
                    message: success
                    data:
                      topics:
                        total: 3232717
                        missing: 2985477
                        present: 239239
                        bucket_none: 8001
                        bucket_low: 26279
                        bucket_mid: 11742
                        bucket_high: 201218
                        avg: 0.90787879293533
                      docs:
                        total: 373
                        urls:
                        - url: www.our-site.com/product/new-product-xyz
                          title: Blue Running Shoes that make you faster
                          topics:
                          - our-site (company)
                          - running
                          - shoes
                          id: '3395466611293777389'
      security:
      - ApiKeyAuth: []
      summary: ContentTopicSummary
      operationId: ContentTopicSummary
      description: ''
      tags:
      - Content
      parameters:
      - name: account_id
        in: query
        description: Your Lytics account ID.
        required: false
        schema:
          type: string
      - name: topic
        in: path
        description: id or slug of topic
        required: true
        example: stuff
        schema:
          type: string
    servers:
    - url: https://api.lytics.io
  /api/content/rollup/{label}:
    get:
      responses:
        '200':
          description: OK
          headers: {}
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ContentTopicRollupSummaryModel'
              examples:
                response:
                  value:
                    data:
                      docs:
                        total: 2
                        urls:
                        - author: Cookie Monster
                          created: '2016-01-14T08:39:01.354824186-07:00'
                          description: you should definitely make these cookies
                          fetched: '2016-07-19T13:39:20.158747984-04:00'
                          id: '4525087172572165639'
                          meta:
                          - og:locale/en_US
                          primary_image: http://cookdiary.net/wp-content/uploads/images/Oatmeal-Chocolate-Chip-Cookies_1441.jpg
                          stream: default
                          title: how to make some cookies
                          topic_relevances:
                            Recipe: 0.64
                            baking: 0.75
                          topic_rollups:
                            Things: 0.75
                          topics:
                          - baking
                          - Recipe
                          updated: '2016-07-19T13:34:18-04:00'
                          url: www.recipes.com/chocolate-chip-cookies
                        - author: The Swedish Chef
                          created: '2016-07-19T13:39:20.158747984-04:00'
                          description: a delicious cake
                          id: '-2119104978705508335'
                          primary_image: http://www.vanillacake.com/cake.jpg
                          stream: default
                          title: Basic Vanilla Cake Recipe
                          topic_relevances:
                            Recipe: 0.64
                            baking: 0.85
                          topic_rollups:
                            Desserts: 0.85
                          topics:
                          - Recipe
                          - baking
                          updated: '2016-07-19T13:29:18-04:00'
                          url: www.recipes.com/cake
                      rollups: null
                    message: success
                    status: 200
      security:
      - ApiKeyAuth: []
      summary: ContentTopicRollupSummary
      operationId: ContentTopicRollupSummary
      description: ''
      tags:
      - Content
      parameters:
      - name: account_id
        in: query
        description: Your Lytics account ID.
        required: false
        schema:
          type: string
      - name: label
        in: path
        description: label of topic-rollup
        required: true
        example: 123abc
        schema:
          type: string
    servers:
    - url: https://api.lytics.io
  /api/content/topicrollup:
    get:
      responses:
        '200':
          description: OK
          headers: {}
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ContentTopicRollupListModel'
              examples:
                response:
                  value:
                    data:
                    - id: 6a7f76ff97ad0e3e96c162f74aee8f8f
                      account_id: 4f7b525bdba058fc096757a6
                      label: Baking rollup
                      created: '2014-08-04T21:18:20.124Z'
                      updated: '2014-08-04T21:18:20.124Z'
                      topics:
                      - label: Recipe
                        value: 0.66
                      - label: baking
                        value: 0.55
      security:
      - ApiKeyAuth: []
      summary: ContentTopicRollupList
      operationId: ContentTopicRollupList
      description: 'Get list of topic-rollups.


        ```

        curl "$LIOAPI/api/content/topicrollup" -s -H "Authorization: $LIOKEY" | jq ''.''

        ```'
      tags:
      - Content
    servers:
    - url: https://api.lytics.io
  /api/content/topicblocklist:
    get:
      responses:
        '200':
          description: OK
          headers: {}
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ContentTopicBlocklistModel'
              examples:
                response:
                  value:
                    status: 200
                    message: success
                    data:
                    - label: Data-First Marketing
                      doc_count: 275
                      total: 380636
                      missing: 216048
                      present: 143710
                      avg: 0.5983867964798089
                      tags:
                      - blacklisted
                    - label: User Data Unification
                      doc_count: 273
                      total: 380636
                      missing: 216048
                      present: 154068
                      avg: 0.6036863622558337
                      tags:
                      - blacklisted
      security:
      - ApiKeyAuth: []
      summary: Content Topic Blacklist Fetch
      operationId: Content Topic Blacklist Fetch
      description: Fetch the blacklisted topics
      tags:
      - Content
    post:
      responses:
        '200':
          description: OK
          headers: {}
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ContentTopicBlocklistModel'
              examples:
                response:
                  value:
                    status: 200
                    message: success
                    data:
                    - label: Data-First Marketing
                      doc_count: 275
                      total: 380636
                      missing: 216048
                      present: 143710
                      avg: 0.5983867964798089
                      tags:
                      - blacklisted
                    - label: User Data Unification
                      doc_count: 273
                      total: 380636
                      missing: 216048
                      present: 154068
                      avg: 0.6036863622558337
                      tags:
                      - blacklisted
      security:
      - ApiKeyAuth: []
      summary: Content Topic Blacklist Create
      operationId: Content Topic Blacklist Create
      description: "Blacklist or un-blacklist topics to an account's topic-blacklist\n\n```\n# to blacklist certain topics\ncurl -s -XPOST \"https://api.lytics.io/api/content/topicblocklist\" \\\n    -H \"Content-type: application/json\" \\\n    -H \"Authorization: $LIOKEY\" \\\n    -d'\n{\n  \"method\": \"add\",\n  \"ids\": [\"Data-First Marketing\", \"User Data Unification\"]\n}\n' | jq '.'\n\n# to unblacklist certain topics\ncurl -s -XPOST \"https://api.lytics.io/api/content/topicblocklist\" \\\n    -H \"Content-type: application/json\" \\\n    -H \"Authorization: $LIOKEY\" \\\n    -d'\n{\n  \"method\": \"delete\",\n  \"ids\": [\"Data-First Marketing\", \"User Data Unification\"]\n}\n' | jq '.'\n\n```"
      tags:
      - Content
    put:
      responses:
        '200':
          description: OK
          headers: {}
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ContentTopicBlocklistModel'
              examples:
                response:
                  value:
                    status: 200
                    message: success
                    data:
                    - label: Data-First Marketing
                      doc_count: 275
                      total: 380636
                      missing: 216048
                      present: 143710
                      avg: 0.5983867964798089
                      tags:
                      - blacklisted
                    - label: User Data Unification
                      doc_count: 273
                      total: 380636
                      missing: 216048
                      present: 154068
                      avg: 0.6036863622558337
                      tags:
                      - blacklisted
      security:
      - ApiKeyAuth: []
      summary: Content Topic Blacklist Update
      operationId: Content Topic Blacklist Update
      description: "Replace topics in an account's topic-blacklist\n\n```\ncurl -s -XPOST \"https://api.lytics.io/api/content/topicblocklist\" \\\n    -H \"Content-type: application/json\" \\\n    -H \"Authorization: $LIOKEY\" \\\n    -d'\n{\n  \"ids\": [\"Data-First Marketing\", \"User Data Unification\"]\n}\n' | jq '.'\n\n```"
      tags:
      - Content
    servers:
    - url: https://api.lytics.io
  /api/content/topicrollup/{id}:
    get:
      responses:
        '200':
          description: OK
          headers: {}
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ContentTopicRollupModel'
              examples:
                response:
                  value:
                    data:
                      id: 6a7f76ff97ad0e3e96c162f74aee8f8f
                      account_id: 4f7b525bdba058fc096757a6
                      label: Baking rollup
                      created: '2014-08-04T21:18:20.124Z'
                      updated: '2014-08-04T21:18:20.124Z'
                      topics:
                      - label: Recipe
                        value: 0.66
                      - label: baking
                        value: 0.55
      security:
      - ApiKeyAuth: []
      summary: ContentTopicRollup Fetch
      operationId: ContentTopicRollup Fetch
      description: Fetch a topic-rollup by **id**
      tags:
      - Content
      parameters:
      - name: account_id
        in: query
        description: Your Lytics account ID.
        required: false
        schema:
          type: string
      - name: id
        in: path
        description: id of topic-rollup
        required: true
        example: 123abc
        schema:
          type: string
    post:
      responses:
        '201':
          description: Created
          headers: {}
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ContentTopicRollupModel'
              examples:
                response:
                  value:
                    data:
                      id: 6a7f76ff97ad0e3e96c162f74aee8f8f
                      account_id: 4f7b525bdba058fc096757a6
                      label: Baking rollup
                      created: '2014-08-04T21:18:20.124Z'
                      updated: '2014-08-04T21:18:20.124Z'
                      topics:
                      - label: Recipe
                        value: 0.66
                      - label: baking
                        value: 0.55
      security:
      - ApiKeyAuth: []
      summary: ContentTopicRollup Create
      operationId: ContentTopicRollup Create
      description: "Create a topic-rollup.\n\n```\ncurl -s -XPOST \"https://api.lytics.io/api/content/topicrollup\" \\\n    -H \"Content-type: application/json\" \\\n    -H \"Authorization: $LIOKEY\" \\\n    -d'\n{\n  \"label\": \"Baking rollup\",\n  \"acctid\": \"123456\",\n  \"topics\": [\n      {\"label\": \"Recipe\"},\n      {\"label\": \"baking\"}\n  ]\n}\n' | jq '.'\n```"
      tags:
      - Content
      parameters:
      - name: account_id
        in: query
        description: Your Lytics account ID.
        required: false
        schema:
          type: string
      - name: id
        in: path
        description: id of topic-rollup
        required: true
        example: 123abc
        schema:
          type: string
    delete:
      responses:
        '204':
          description: No Content
          headers: {}
      security:
      - ApiKeyAuth: []
      summary: ContentTopicRollup Delete
      operationId: ContentTopicRollup Delete
      description: Delete a topic-rollup
      tags:
      - Content
      parameters:
      - name: account_id
        in: query
        description: Your Lytics account ID.
        required: false
        schema:
          type: string
      - name: id
        in: path
        description: id of topic-rollup
        required: true
        example: 123abc
        schema:
          type: string
    servers:
    - url: https://api.lytics.io
  /api/content/doc:
    get:
      responses:
        '200':
          description: OK
          headers: {}
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ContentDocumentModel'
              examples:
                response:
                  value:
                    status: 200
                    message: success
                    data:
                      total: 1
                      urls:
                      - url: www.our-site.com/product/new-product-xyz
                        title: Blue Running Shoes that make you faster
                        topics:
                        - our-site (company)
                        - running
                        - shoes
                        id: '3395466611293777389'
      security:
      - ApiKeyAuth: []
      summary: ContentDocument
      operationId: ContentDocument
      description: ''
      tags:
      - Content
      parameters:
      - name: account_id
        in: query
        description: Your Lytics account ID.
        required: false
        schema:
          type: string
      - name: urls
        in: query
        description: url to look up
        required: false
        example: http//www.getlytics.com/blog/post
        schema:
          type: string
      - name: ids
        in: query
        description: hashed url or campaign id to look up
        required: false
        example: 123abc
        schema:
          type: string
    servers:
    - url: https://api.lytics.io
  /api/content/doc/classify:
    get:
      responses:
        '200':
          description: OK
          headers: {}
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ContentClassifyModel'
              examples:
                response:
                  value:
                    data:
                      id: https://www.getlytics.com/blog/post/improving_google_analytics?utm_source=linkedin
                      url:
                        Params: {}
                        Utm:
                          utm_campaign: null
                          utm_content: null
                          utm_medium: null
                          utm_source: linkedin
                          utm_term: null
                        UserInfo: null
                      url_redirected_from: ''
                      description: 'Stop Pretending Your Insights Are Actionable: Part 1, Google Analytics'
                      long_description: Most analytics tools are used purely for insight discovery rather than empowering action. We explore how the Lytics analytics integrations focus on action and filling the some massive gaps traditional analytics tools miss.
                      type: web
                      stream: ''
                      httpstatus: 0
                      humanLanguage: en
                      tags:
                      - type: meta
                        id: og:title
                        value: 'stop pretending your insights are actionable: part 1, google analytics'
                        source: meta
                        vocab: lytics
                        relevance: 1
                      - type: concept
                        id: Google_Analytics
                        tax:
                        - http://dbpedia.org/ontology/Company
                        - http://dbpedia.org/ontology/Website
                        - http://dbpedia.org/ontology/Work
                        - http://www.w3.org/2002/07/owl#Thing
                        value: Google Analytics
                        source: diffbot
                        vocab: dbpedia
                        relevance: 0.95
                      flags: null
                      images:
                      - url: https://www.getlytics.com/img/blog/defaults/developers.gif
                      primary_image: https://www.getlytics.com/img/blog/defaults/developers.gif
                      videos: null
                      primary_video: ''
                      published: '2015-10-23T00:00:00Z'
                      author: Mark Hayden
                      numpages: 0
                      sitename: Lytics
                      productDescription: ''
                      brand: ''
                      price: ''
                      saveAmount: ''
                      productId: ''
                      created: '2016-06-24T21:20:43.421892991Z'
                      fetched: '2016-06-24T21:20:45.751844316Z'
                      updated: '2016-06-24T21:20:52.367247963Z'
                      enriched:
                        diffbot: '2016-06-24T21:20:52.367248438Z'
                        google: '1970-01-01T00:00:00Z'
                        meta: '2016-06-24T21:20:45.751852586Z'
                        textrazor: '1970-01-01T00:00:00Z'
                      version: 4
                    message: success
                    status: 200
      security:
      - ApiKeyAuth: []
      summary: Content Classify
      operationId: Content Classify Debug
      description: Classify a document without adding the document to the content table corpus. Used for debugging.
      tags:
      - Content
      parameters:
      - name: account_id
        in: query
        description: Your Lytics account ID.
        required: false
        schema:
          type: string
      - name: url
        in: query
        description: url to classify
        required: false
        example: http://myurl
        schema:
          type: string
      - name: text
        in: query
        description: text to classify
        required: false
        example: my text
        schema:
          type: string
    post:
      responses:
        '200':
          description: OK
          headers: {}
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ContentClassifyModel'
              examples:
                response:
                  value:
                    data:
                      id: https://www.getlytics.com/blog/post/improving_google_analytics?utm_source=linkedin
                      url:
                        Params: {}
                        Utm:
                          utm_campaign: null
                          utm_content: null
                          utm_medium: null
                          utm_source: linkedin
                          utm_term: null
                        UserInfo: null
                      url_redirected_from: ''
                      description: 'Stop Pretending Your Insights Are Actionable: Part 1, Google Analytics'
                      long_description: Most analytics tools are used purely for insight discovery rather than empowering action. We explore how the Lytics analytics integrations focus on action and filling the some massive gaps traditional analytics tools miss.
                      type: web
                      stream: ''
                      httpstatus: 0
                      humanLanguage: en
                      tags:
                      - type: meta
                        id: og:title
                        value: 'stop pretending your insights are actionable: part 1, google analytics'
                        source: meta
                        vocab: lytics
                        relevance: 1
                      - type: concept
                        id: Google_Analytics
                        tax:
                        - http://dbpedia.org/ontology/Company
                        - http://dbpedia.org/ontology/Website
                        - http://dbpedia.org/ontology/Work
                        - http://www.w3.org/2002/07/owl#Thing
                        value: Google Analytics
                        source: diffbot
                        vocab: dbpedia
                        relevance: 0.95
                      flags: null
                      images:
                      - url: https://www.getlytics.com/img/blog/defaults/developers.gif
                      primary_image: https://www.getlytics.com/img/blog/defaults/developers.gif
                      videos: null
                      primary_video: ''
                      published: '2015-10-23T00:00:00Z'
                      author: Mark Hayden
                      numpages: 0
                      sitename: Lytics
                      productDescription: ''
                      brand: ''
                      price: ''
                      saveAmount: ''
                      productId: ''
                      created: '2016-06-24T21:20:43.421892991Z'
                      fetched: '2016-06-24T21:20:45.751844316Z'
                      updated: '2016-06-24T21:20:52.367247963Z'
                      enriched:
                        diffbot: '2016-06-24T21:20:52.367248438Z'
                        google: '1970-01-01T00:00:00Z'
                        meta: '2016-06-24T21:20:45.751852586Z'
                        textrazor: '1970-01-01T00:00:00Z'
                      version: 4
                    message: success
                    status: 200
      security:
      - ApiKeyAuth: []
      summary: Content Classify
      operationId: Content Classify
      description: Classify a document and add the document to the content table corpus.
      tags:
      - Content
      parameters:
      - name: account_id
        in: query
        description: Your Lytics account ID.
        required: false
        schema:
          type: string
      - name: url
        in: query
        description: url to classify
        required: false
        example: http://myurl
        schema:
          type: string
      - name: text
        in: query
        description: text to classify
        required: false
        example: my text
        schema:
          type: string
    servers:
    - url: https://api.lytics.io
  /api/content/recommend/user/{fieldname}/{fieldval}:
    get:
      responses:
        '200':
          description: OK
          headers: {}
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ContentRecommendationModel'
              examples:
                response:
                  value:
                    data:
                    - url: www.getlytics.com/blog/post/intent_through_content
                      title: Understanding User Intent Through Content
                      description: Customer Intent comes from understanding the connection between engagement and its contexts. Content modeling and affinity graphs makes interpretation of intent a lot easier. Learn how marketers can benefit from this.
                      topics:
                      - customer data platform
                      - data science
                      - content marketing
                      - personalization
                      topic_relevances:
                        content marketing: 1
                        customer data platform: 1
                        data science: 1
                        personalization: 1
                      primary_image: https://www.getlytics.com/img/blog/posts/intent_through_content/intent_through_content-bg.gif
                      author: ''
                      created: '2016-06-08T16:11:45.599594093Z'
                      id: '-3435113786560588929'
                      sitename: Lytics
                      stream: default
                      path:
                      - blog
                      - blog/post
                      - blog/post/intent_through_content
                      aspects:
                      - article
                      language: unknown
                      updated: '2016-06-09T12:49:36.870359765Z'
                      fetched: '2016-06-09T12:49:35.812654441Z'
                      meta:
                      - og:locale/en_us
                      - og:site_name/lytics
                      - og:title/understanding user intent through content
                      - og:type/article
                      - og:url/https://www.getlytics.com/blog/post/intent_through_content
                      confidence: 0.5916079783099615
                      visited: true
                    message: success
                    status: 200
      security:
      - ApiKeyAuth: []
      summary: Content Recommendation
      operationId: Content Recommendation
      description: ''
      tags:
      - Content
      parameters:
      - name: account_id
        in: query
        description: Your Lytics account ID.
        required: false
        schema:
          type: string
      - name: fieldname
        in: path
        description: field to use to identify a user
        required: true
        example: email
        schema:
          type: string
      - name: fieldval
        in: path
        description: unique identity
        required: true
        example: bob@bob.com
        schema:
          type: string
      - name: contentsegment
        in: query
        description: id, or slug of a content-collection to filter content
        required: true
        example: blog_content
        schema:
          type: string
      - name: limit
        in: query
        description: limit on number of documents to suggest/return
        required: false
        example: '20'


# --- truncated at 32 KB (104 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/lytics/refs/heads/main/openapi/lytics-content-api-openapi.yml