Lucidworks Links API

The Links API manages the links that represent the relationships between Fusion objects. You can see these links in the Object Explorer in the Fusion UI. You can also export and import links using the Objects API. Links are structured as a tuple of (`subject`, `object`, `linkType`). An example would be (`foo`, `bar`, `dependsOn`), which would read as "foo dependsOn bar".

Operations 13

GET /links/status Get the links service status #
GET /links/involving Get all links for a resource #
GET /links/contexts Get app contexts #
POST /links/contexts Update a link's context #
GET /links/app-context List an app's resources #
GET /links/between Get links between resources #

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/lucidworks:lucidworks-links-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

lucidworks-links-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: Fusion Admin Links API
  description: These APIs provide general administrative functions for your Fusion instance. Use these APIs to manage Fusion objects, App Studio objects, connections to Solr clusters, license files, job schedules, and more. You can also use them to create a history of service events.
  termsOfService: https://lucidworks.com/legal/developer-license-agreement/
  contact:
    name: Lucidworks
    url: www.lucidworks.com
    email: support@lucidworks.com
  license:
    name: License of API
    url: https://lucidworks.com/legal/developer-license-agreement/
  version: '5.9'
servers:
- url: https://{FUSION HOST}/api
  description: Fusion
  variables:
    FUSION HOST:
      default: FUSION_HOST
      description: Your environment host.
- url: https://{FUSION HOST}/api/apps/{APP_NAME}
  description: Fusion app
  variables:
    FUSION HOST:
      default: FUSION_HOST
      description: Your environment host.
    APP_NAME:
      default: APP_NAME
      description: The name of your Fusion application.
tags:
- name: Links
  description: 'The Links API manages the links that represent the relationships between Fusion objects. You can see these links in the Object Explorer in the Fusion UI. You can also export and import links using the Objects API.


    Links are structured as a tuple of (`subject`, `object`, `linkType`). An example would be (`foo`, `bar`, `dependsOn`), which would read as "foo dependsOn bar".'
paths:
  /links/status:
    get:
      tags:
      - Links
      summary: Get the links service status
      description: Check the status of the Links service.
      operationId: getStatus_12
      responses:
        '200':
          description: successful operation
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/ServiceStatus'
  /links:
    get:
      tags:
      - Links
      summary: List all links
      description: Get all links, or links matching the given criteria. You can use an asterisk (*) for wildcard matching in the `subject`, `object`, and `linkType` fields.
      operationId: listLinks
      parameters:
      - name: subject
        in: query
        description: Return only links with a matching subject.
        schema:
          type: string
          default: '*'
        example: collection:default_signals_aggr
      - name: object
        in: query
        description: Return only links with a matching object.
        schema:
          type: string
          default: '*'
      - name: linkType
        in: query
        description: 'Return only links with a matching type.<br/><br/>Possible link types:


          * `DependsOn` - The subject depends on the object.


          * `Supports` - The subject is depended on by the object (the reverse of `dependsOn`).


          * `IsPartOf` - The subject is part of the object, where the object is a group.


          * `HasPart` - The subject is a group, of which the object is a member (the reverse of `isPartOf`).


          * `RelatesTo` - The subject relates to the object. This is a uni-directional relationship that associates two objects that have none of the relationships described above.


          * `InContextOf` - The subject exists in the context of the object, which is an app.


          * `HasContext` - The subject is an app that contains the object.


          * `Self` - The subject and the object are the same.'
        required: false
        schema:
          type: string
          enum:
          - dependsOn
          - supports
          - isPartOf
          - hasPart
          - relatesTo
          - inContextOf
          - hasContext
          - self
      - name: transitive
        in: query
        description: Return transitive links.
        schema:
          type: boolean
          default: false
      - name: bypassCache
        in: query
        description: Bypass the cache and retrieve directly from storage.
        schema:
          type: boolean
          default: false
      responses:
        '200':
          description: successful operation
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/Link'
              example:
              - subject: group:4e6ee9a6-d4ab-413a-ac70-a27c1445bb60
                object: collection:default_signals_aggr
                linkType: hasPart
              - subject: group:4e6ee9a6-d4ab-413a-ac70-a27c1445bb60
                object: spark:default_click_signals_aggregation
                linkType: hasPart
              - subject: group:4e6ee9a6-d4ab-413a-ac70-a27c1445bb60
                object: collection:default
                linkType: relatesTo
              - subject: group:4e6ee9a6-d4ab-413a-ac70-a27c1445bb60
                object: collection:default_signals
                linkType: hasPart
    put:
      tags:
      - Links
      summary: Create a link
      description: Link two objects together with a link type.
      operationId: putLink
      requestBody:
        description: A JSON-formatted link definition that specifies the `subject`, `object`, and `linkType`.
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/Link'
            example:
              linkType: supports
              object: index-pipeline:default
              subject: collection:default
        required: false
      responses:
        '200':
          description: successful operation
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Link'
              example:
                subject: collection:default
                object: index-pipeline:default
                linkType: supports
      x-codegen-request-body-name: body
    delete:
      tags:
      - Links
      summary: Delete links
      description: Delete one or more links matching the provided criteria. You can use an asterisk (*) for wildcard matching in the `subject`, `object`, and `linkType` fields.
      operationId: deleteLink
      parameters:
      - name: subject
        in: query
        description: Delete only links with a matching subject.
        schema:
          type: string
        example: collection:default
      - name: object
        in: query
        description: Delete only links with a matching object.
        schema:
          type: string
      - name: linkType
        in: query
        description: 'Delete only links with a matching type.<br/><br/>Possible link types:


          * `DependsOn` - The subject depends on the object.


          * `Supports` - The subject is depended on by the object (the reverse of `dependsOn`).


          * `IsPartOf` - The subject is part of the object, where the object is a group.


          * `HasPart` - The subject is a group, of which the object is a member (the reverse of `isPartOf`).


          * `RelatesTo` - The subject relates to the object. This is a uni-directional relationship that associates two objects that have none of the relationships described above.


          * `InContextOf` - The subject exists in the context of the object, which is an app.


          * `HasContext` - The subject is an app that contains the object.


          * `Self` - The subject and the object are the same.'
        schema:
          type: string
          enum:
          - dependsOn
          - supports
          - isPartOf
          - hasPart
          - relatesTo
          - inContextOf
          - hasContext
          - self
      responses:
        '200':
          description: successful operation
          content: {}
  /links/unlink:
    delete:
      tags:
      - Links
      summary: Unlink two resources
      description: Remove the link between two objects. If `object` is not specified, all links for `subject` are removed.
      operationId: unlink
      parameters:
      - name: subject
        in: query
        description: Subject to unlink.
        schema:
          type: string
      - name: object
        in: query
        description: Object to unlink.
        schema:
          type: string
      responses:
        '200':
          description: successful operation
          content:
            '*/*':
              schema:
                type: integer
                format: int32
  /links/involving:
    get:
      tags:
      - Links
      summary: Get all links for a resource
      description: Get all links involving the resource.
      operationId: getLinksInvolving
      parameters:
      - name: resource
        in: query
        description: Resource to get links for.
        schema:
          type: string
      responses:
        '200':
          description: successful operation
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/Link'
  /links/contexts:
    get:
      tags:
      - Links
      summary: Get app contexts
      description: Get the Fusion app contexts for each of the specified resources. Don't pass contexts if you want to evaluate against all existing Fusion apps.
      operationId: findContexts
      parameters:
      - name: contexts
        in: query
        description: List of Fusion apps to check against.
        style: form
        explode: true
        schema:
          type: array
          items:
            type: string
      - name: resources
        in: query
        description: List of resources to check against.
        style: form
        explode: true
        schema:
          type: array
          items:
            type: string
      - name: bypassCache
        in: query
        description: Bypass the cache and retrieve directly from storage.
        schema:
          type: boolean
          default: false
      responses:
        '200':
          description: successful operation
          content:
            application/json:
              schema:
                type: object
                additionalProperties:
                  uniqueItems: true
                  type: array
                  items:
                    $ref: '#/components/schemas/FusionResource'
    post:
      tags:
      - Links
      summary: Update a link's context
      description: Change the Fusion app to which a link belongs.
      operationId: findContexts_1
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ContextAssets'
        required: false
      responses:
        '200':
          description: successful operation
          content:
            application/json:
              schema:
                type: object
                additionalProperties:
                  uniqueItems: true
                  type: array
                  items:
                    $ref: '#/components/schemas/FusionResource'
      x-codegen-request-body-name: body
  /links/app-context:
    get:
      tags:
      - Links
      summary: List an app's resources
      description: Get the list of resources that belong to a Fusion app. Specify `resourceType` to filter resources by type.
      operationId: findAppContext
      parameters:
      - name: resource
        in: query
        description: A Fusion app ID, as `app:<app-id>`.
        schema:
          type: string
        example: '`app:api-test-app`'
      - name: resourceType
        in: query
        description: Resource type to filter by. Options include uploaded files, plugins, scripts, dashboards, and others.
        schema:
          type: string
          enum:
          - banana
          - driver:jdbc
          - file:js-index
          - file:js-query
          - file
          - unspecified
          - plugin:index-stage
          - plugin:query-stage
        examples:
          banana:
            summary: A Banana dashboard
            value: banana
          driver:jdbc:
            summary: An uploaded JDBC driver
            value: driver:jdbc
          file:js-index:
            summary: A JavaScript file for a managed JavaScript index stage
            value: file:js-index
          file:js-query:
            summary: A JavaScript file for a managed JavaScript query stage
            value: file:js-query
          file:
            summary: Any uploaded file, such as from the Quickstart or Index Workbench
            value: file
          unspecified:
            summary: A blob of unknown type. If no `resourceType` is specified, this is assigned by default
            value: unspecified
          plugin:index-stage:
            summary: An index stage plugin
            value: plugin:index-stage
          plugin:query-stage:
            summary: A query stage plugin
            value: plugin:query-stage
      responses:
        '200':
          description: successful operation
          content:
            application/json:
              schema:
                uniqueItems: true
                type: array
                items:
                  type: string
  /links/check:
    get:
      tags:
      - Links
      summary: Check links
      description: Check that the matching links exist.
      operationId: hasLink
      parameters:
      - name: subject
        in: query
        description: Subject to check links for.
        schema:
          type: string
      - name: object
        in: query
        description: Object to check links for.
        schema:
          type: string
      - name: linkType
        in: query
        description: 'The link type to check.<br/><br/>Possible link types:


          * `DependsOn` - The subject depends on the object.


          * `Supports` - The subject is depended on by the object (the reverse of `dependsOn`).


          * `IsPartOf` - The subject is part of the object, where the object is a group.


          * `HasPart` - The subject is a group, of which the object is a member (the reverse of `isPartOf`).


          * `RelatesTo` - The subject relates to the object. This is a uni-directional relationship that associates two objects that have none of the relationships described above.


          * `InContextOf` - The subject exists in the context of the object, which is an app.


          * `HasContext` - The subject is an app that contains the object.


          * `Self` - The subject and the object are the same.'
        schema:
          type: string
          enum:
          - dependsOn
          - supports
          - isPartOf
          - hasPart
          - relatesTo
          - inContextOf
          - hasContext
          - self
      responses:
        '200':
          description: successful operation
          content:
            '*/*':
              schema:
                type: boolean
  /links/directed:
    get:
      tags:
      - Links
      summary: Get outgoing links
      description: Return outgoing links for the given resource. When `exclusive` is `true`, objects used by the given resource are not used by other resources.
      operationId: getDirectedLinks
      parameters:
      - name: resource
        in: query
        description: Resource to get outgoing links for.
        schema:
          type: string
      - name: exclusive
        in: query
        description: Exclusive means objects used by the given resource are not used by other resources. Default value is false.
        schema:
          type: boolean
          default: false
      - name: bypassCache
        in: query
        description: Bypass the cache and retrieve directly from storage.
        schema:
          type: boolean
          default: false
      - name: skipSharedGroup
        in: query
        description: Exclude shared group from returned links.
        schema:
          type: boolean
          default: false
      responses:
        '200':
          description: successful operation
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/Link'
  /links/between:
    get:
      tags:
      - Links
      summary: Get links between resources
      description: Get all links between the specified resources.
      operationId: getLinksBetween
      parameters:
      - name: subject
        in: query
        description: Subject to get links for.
        schema:
          type: string
      - name: object
        in: query
        description: Object to get links for.
        schema:
          type: string
      responses:
        '200':
          description: successful operation
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/Link'
  /links/replace:
    post:
      tags:
      - Links
      summary: Replace a resource's links
      description: Replace the links for the specified resource.
      operationId: replaceLinks
      parameters:
      - name: resource
        in: query
        description: Resource to replace links for.
        schema:
          type: string
      requestBody:
        description: JSON-formatted list of link definitions.
        content:
          application/json:
            schema:
              type: array
              items:
                $ref: '#/components/schemas/Link'
        required: false
      responses:
        '200':
          description: successful operation
          content: {}
      x-codegen-request-body-name: body
components:
  schemas:
    ServiceStatus:
      type: object
      properties:
        status:
          type: string
          enum:
          - starting
          - ok
          - warning
          - error
          - shutdown
        node:
          type: string
          readOnly: true
        messages:
          type: array
          readOnly: true
          items:
            $ref: '#/components/schemas/StatusMessage'
    StatusMessage:
      type: object
      properties:
        date:
          type: string
          format: date-time
          readOnly: true
        message:
          type: string
          readOnly: true
    Link:
      type: object
      properties:
        subject:
          $ref: '#/components/schemas/FusionResource'
        object:
          $ref: '#/components/schemas/FusionResource'
        linkType:
          type: string
          description: 'Possible link types:


            * `DependsOn` - The subject depends on the object.


            * `Supports` - The subject is depended on by the object (the reverse of `dependsOn`).


            * `IsPartOf` - The subject is part of the object, where the object is a group.


            * `HasPart` - The subject is a group, of which the object is a member (the reverse of `isPartOf`).


            * `RelatesTo` - The subject relates to the object. This is a uni-directional relationship that associates two objects that have none of the relationships described above.


            * `InContextOf` - The subject exists in the context of the object, which is an app.


            * `HasContext` - The subject is an app that contains the object.


            * `Self` - The subject and the object are the same.'
          readOnly: true
          enum:
          - dependsOn
          - supports
          - isPartOf
          - hasPart
          - relatesTo
          - inContextOf
          - hasContext
          - self
        originator:
          type: string
          readOnly: true
    FusionResource:
      anyOf:
      - type: string
        description: Resource reference as a string, such as 'datasource:ratings-db'
      - type: object
        properties:
          type:
            type: string
            enum:
            - APPKIT_APP
            - APP
            - COLLECTION
            - INDEX_PIPELINE
            - QUERY_PIPELINE
            - INDEX_PROFILE
            - QUERY_PROFILE
            - BLOB
            - PARSER
            - DATASOURCE
            - TASK
            - SCHEDULE
            - SEARCH_CLUSTER
            - EXPERIMENT
            - SPARK_JOB
            - GROUP
            - CUSTOM_RULE_TYPE
            - SUBSCRIPTION
            - DATA_MODEL
            - TEMPLATE
            - ZONE
            - TEMPLATE_SETTINGS
            - TYPE
            - RESOURCE
            - 'NULL'
          id:
            type: string
          uri:
            type: string
            format: uri
          canonicalName:
            type: string
        required:
        - type
    ContextAssets:
      type: object
      properties:
        resources:
          uniqueItems: true
          type: array
          items:
            $ref: '#/components/schemas/FusionResource'
        contexts:
          uniqueItems: true
          type: array
          items:
            $ref: '#/components/schemas/FusionResource'
        bypassCache:
          type: boolean
  securitySchemes:
    Basic_auth:
      type: http
      scheme: basic
    API_key:
      name: x-api-key
      type: apiKey
      in: header
x-original-swagger-version: '2.0'
x-provenance:
  method: harvested
  publisher: Lucidworks
  source: https://doc.lucidworks.com/api-reference/5.9/fusion-api-swagger.json
  note: split by refine-openapis from the provider's own published document, verified by fetch (openapi/_original/*.fetch.json);
    stamped by stamp-openapi-provenance.py (roadmap#793)