> ## Documentation Index
> Fetch the complete documentation index at: https://support.i.moneyforward.com/llms.txt
> Use this file to discover all available pages before exploring further.

# List detected (Shadow IT) services

> Retrieve the SaaS services detected for the organization but not integrated with Admina. Muted services are excluded by default; pass <code>includeMuted=true</code> to include them, each carrying its <code>mute</code> object. <code>meta.mutedCount</code> reports how many of the organization's services are muted either way, so a filtered total stays explicable.<br/><br/>Results are read live from the detection service, so the underlying set can change between page requests.<br/><br/>Pagination: [Cursor-based](#section/Cursor-based)



## OpenAPI

````yaml https://api.itmc.i.moneyforward.com/public-api/docs/v1-json get /api/v1/organizations/{organizationId}/recommended-services
openapi: 3.0.0
info:
  title: Admina Public API
  description: >-
    Admina API is a RESTfull API providing programmatic access to much of the
    data in the system. It provides predictable URLs for accessing resources,
    and uses built-in HTTP features to receive commands and return responses.
    This makes it easy to communicate with from a wide variety of environments,
    from command-line utilities to gadgets to the browser URL bar itself.
  version: '1.0'
  contact: {}
servers:
  - url: https://api.itmc.i.moneyforward.com
security: []
tags:
  - name: Organizations
    description: ''
  - name: Users
    description: ''
  - name: Directory
    description: ''
  - name: Departments
    description: ''
  - name: Locations
    description: ''
  - name: Companies
    description: ''
  - name: People
    description: ''
  - name: Workspaces
    description: ''
  - name: Custom Service and Workspace
    description: ''
  - name: Custom Services
    description: ''
  - name: Workspace Accounts
    description: ''
  - name: Accounts
    description: ''
  - name: Contracts
    description: ''
  - name: Devices
    description: ''
  - name: Devices (alpha)
    description: ''
  - name: Alerts
    description: ''
  - name: Spends
    description: ''
  - name: Usage Optimization
    description: ''
  - name: Services
    description: ''
  - name: Service Roles
    description: ''
  - name: Service Licenses
    description: ''
  - name: Recommended Services
    description: ''
  - name: Requests
    description: ''
  - name: AuditLogs
    description: ''
  - name: EventLogs
    description: ''
paths:
  /api/v1/organizations/{organizationId}/recommended-services:
    get:
      tags:
        - RecommendedServices
      summary: List detected (Shadow IT) services
      description: >-
        Retrieve the SaaS services detected for the organization but not
        integrated with Admina. Muted services are excluded by default; pass
        <code>includeMuted=true</code> to include them, each carrying its
        <code>mute</code> object. <code>meta.mutedCount</code> reports how many
        of the organization's services are muted either way, so a filtered total
        stays explicable.<br/><br/>Results are read live from the detection
        service, so the underlying set can change between page
        requests.<br/><br/>Pagination: [Cursor-based](#section/Cursor-based)
      operationId: publicGetRecommendedServices
      parameters:
        - name: organizationId
          required: true
          in: path
          schema:
            type: number
        - name: limit
          required: false
          in: query
          description: Limit the number of results returned. Maximum 200.
          schema:
            maximum: 200
            example: 50
            type: number
        - name: cursor
          required: false
          in: query
          description: Cursor to paginate through results.
          schema:
            type: string
        - name: includeMuted
          required: false
          in: query
          description: >-
            Include muted services in the results. Muted services are excluded
            by default; pass true to include them, each carrying its `mute`
            object.
          schema:
            default: false
            type: boolean
      responses:
        '200':
          description: Successfully retrieved detected services
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PublicGetRecommendedServicesResponseDto'
        '400':
          description: Invalid query parameters
        '401':
          description: Invalid or missing API key
        '418':
          description: >-
            The feature isn't available for the organization. Please contact the
            support team.
        '503':
          description: >-
            The detection service could not be read. Retry later; this is never
            reported as an empty list.
      security:
        - API-Key: []
components:
  schemas:
    PublicGetRecommendedServicesResponseDto:
      type: object
      properties:
        meta:
          readOnly: true
          allOf:
            - $ref: '#/components/schemas/PublicGetRecommendedServicesMetaDto'
        items:
          readOnly: true
          type: array
          items:
            $ref: '#/components/schemas/PublicRecommendedServiceResponseDto'
      required:
        - meta
        - items
    PublicGetRecommendedServicesMetaDto:
      type: object
      properties:
        nextCursor:
          type: string
          nullable: true
          readOnly: true
          example: F3UdkoSbpBNrjwP93AX2HQ
        totalItems:
          type: number
          nullable: true
          readOnly: true
          example: 1
        mutedCount:
          type: number
          readOnly: true
          example: 3
      required:
        - nextCursor
        - mutedCount
    PublicRecommendedServiceResponseDto:
      type: object
      properties:
        service:
          readOnly: true
          allOf:
            - $ref: '#/components/schemas/PublicRecommendedServiceSummaryDto'
        totalActiveUsers:
          type: number
          nullable: true
          readOnly: true
          example: 200
        discoverMethod:
          readOnly: true
          example: chrome_ext
          allOf:
            - $ref: '#/components/schemas/DiscoverMethod'
        mute:
          nullable: true
          readOnly: true
          type: object
          allOf:
            - $ref: '#/components/schemas/PublicRecommendedServiceMuteResponseDto'
      required:
        - service
        - totalActiveUsers
        - discoverMethod
        - mute
    PublicRecommendedServiceSummaryDto:
      type: object
      properties:
        name:
          type: string
          nullable: true
          readOnly: true
          example: GitHub
        uniqueName:
          type: string
          readOnly: true
          example: github
      required:
        - name
        - uniqueName
    DiscoverMethod:
      type: string
      enum:
        - chrome_ext
        - edge_ext
        - cost_management
        - google_oauth
        - office_365_sso
        - azure_ad_sso
        - admina_tracker
    PublicRecommendedServiceMuteResponseDto:
      type: object
      properties:
        reason:
          readOnly: true
          example: no_corporate_contract
          allOf:
            - $ref: '#/components/schemas/RecommendedServiceMuteReason'
        expiresAt:
          format: date-time
          type: string
          nullable: true
          readOnly: true
          example: '2026-12-01T00:00:00.000Z'
        mutedAt:
          format: date-time
          type: string
          readOnly: true
          example: '2026-08-20T09:00:00.000Z'
      required:
        - reason
        - expiresAt
        - mutedAt
    RecommendedServiceMuteReason:
      type: string
      enum:
        - decide_later
        - not_covered_by_plan
        - no_corporate_contract
        - not_manageable_or_false_positive
        - integration_attempt_failed
        - temporary_or_trial_use
        - no_intention_to_integrate
        - other
  securitySchemes:
    API-Key:
      scheme: bearer
      bearerFormat: JWT
      type: http
      description: >-
        For authenticated requests, set the `Authorization: Bearer your_api_key`
        parameter in the header. <br/>You can create and manage your API Keys by
        visiting the **API Keys** tab in the **Settings** page of your
        organization in <a target='_blank'
        href='https://itmc.i.moneyforward.com/'>Admina</a>

````