SimpleVoIP Music on Hold API

Bulk management of per-site Music on Hold settings.

Business capability
Voice & Telephony AE-150.50

Operations 1

PUT /moh Modify Music on Hold #

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/simplevoip:simplevoip-music-on-hold-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

simplevoip-music-on-hold-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: Simplevoip Music on Hold API
  version: 1.6.0
  license:
    name: Proprietary
  description: 'Operations tagged Music on Hold across 2 of this provider''s published API definitions: simplevoip.json, simplevoip-openapi.json. Each path carries the servers of the definition it was published in.'
servers:
- url: https://public.simplevoip.us
tags:
- name: Music on Hold
  description: Bulk management of per-site Music on Hold settings.
paths:
  /moh:
    put:
      tags:
      - Music on Hold
      operationId: modifyMusicOnHold
      summary: Modify Music on Hold
      description: Enqueues a bulk job to modify Music on Hold settings across one or more sites. The bulk job will consist of one task per specified site. Only sites belonging to your own account are affected — any site number you don't own is silently skipped (not reflected as an error; `enqueued_tasks` will simply be lower than the number of sites you sent).
      security:
      - bearerAuth: []
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ModifyMohRequest'
            examples:
              parentMedia:
                summary: Media object on the parent account
                value:
                  parent: 1a2b3c4d5e6f1a2b3c4d5e6f
                  music: f6e5d4c3b2a1f6e5d4c3b2a1
                  mediaType: parentMedia
                  sites:
                  - A1001
                  - A1003
              mediaObject:
                summary: Media object on the target account itself
                value:
                  music: f6e5d4c3b2a1f6e5d4c3b2a1
                  mediaType: mediaObject
                  sites:
                  - A1001
              systemDefault:
                summary: Reset to the system default hold music
                value:
                  music: ''
                  mediaType: mediaObject
                  sites:
                  - A1001
      responses:
        '200':
          description: Job enqueued.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/EnqueueJobResponse'
              examples:
                success:
                  value:
                    status: success
                    enqueued_tasks: 2
        '401':
          description: Missing/invalid bearer token, or the token isn't associated with a recognized user. No JSON body is returned — only the HTTP status.
    servers:
    - url: https://public.simplevoip.us
components:
  schemas:
    EnqueueJobResponse:
      type: object
      required:
      - status
      - enqueued_tasks
      properties:
        status:
          type: string
          enum:
          - success
          - error
        enqueued_tasks:
          type: integer
          description: Number of per-site tasks enqueued.
    ModifyMohRequest:
      type: object
      required:
      - music
      - mediaType
      - sites
      properties:
        sites:
          type: array
          items:
            type: string
          description: Site numbers to apply the change to. Site numbers you don't own are silently skipped.
        music:
          type: string
          description: An empty string uses the system default hold music. Otherwise, a media object ID (used with `mediaObject`/`parentMedia`) or a ShoutCast stream URL host/path (used with `shoutcast`).
        mediaType:
          type: string
          enum:
          - mediaObject
          - parentMedia
          - shoutcast
          description: '`mediaObject` (media lives on the target account itself) covers the common case. `parentMedia` looks up `music` on the account named in `parent` instead. `shoutcast` treats `music` as a ShoutCast stream address.'
        parent:
          type: string
          description: The parent account ID `music` lives on. Only used, and only meaningful, when `mediaType` is `parentMedia`.
  securitySchemes:
    bearerAuth:
      type: http
      scheme: bearer
      description: 'Send an `Authorization: Bearer <token>` header. As a fallback for accounts without a bearer token configured, requests from an IP address on the account''s SimpleVoIP-managed allowlist are also accepted — bearer token is the recommended method for new integrations.'
x-refined-from:
- simplevoip.json
- simplevoip-openapi.json