Lytics · OpenAPI Overlay 1.0.0

API Evangelist conversational phrasing for Lytics Content API

31 actions 31 updates phrasing extends openapi/lytics-content-api-openapi.yml
Generated by API Evangelist Written by API Evangelist tooling for Lytics's API. It is a proposal applied on top of the contract, not a document Lytics publishes.
View Overlay File View on GitHub Overlay Specification

What the actions change

x-apievangelist-phrasing

Targets 31 · first 16 shown; the file carries all of them

$.info
$.paths['/api/content/topic'].get
$.paths['/api/content/topic/{topic}'].get
$.paths['/api/content/rollup/{label}'].get
$.paths['/api/content/topicrollup'].get
$.paths['/api/content/topicblocklist'].get
$.paths['/api/content/topicblocklist'].put
$.paths['/api/content/topicblocklist'].post
$.paths['/api/content/topicrollup/{id}'].get
$.paths['/api/content/topicrollup/{id}'].post
$.paths['/api/content/topicrollup/{id}'].delete
$.paths['/api/content/doc'].get
$.paths['/api/content/doc/classify'].get
$.paths['/api/content/doc/classify'].post
$.paths['/api/content/recommend/user/{fieldname}/{fieldval}'].get
$.paths['/api/content/recommend/segment/{segId}'].get

OpenAPI Overlay

Raw ↑
# Generated by API Evangelist (build-phrasing.py). Our phrasing, not observed demand.
overlay: 1.0.0
info:
  title: API Evangelist conversational phrasing for Lytics Content API
  version: 1.0.0
extends: openapi/lytics-content-api-openapi.yml
actions:
- target: $.info
  update:
    x-apievangelist-phrasing:
      method: generated
      generated: '2026-10-02'
      generator: build-phrasing.py
      label: Generated by API Evangelist
      operations: 30
- target: $.paths['/api/content/topic'].get
  update:
    x-apievangelist-phrasing:
      intent: List topics in the content graph
      effect: read
      questions:
      - Which topics does my content graph contain?
      - Can I cap how many content topics come back?
      instructions:
      - text: List the topics in my content graph.
      - text: Show the first {limit} content topics.
        slots:
          limit: query.limit
      method: generated
      generated: '2026-10-01'
- target: $.paths['/api/content/topic/{topic}'].get
  update:
    x-apievangelist-phrasing:
      intent: Get a summary of one content topic
      effect: read
      questions:
      - Can I see a summary for a single content topic?
      - What does the content graph know about one specific topic?
      instructions:
      - text: Summarize content topic {topic}.
        slots:
          topic: path.topic
      - text: Show me the summary for topic {topic}.
        slots:
          topic: path.topic
      method: generated
      generated: '2026-10-01'
- target: $.paths['/api/content/rollup/{label}'].get
  update:
    x-apievangelist-phrasing:
      intent: Get a summary of a topic rollup by label
      effect: read
      questions:
      - Can I get a summary of a topic rollup using its label?
      - What does a labelled rollup of topics look like in aggregate?
      instructions:
      - text: Summarize the topic rollup labelled {label}.
        slots:
          label: path.label
      - text: Show the rollup summary for label {label}.
        slots:
          label: path.label
      method: generated
      generated: '2026-10-01'
- target: $.paths['/api/content/topicrollup'].get
  update:
    x-apievangelist-phrasing:
      intent: List topic rollups
      effect: read
      questions:
      - Which topic rollups have been set up on my account?
      - Can I see all my topic rollups at once?
      instructions:
      - text: List all my topic rollups.
      - text: Show every topic rollup on the account.
      method: generated
      generated: '2026-10-01'
- target: $.paths['/api/content/topicblocklist'].get
  update:
    x-apievangelist-phrasing:
      intent: Get the blocked topics list
      effect: read
      questions:
      - Which content topics are currently blocklisted?
      - Can I see the topics I've excluded from my content graph?
      instructions:
      - text: Show my topic blocklist.
      - text: List the topics I have blocked.
      method: generated
      generated: '2026-10-01'
- target: $.paths['/api/content/topicblocklist'].put
  update:
    x-apievangelist-phrasing:
      intent: Replace the whole topic blocklist
      effect: write
      questions:
      - Can I overwrite my entire topic blocklist with a new set of topics?
      - Is there a way to replace every blocked topic in one call?
      instructions:
      - text: Replace my topic blocklist with a new list of topics.
      - text: Overwrite the full set of blocked topics.
      method: generated
      generated: '2026-10-01'
- target: $.paths['/api/content/topicblocklist'].post
  update:
    x-apievangelist-phrasing:
      intent: Add or remove topics on the blocklist
      effect: write
      questions:
      - Can I add a few topics to my blocklist without replacing the rest?
      - How do I un-block a topic I blocked earlier?
      instructions:
      - text: Add these topics to my existing topic blocklist.
      - text: Un-block a topic by removing it from the blocklist.
      method: generated
      generated: '2026-10-01'
- target: $.paths['/api/content/topicrollup/{id}'].get
  update:
    x-apievangelist-phrasing:
      intent: Get a topic rollup by id
      effect: read
      questions:
      - Can I fetch a single topic rollup by its id?
      - Which topics are inside a particular rollup?
      instructions:
      - text: Fetch topic rollup {id}.
        slots:
          id: path.id
      - text: Show the topics in rollup {id}.
        slots:
          id: path.id
      method: generated
      generated: '2026-10-01'
- target: $.paths['/api/content/topicrollup/{id}'].post
  update:
    x-apievangelist-phrasing:
      intent: Create a topic rollup
      effect: write
      questions:
      - Can I group several content topics into a named rollup?
      - What's needed to create a new topic rollup?
      instructions:
      - text: Create topic rollup {id}.
        slots:
          id: path.id
      - text: Set up a new rollup {id} grouping related topics.
        slots:
          id: path.id
      method: generated
      generated: '2026-10-01'
- target: $.paths['/api/content/topicrollup/{id}'].delete
  update:
    x-apievangelist-phrasing:
      intent: Delete a topic rollup
      effect: destructive
      questions:
      - Can I delete a topic rollup I no longer need?
      - Does removing a rollup affect the topics inside it?
      instructions:
      - text: Delete topic rollup {id}.
        slots:
          id: path.id
      - text: Remove rollup {id} from my account.
        slots:
          id: path.id
      method: generated
      generated: '2026-10-01'
- target: $.paths['/api/content/doc'].get
  update:
    x-apievangelist-phrasing:
      intent: Look up content documents by URL or id
      effect: read
      questions:
      - Can I fetch stored content documents by their URLs?
      - What does the content table hold for a given document id?
      instructions:
      - text: Get the content documents for URLs {urls}.
        slots:
          urls: query.urls
      - text: Look up content documents with ids {ids}.
        slots:
          ids: query.ids
      method: generated
      generated: '2026-10-01'
- target: $.paths['/api/content/doc/classify'].get
  update:
    x-apievangelist-phrasing:
      intent: Test-classify a document without saving it
      effect: read
      questions:
      - Can I see what topics a page would get without adding it to my corpus?
      - Is there a dry-run way to classify some text for debugging?
      instructions:
      - text: Classify {url} for debugging without adding it to the corpus.
        slots:
          url: query.url
      - text: 'Dry-run topic classification on this text: {text}.'
        slots:
          text: query.text
      method: generated
      generated: '2026-10-01'
- target: $.paths['/api/content/doc/classify'].post
  update:
    x-apievangelist-phrasing:
      intent: Classify a document and add it to the corpus
      effect: write
      questions:
      - Can I classify a URL and have it saved into my content corpus at the same time?
      - What topics get assigned when I classify and store a document?
      instructions:
      - text: Classify {url} and add it to the content corpus.
        slots:
          url: query.url
      - text: 'Classify this text and save it as a document: {text}.'
        slots:
          text: query.text
      method: generated
      generated: '2026-10-01'
- target: $.paths['/api/content/recommend/user/{fieldname}/{fieldval}'].get
  update:
    x-apievangelist-phrasing:
      intent: Recommend content for a user
      effect: read
      questions:
      - Can I get personalized content recommendations for one user?
      - Can recommendations skip content the user has already seen?
      - 'Which ranking options are there for recommendations: popular, recent or affinity?'
      instructions:
      - text: Recommend content from collection {contentsegment} for the user whose {fieldname} is {fieldval}.
        slots:
          contentsegment: query.contentsegment
          fieldname: path.fieldname
          fieldval: path.fieldval
      - text: Give the user with {fieldname} {fieldval} {limit} recommendations from {contentsegment} ranked by {rank}.
        slots:
          fieldname: path.fieldname
          fieldval: path.fieldval
          limit: query.limit
          contentsegment: query.contentsegment
          rank: query.rank
      method: generated
      generated: '2026-10-01'
- target: $.paths['/api/content/recommend/segment/{segId}'].get
  update:
    x-apievangelist-phrasing:
      intent: Recommend content for an audience segment
      effect: read
      questions:
      - Can I get content recommendations for a whole audience segment rather than one user?
      - What content would best suit everyone in a segment?
      instructions:
      - text: Recommend content for segment {segId}.
        slots:
          segId: path.segId
      - text: Suggest {limit} pieces of content for audience segment {segId}.
        slots:
          limit: query.limit
          segId: path.segId
      method: generated
      generated: '2026-10-01'
- target: $.paths['/api/content/recommend/{account}/user/{fieldname}/{fieldval}'].get
  update:
    x-apievangelist-phrasing:
      intent: Get public content recommendations for a user
      effect: read
      questions:
      - Can I fetch content recommendations from the public endpoint that names the account in the path?
      - Is there a recommendation call I can use from a public page for a given account?
      instructions:
      - text: Get public recommendations from account {account} collection {contentsegment} for the user with {fieldname} {fieldval}.
        slots:
          account: path.account
          contentsegment: query.contentsegment
          fieldname: path.fieldname
          fieldval: path.fieldval
      - text: Using the public endpoint for account {account}, recommend {limit} items from {contentsegment} to {fieldname} {fieldval}.
        slots:
          account: path.account
          limit: query.limit
          contentsegment: query.contentsegment
          fieldname: path.fieldname
          fieldval: path.fieldval
      method: generated
      generated: '2026-10-01'
- target: $.paths['/api/content/taxonomy'].get
  update:
    x-apievangelist-phrasing:
      intent: Get the topic taxonomy graph
      effect: read
      questions:
      - Can I see how my content topics relate to each other as a graph?
      - Is the topic taxonomy capped at a certain number of topics?
      instructions:
      - text: Show my content topic taxonomy.
      - text: 'Build the topic taxonomy graph with up to {limit} topics, split into cliques: {cliques}.'
        slots:
          limit: query.limit
          cliques: query.cliques
      method: generated
      generated: '2026-10-01'
- target: $.paths['/api/content/corpus'].post
  update:
    x-apievangelist-phrasing:
      intent: Add a document to the content corpus
      effect: write
      questions:
      - Can I add a page to my content library so it can be recommended?
      - Can I add raw text with my own topics to the corpus?
      instructions:
      - text: Add {url} to my content corpus.
        slots:
          url: query.url
      - text: 'Add this text to the corpus tagged with topics {topics}: {text}.'
        slots:
          topics: query.topics
          text: query.text
      method: generated
      generated: '2026-10-01'
- target: $.paths['/api/content/filter/topic'].get
  update:
    x-apievangelist-phrasing:
      intent: Plot content topics for a segment
      effect: read
      questions:
      - Can I plot content topic data filtered to one segment?
      - What topic distribution shows up for a given audience?
      instructions:
      - text: Plot content topics for segment {segment_id}.
        slots:
          segment_id: query.segment_id
      - text: Show a topic plot with filters {filters}, limited to {limit} results.
        slots:
          filters: query.filters
          limit: query.limit
      method: generated
      generated: '2026-10-01'
- target: $.paths['/api/content/doc/{docField}/{docId}/topic/{topicLabel}'].post
  update:
    x-apievangelist-phrasing:
      intent: Tag a document with a topic
      effect: write
      questions:
      - Can I manually add a topic to a specific document?
      - Can I set how relevant a topic is when I attach it to content?
      instructions:
      - text: Add topic {topicLabel} to the document whose {docField} is {docId}.
        slots:
          topicLabel: path.topicLabel
          docField: path.docField
          docId: path.docId
      - text: Tag document {docField} {docId} with {topicLabel} at relevance {relevance}.
        slots:
          docField: path.docField
          docId: path.docId
          topicLabel: path.topicLabel
          relevance: query.relevance
      method: generated
      generated: '2026-10-01'
- target: $.paths['/api/content/doc/{docField}/{docId}/topic/{topicLabel}'].delete
  update:
    x-apievangelist-phrasing:
      intent: Remove a topic from a document
      effect: destructive
      questions:
      - Can I take a wrong topic off a document?
      - Is it possible to detach a topic from one piece of content?
      instructions:
      - text: Remove topic {topicLabel} from the document whose {docField} is {docId}.
        slots:
          topicLabel: path.topicLabel
          docField: path.docField
          docId: path.docId
      - text: Untag {topicLabel} from document {docField} {docId}.
        slots:
          topicLabel: path.topicLabel
          docField: path.docField
          docId: path.docId
      method: generated
      generated: '2026-10-01'
- target: $.paths['/api/content/crawl'].post
  update:
    x-apievangelist-phrasing:
      intent: Start a crawl of a website
      effect: write
      questions:
      - Can I kick off a crawl of my site to pull its content in?
      - Can one crawl cover several domains?
      instructions:
      - text: Start a content crawl of {domain}.
        slots:
          domain: query.domain
      - text: Crawl the domains {domains} for content.
        slots:
          domains: query.domains
      method: generated
      generated: '2026-10-01'
- target: $.paths['/api/content/metrics'].get
  update:
    x-apievangelist-phrasing:
      intent: Get account content metrics
      effect: read
      questions:
      - What content metrics does my account have?
      - Can I see overall stats about my content library?
      instructions:
      - text: Show my account's content metrics.
      - text: Fetch the content stats for my account.
      method: generated
      generated: '2026-10-01'
- target: $.paths['/api/content/topic/cluster'].get
  update:
    x-apievangelist-phrasing:
      intent: Preview the most central topic clusters
      effect: read
      questions:
      - Which topics are most central in my topic graph, and what clusters form around them?
      - Can I experiment with penalty and threshold to see different topic clusters?
      instructions:
      - text: Show the {limit} most central topics with their clusters.
        slots:
          limit: query.limit
      - text: Preview topic clusters using penalty {penalty} and threshold {threshold}.
        slots:
          penalty: query.penalty
          threshold: query.threshold
      method: generated
      generated: '2026-10-01'
- target: $.paths['/api/content/topic/cluster'].post
  update:
    x-apievangelist-phrasing:
      intent: Create a set of central topic clusters
      effect: write
      questions:
      - Can I save a collection of central topic clusters for my account?
      - Once I like the clustering settings, how do I create the clusters?
      instructions:
      - text: Create topic clusters from my {limit} most central topics.
        slots:
          limit: query.limit
      - text: Generate and save topic clusters with threshold {threshold}.
        slots:
          threshold: query.threshold
      method: generated
      generated: '2026-10-01'
- target: $.paths['/api/content/topic/cluster/{topicId}'].get
  update:
    x-apievangelist-phrasing:
      intent: Find topics related to one topic
      effect: read
      questions:
      - Which topics are related to a given topic, to help build a rollup?
      - Can I follow topic dependencies inward or outward from one topic?
      instructions:
      - text: Find topics related to {topicId}.
        slots:
          topicId: path.topicId
      - text: Show the cluster around topic {topicId} following direction {direction}.
        slots:
          topicId: path.topicId
          direction: query.direction
      method: generated
      generated: '2026-10-01'
- target: $.paths['/content/align'].post
  update:
    x-apievangelist-phrasing:
      intent: Score content alignment against topics
      effect: read
      questions:
      - How well does my content line up with a set of topics I care about?
      - Can I limit how many aligned documents come back when checking topic alignment?
      instructions:
      - text: Check how my content aligns with topics {topics}.
        slots:
          topics: requestBody.topics
      - text: Return the top {limit} documents aligned with topics {topics} using method {method}.
        slots:
          limit: query.limit
          topics: requestBody.topics
          method: query.method
      method: generated
      generated: '2026-10-02'
- target: $.paths['/content/classify'].post
  update:
    x-apievangelist-phrasing:
      intent: Classify a URL and show the steps taken
      effect: read
      questions:
      - What content gets extracted from a URL when it is classified, step by step?
      - Can I see each classification step the classifier ran on a page?
      instructions:
      - text: Run the classifier on {url} and show the extracted content and steps.
        slots:
          url: query.url
      - text: Explain how {url} was classified, step by step.
        slots:
          url: query.url
      method: generated
      generated: '2026-10-02'
- target: $.paths['/content/enrich'].post
  update:
    x-apievangelist-phrasing:
      intent: Enrich a URL or text with topics
      effect: read
      questions:
      - Can I get topics and inferred topics for a block of plain text?
      - What inferred topics would a URL be enriched with?
      instructions:
      - text: Enrich {url} with topics and inferred topics.
        slots:
          url: query.url
      - text: 'Find the topics and inferred topics in this text: {text}.'
        slots:
          text: query.text
      method: generated
      generated: '2026-10-02'
- target: $.paths['/content/opportunity'].get
  update:
    x-apievangelist-phrasing:
      intent: Get saved content opportunity metrics
      effect: read
      questions:
      - Where are my content opportunities according to the saved metrics?
      - Can I see the content opportunity snapshot from a past day?
      instructions:
      - text: Show my saved content opportunity metrics.
      - text: Get the content opportunity snapshot for {date}.
        slots:
          date: query.date
      method: generated
      generated: '2026-10-02'