Gremlin sharedAssets API

Used for sharing agent assets (eg. K8s Namespaces) between teams

Operations 13

POST /sharedAssets/requests/{requestId}/approve Approves a sharing request to a resource you own #
POST /sharedAssets/requests/approve Approves a sharing request to a resource you own #
POST /sharedAssets/requests/delete Deletes a sharing request your team has made to an asset you don't control #
DELETE /sharedAssets/requests/{requestId} Deletes an existing request for Access #
POST /sharedAssets/requests/{requestId}/deny Denies or Revokes a sharing request to a resource you own #
POST /sharedAssets/requests/deny Denies or Revokes a sharing request to a resource you own #
GET /sharedAssets/withMe List assets currently shared with your team #
GET /sharedAssets List available assets for sharing and all incoming and outgoing requests #
GET /sharedAssets/requests List my requests for assets to be shared with my team #
POST /sharedAssets/requests Request access to a given asset #
GET /sharedAssets/requests/toMe List other team's requests to my team for sharing assets my team controls #
POST /sharedAssets/requests/{requestId}/delete Deletes an existing request for Access #
POST /sharedAssets/{owningTeam}/{assetId} Request access to a given asset owned by another team #

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/gremlin-sharedassets-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

gremlin-sharedassets-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: Gremlin agents Shared Assets API
  description: The API for interacting with the Gremlin Failure-as-a-Service platform
  termsOfService: https://www.gremlin.com/terms_of_service_2017_03_24
  contact:
    name: Gremlin Support
    email: support@gremlin.com
  license:
    name: Gremlin License
    url: https://www.gremlin.com/license_2017_03_24
  version: '1.0'
servers:
- url: https://api.gremlin.com/v1
  description: Gremlin API v1
tags:
- name: sharedAssets
  description: Used for sharing agent assets (eg. K8s Namespaces) between teams
paths:
  /sharedAssets/requests/{requestId}/approve:
    post:
      tags:
      - sharedAssets
      summary: Approves a sharing request to a resource you own
      description: 'The {requestId} parameter _must_ be urlencoded

        Requires the privilege [`CLIENTS_WRITE`](https://www.gremlin.com/docs/user-management/access-control/#privileges)'
      operationId: approveAccess
      parameters:
      - name: requestId
        in: path
        required: true
        schema:
          type: string
      - name: teamId
        in: query
        description: Required when using company session token.
        required: true
        schema:
          type: string
      responses:
        default:
          description: default response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SharedAsset'
        '403':
          description: 'User requires privilege for target team: CLIENTS_WRITE'
        '401':
          description: Authorization header missing or malformed. Please provide proper credentials in the authorization header.
      security:
      - privilege:
        - CLIENTS_WRITE
  /sharedAssets/requests/approve:
    post:
      tags:
      - sharedAssets
      summary: Approves a sharing request to a resource you own
      description: Requires the privilege [`CLIENTS_WRITE`](https://www.gremlin.com/docs/user-management/access-control/#privileges)
      operationId: approveAccessRequests
      parameters:
      - name: teamId
        in: query
        description: Required when using company session token.
        required: true
        schema:
          type: string
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/UpdateAllRequests'
        required: true
      responses:
        default:
          description: default response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SharedAssetUpdate'
        '403':
          description: 'User requires privilege for target team: CLIENTS_WRITE'
        '401':
          description: Authorization header missing or malformed. Please provide proper credentials in the authorization header.
      security:
      - privilege:
        - CLIENTS_WRITE
  /sharedAssets/requests/delete:
    post:
      tags:
      - sharedAssets
      summary: Deletes a sharing request your team has made to an asset you don't control
      description: Requires the privilege [`CLIENTS_READ`](https://www.gremlin.com/docs/user-management/access-control/#privileges)
      operationId: deleteAccessRequests
      parameters:
      - name: teamId
        in: query
        description: Required when using company session token.
        required: true
        schema:
          type: string
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/UpdateAllRequests'
        required: true
      responses:
        default:
          description: default response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SharedAssetUpdate'
        '403':
          description: 'User requires privilege for target team: CLIENTS_READ'
        '401':
          description: Authorization header missing or malformed. Please provide proper credentials in the authorization header.
      security:
      - privilege:
        - CLIENTS_READ
  /sharedAssets/requests/{requestId}:
    delete:
      tags:
      - sharedAssets
      summary: Deletes an existing request for Access
      description: 'The {requestId} parameter _must_ be urlencoded

        Requires the privilege [`CLIENTS_READ`](https://www.gremlin.com/docs/user-management/access-control/#privileges)'
      operationId: deleteRequest
      parameters:
      - name: requestId
        in: path
        required: true
        schema:
          type: string
      - name: teamId
        in: query
        description: Required when using company session token.
        required: true
        schema:
          type: string
      responses:
        default:
          description: default response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SharedAsset'
        '403':
          description: 'User requires privilege for target team: CLIENTS_READ'
        '401':
          description: Authorization header missing or malformed. Please provide proper credentials in the authorization header.
      security:
      - privilege:
        - CLIENTS_READ
  /sharedAssets/requests/{requestId}/deny:
    post:
      tags:
      - sharedAssets
      summary: Denies or Revokes a sharing request to a resource you own
      description: 'The {requestId} parameter _must_ be urlencoded

        Requires the privilege [`CLIENTS_WRITE`](https://www.gremlin.com/docs/user-management/access-control/#privileges)'
      operationId: denyAccess
      parameters:
      - name: requestId
        in: path
        required: true
        schema:
          type: string
      - name: teamId
        in: query
        description: Required when using company session token.
        required: true
        schema:
          type: string
      responses:
        default:
          description: default response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SharedAsset'
        '403':
          description: 'User requires privilege for target team: CLIENTS_WRITE'
        '401':
          description: Authorization header missing or malformed. Please provide proper credentials in the authorization header.
      security:
      - privilege:
        - CLIENTS_WRITE
  /sharedAssets/requests/deny:
    post:
      tags:
      - sharedAssets
      summary: Denies or Revokes a sharing request to a resource you own
      description: Requires the privilege [`CLIENTS_WRITE`](https://www.gremlin.com/docs/user-management/access-control/#privileges)
      operationId: denyAccessRequests
      parameters:
      - name: teamId
        in: query
        description: Required when using company session token.
        required: true
        schema:
          type: string
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/UpdateAllRequests'
        required: true
      responses:
        default:
          description: default response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SharedAssetUpdate'
        '403':
          description: 'User requires privilege for target team: CLIENTS_WRITE'
        '401':
          description: Authorization header missing or malformed. Please provide proper credentials in the authorization header.
      security:
      - privilege:
        - CLIENTS_WRITE
  /sharedAssets/withMe:
    get:
      tags:
      - sharedAssets
      summary: List assets currently shared with your team
      description: Requires the privilege [`CLIENTS_READ`](https://www.gremlin.com/docs/user-management/access-control/#privileges)
      operationId: listAssetsSharedWithMe
      parameters:
      - name: teamId
        in: query
        description: Required when using company session token.
        required: true
        schema:
          type: string
      responses:
        default:
          description: default response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SharedAssetUpdate'
        '403':
          description: 'User requires privilege for target team: CLIENTS_READ'
        '401':
          description: Authorization header missing or malformed. Please provide proper credentials in the authorization header.
      security:
      - privilege:
        - CLIENTS_READ
  /sharedAssets:
    get:
      tags:
      - sharedAssets
      summary: List available assets for sharing and all incoming and outgoing requests
      description: Requires the privilege [`CLIENTS_READ`](https://www.gremlin.com/docs/user-management/access-control/#privileges)
      operationId: listAvailableAssetsWithRequests
      parameters:
      - name: assetId
        in: query
        schema:
          type: string
      - name: teamId
        in: query
        description: Required when using company session token.
        required: true
        schema:
          type: string
      responses:
        default:
          description: default response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SharableAssetsWithRequestsResponse'
        '403':
          description: 'User requires privilege for target team: CLIENTS_READ'
        '401':
          description: Authorization header missing or malformed. Please provide proper credentials in the authorization header.
      security:
      - privilege:
        - CLIENTS_READ
  /sharedAssets/requests:
    get:
      tags:
      - sharedAssets
      summary: List my requests for assets to be shared with my team
      description: Requires the privilege [`CLIENTS_READ`](https://www.gremlin.com/docs/user-management/access-control/#privileges)
      operationId: listMyRequests
      parameters:
      - name: teamId
        in: query
        description: Required when using company session token.
        required: true
        schema:
          type: string
      responses:
        default:
          description: default response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/OutstandingRequests'
        '403':
          description: 'User requires privilege for target team: CLIENTS_READ'
        '401':
          description: Authorization header missing or malformed. Please provide proper credentials in the authorization header.
      security:
      - privilege:
        - CLIENTS_READ
    post:
      tags:
      - sharedAssets
      summary: Request access to a given asset
      description: Requires the privilege [`CLIENTS_READ`](https://www.gremlin.com/docs/user-management/access-control/#privileges)
      operationId: requestAccess
      parameters:
      - name: teamId
        in: query
        description: Required when using company session token.
        required: true
        schema:
          type: string
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/NewRequestRequest'
        required: true
      responses:
        default:
          description: default response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SharedAssetUpdate'
        '403':
          description: 'User requires privilege for target team: CLIENTS_READ'
        '401':
          description: Authorization header missing or malformed. Please provide proper credentials in the authorization header.
      security:
      - privilege:
        - CLIENTS_READ
  /sharedAssets/requests/toMe:
    get:
      tags:
      - sharedAssets
      summary: List other team's requests to my team for sharing assets my team controls
      description: Requires the privilege [`CLIENTS_READ`](https://www.gremlin.com/docs/user-management/access-control/#privileges)
      operationId: listRequestsToMe
      parameters:
      - name: assetId
        in: query
        schema:
          type: string
      - name: teamId
        in: query
        description: Required when using company session token.
        required: true
        schema:
          type: string
      responses:
        default:
          description: default response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/OutstandingRequests'
        '403':
          description: 'User requires privilege for target team: CLIENTS_READ'
        '401':
          description: Authorization header missing or malformed. Please provide proper credentials in the authorization header.
      security:
      - privilege:
        - CLIENTS_READ
  /sharedAssets/requests/{requestId}/delete:
    post:
      tags:
      - sharedAssets
      summary: Deletes an existing request for Access
      description: 'The {requestId} parameter _must_ be urlencoded

        Requires the privilege [`CLIENTS_READ`](https://www.gremlin.com/docs/user-management/access-control/#privileges)'
      operationId: postDeleteRequest
      parameters:
      - name: requestId
        in: path
        required: true
        schema:
          type: string
      - name: teamId
        in: query
        description: Required when using company session token.
        required: true
        schema:
          type: string
      responses:
        default:
          description: default response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SharedAsset'
        '403':
          description: 'User requires privilege for target team: CLIENTS_READ'
        '401':
          description: Authorization header missing or malformed. Please provide proper credentials in the authorization header.
      security:
      - privilege:
        - CLIENTS_READ
  /sharedAssets/{owningTeam}/{assetId}:
    post:
      tags:
      - sharedAssets
      summary: Request access to a given asset owned by another team
      description: Requires the privilege [`CLIENTS_READ`](https://www.gremlin.com/docs/user-management/access-control/#privileges)
      operationId: requestAccessToAsset
      parameters:
      - name: owningTeam
        in: path
        required: true
        schema:
          type: string
      - name: assetId
        in: path
        required: true
        schema:
          type: string
      - name: namespace
        in: query
        schema:
          type: string
      - name: teamId
        in: query
        description: Required when using company session token.
        required: true
        schema:
          type: string
      responses:
        default:
          description: default response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SharedAsset'
        '403':
          description: 'User requires privilege for target team: CLIENTS_READ'
        '401':
          description: Authorization header missing or malformed. Please provide proper credentials in the authorization header.
      security:
      - privilege:
        - CLIENTS_READ
components:
  schemas:
    SemanticVersion:
      type: object
      properties:
        major:
          type: integer
          format: int32
        minor:
          type: integer
          format: int32
        patch:
          type: integer
          format: int32
    NewRequestRequest:
      required:
      - newRequests
      type: object
      properties:
        newRequests:
          type: array
          items:
            $ref: '#/components/schemas/AccessRequest'
    AvailableClusterResponse:
      type: object
      properties:
        assetId:
          type: string
        clusterName:
          type: string
        owningTeamId:
          type: string
        availableNamespaces:
          type: array
          items:
            type: string
        currentlySharedNamespaces:
          type: array
          items:
            type: string
        semanticVersion:
          $ref: '#/components/schemas/SemanticVersion'
        isOutdated:
          type: boolean
        lastAttacked:
          type: string
          format: date-time
        owningTeamName:
          type: string
        requests:
          type: array
          items:
            $ref: '#/components/schemas/MyRequest'
    AccessRequest:
      type: object
      properties:
        owningTeamId:
          type: string
        assetId:
          type: string
        namespace:
          type: string
        teamToShareWith:
          type: string
    OutstandingRequests:
      type: object
      properties:
        assetToRequestMap:
          type: object
          additionalProperties:
            type: array
            items:
              $ref: '#/components/schemas/SharedAsset'
        idToTeamMapping:
          type: object
          additionalProperties:
            $ref: '#/components/schemas/SharedTeam'
    SharedAsset:
      type: object
      properties:
        companyId:
          type: string
        owningTeamId:
          type: string
        createdAt:
          type: string
          format: date-time
        updatedAt:
          type: string
          format: date-time
        approver:
          type: string
        requester:
          type: string
        assetName:
          type: string
        currentStatus:
          type: string
          enum:
          - REQUESTED
          - APPROVED
          - DENIED
          - REVOKED
          - DELETED
        assetId:
          type: string
        sharedTeam:
          type: string
        namespace:
          type: string
        requestId:
          type: string
    TheirRequest:
      type: object
      properties:
        id:
          type: string
        teamId:
          type: string
        teamName:
          type: string
        namespace:
          type: string
        currentStatus:
          type: string
          enum:
          - REQUESTED
          - APPROVED
          - DENIED
          - REVOKED
          - DELETED
        requester:
          type: string
        approver:
          type: string
    MyClusterResponse:
      type: object
      properties:
        assetId:
          type: string
        clusterName:
          type: string
        owningTeamId:
          type: string
        availableNamespaces:
          type: array
          items:
            type: string
        currentlySharedNamespaces:
          type: array
          items:
            type: string
        semanticVersion:
          $ref: '#/components/schemas/SemanticVersion'
        isOutdated:
          type: boolean
        lastAttacked:
          type: string
          format: date-time
        requests:
          type: array
          items:
            $ref: '#/components/schemas/TheirRequest'
    SharableAssetsWithRequestsResponse:
      type: object
      properties:
        availableClusters:
          type: array
          items:
            $ref: '#/components/schemas/AvailableClusterResponse'
        myClusters:
          type: array
          items:
            $ref: '#/components/schemas/MyClusterResponse'
    SharedAssetUpdate:
      type: object
      properties:
        assetToRequestMap:
          type: object
          additionalProperties:
            type: array
            items:
              $ref: '#/components/schemas/SharedAsset'
    SharedTeam:
      type: object
      properties:
        identifier:
          type: string
        name:
          type: string
        usersCount:
          type: integer
          format: int64
    MyRequest:
      type: object
      properties:
        requestId:
          type: string
        namespace:
          type: string
        currentStatus:
          type: string
          enum:
          - REQUESTED
          - APPROVED
          - DENIED
          - REVOKED
          - DELETED
        requester:
          type: string
        approver:
          type: string
    UpdateAllRequests:
      required:
      - requestIds
      type: object
      properties:
        requestIds:
          type: array
          items:
            type: string