---
updatedAt: 2026-05-29T17:03:39.000Z
---

# Update mural visitor settings

Update visitor settings of a mural, by an authenticated owner of the mural.

**Authorization scope**: `murals:write`


# OpenAPI definition

```json
{
  "openapi": "3.1.0",
  "info": {
    "title": "MURAL Public API",
    "description": "MURAL's Public API\n",
    "termsOfService": "https://start.mural.co/developer-beta/terms",
    "contact": {
      "name": "MURAL",
      "email": "m4d@mural.co"
    },
    "version": "1.0.0",
    "x-logo": {
      "url": "https://app.mural.co/static/images/new-logo.svg",
      "href": "https://mural.co"
    }
  },
  "servers": [
    {
      "url": "https://app.mural.co/api/public/{version}",
      "description": "MURAL Public API",
      "variables": {
        "version": {
          "default": "v1",
          "enum": [
            "v1"
          ]
        }
      }
    }
  ],
  "tags": [
    {
      "name": "Murals"
    }
  ],
  "paths": {
    "/murals/{muralId}/visitor-settings": {
      "patch": {
        "security": [
          {
            "oauth2": [
              "murals:write"
            ]
          }
        ],
        "tags": [
          "Murals"
        ],
        "summary": "Update mural visitor settings",
        "description": "Update visitor settings of a mural, by an authenticated owner of the mural.\n\n**Authorization scope**: `murals:write`\n",
        "operationId": "updateMuralVisitorSettings",
        "parameters": [
          {
            "$ref": "#/components/parameters/muralId"
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/UpdateMuralVisitorSettings"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "value": {
                      "$ref": "#/components/schemas/MuralVisitorSettings"
                    }
                  }
                }
              }
            }
          },
          "400": {
            "description": "Request invalid or malformed.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "oneOf": [
                    {
                      "$ref": "#/components/schemas/BodyBadRequest"
                    },
                    {
                      "$ref": "#/components/schemas/VisitorLinkBadRequest"
                    }
                  ]
                },
                "examples": {
                  "Bad Body Request": {
                    "value": {
                      "code": "BODY",
                      "details": [
                        {
                          "code": "Invalid property",
                          "message": "Invalid \"password\" property type was sent. Type undefined was expected."
                        }
                      ],
                      "message": "Invalid payload"
                    }
                  },
                  "Bad link expiry": {
                    "value": {
                      "code": "INVALID_LINK_EXPIRATION",
                      "message": "link expiry value is not correct."
                    }
                  }
                }
              }
            }
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "description": "Resource not found.",
            "content": {
              "application/json": {
                "schema": {
                  "oneOf": [
                    {
                      "$ref": "#/components/schemas/MuralNotFound"
                    }
                  ],
                  "discriminator": {
                    "propertyName": "code",
                    "mapping": {
                      "MURAL_NOT_FOUND": "#/components/schemas/MuralNotFound"
                    }
                  }
                }
              }
            }
          }
        }
      }
    }
  },
  "components": {
    "securitySchemes": {
      "oauth2": {
        "type": "oauth2",
        "flows": {
          "authorizationCode": {
            "authorizationUrl": "https://app.mural.co/api/public/v1/authorization/oauth2",
            "tokenUrl": "https://app.mural.co/api/public/v1/authorization/oauth2/token",
            "refreshUrl": "https://app.mural.co/api/public/v1/authorization/oauth2/token",
            "scopes": {
              "rooms:read": "Read information about rooms (for room members and owners).",
              "rooms:write": "Write information about rooms (for room owners).",
              "users:read": "Read information about users (guests, members, and visitors).",
              "workspaces:write": "Write information about workspaces (for workspace owners)",
              "workspaces:read": "Read information about workspaces (for workspace members and owners).",
              "murals:read": "Read information about murals (for mural members and owners).",
              "murals:write": "Write information about murals (for mural members and owners).",
              "identity:read": "Read information about currently authenticated user.",
              "templates:read": "Read information about templates.",
              "templates:write": "Write information about templates (for templates owners)"
            }
          }
        }
      }
    },
    "schemas": {
      "ExpiresOn": {
        "type": "number",
        "nullable": true,
        "description": "The Unix timestamp in milliseconds, after which the visitor link becomes invalid. When null, the visitor link does not expire.",
        "example": 1646936408128
      },
      "SharingPermissions": {
        "type": "string",
        "enum": [
          "read",
          "write",
          "none"
        ],
        "description": "The permissions for a collaborator on a mural.",
        "example": "read"
      },
      "BaseMuralVisitorSettings": {
        "type": "object",
        "properties": {
          "visitors": {
            "$ref": "#/components/schemas/SharingPermissions"
          },
          "workspaceMembers": {
            "$ref": "#/components/schemas/SharingPermissions"
          }
        },
        "required": [
          "visitors",
          "workspaceMembers"
        ]
      },
      "MuralVisitorSettings": {
        "allOf": [
          {
            "$ref": "#/components/schemas/BaseMuralVisitorSettings"
          },
          {
            "type": "object",
            "properties": {
              "link": {
                "type": "string",
                "format": "uri",
                "description": "Link that a visitor can use to access a mural.",
                "example": "https://app.mural.co/t/workspace16234/m/workspace1234/1607726805633/afb0f301e9b9a6a4e110ed76a341f39473cd90d3"
              },
              "expiresOn": {
                "allOf": [
                  {
                    "$ref": "#/components/schemas/ExpiresOn"
                  },
                  {
                    "example": 1646936408128
                  }
                ]
              }
            }
          }
        ]
      },
      "BaseError": {
        "description": "Thorough details regarding an error response from the API.",
        "type": "object",
        "required": [
          "code",
          "message"
        ],
        "properties": {
          "code": {
            "description": "Error code",
            "example": "ERROR",
            "type": "string",
            "maxLength": 36
          },
          "message": {
            "description": "Short, human readable, description of the error.",
            "example": "Unknown server error",
            "type": "string"
          }
        }
      },
      "DetailedError": {
        "allOf": [
          {
            "$ref": "#/components/schemas/BaseError"
          },
          {
            "type": "object",
            "properties": {
              "details": {
                "description": "Error details.",
                "type": "array",
                "items": {
                  "type": "object",
                  "required": [
                    "code",
                    "message"
                  ],
                  "properties": {
                    "code": {
                      "description": "Error code",
                      "example": "SUB_ERROR",
                      "type": "string",
                      "maxLength": 36
                    },
                    "message": {
                      "description": "Short, human readable, description of the error.",
                      "example": "Unknown server error",
                      "type": "string"
                    }
                  }
                }
              }
            }
          }
        ]
      },
      "BodyBadRequest": {
        "description": "The request body was malformed or had invalid parameters.",
        "allOf": [
          {
            "$ref": "#/components/schemas/DetailedError"
          },
          {
            "type": "object",
            "properties": {
              "code": {
                "type": "string",
                "description": "Request body has invalid parameters.",
                "example": "BODY",
                "enum": [
                  "BODY"
                ]
              }
            }
          }
        ]
      },
      "VisitorLinkBadRequest": {
        "description": "The link expiry is invalid.",
        "type": "object",
        "properties": {
          "code": {
            "type": "string",
            "description": "The link expiry is invalid.",
            "example": "INVALID_LINK_EXPIRATION",
            "enum": [
              "INVALID_LINK_EXPIRATION"
            ]
          },
          "message": {
            "type": "string",
            "description": "Human readable message for invalid expiry.",
            "example": "Visitor link expiry value is invalid"
          }
        }
      },
      "MuralNotFound": {
        "description": "The requested mural was not found.",
        "allOf": [
          {
            "$ref": "#/components/schemas/BaseError"
          },
          {
            "type": "object",
            "properties": {
              "code": {
                "type": "string",
                "example": "MURAL_NOT_FOUND",
                "enum": [
                  "MURAL_NOT_FOUND"
                ]
              },
              "message": {
                "example": "The mural was not found or does not exist."
              }
            }
          }
        ]
      },
      "UpdateMuralVisitorSettings": {
        "allOf": [
          {
            "$ref": "#/components/schemas/BaseMuralVisitorSettings"
          },
          {
            "type": "object",
            "properties": {
              "expiresOn": {
                "allOf": [
                  {
                    "$ref": "#/components/schemas/ExpiresOn"
                  },
                  {
                    "example": 1646936408128
                  }
                ]
              },
              "password": {
                "type": "string",
                "description": "Password to access murals shared via visitor link.\n",
                "example": "password"
              }
            }
          }
        ]
      }
    },
    "responses": {
      "Unauthorized": {
        "description": "No authorization",
        "content": {
          "application/json": {
            "schema": {
              "allOf": [
                {
                  "$ref": "#/components/schemas/BaseError"
                },
                {
                  "type": "object",
                  "properties": {
                    "code": {
                      "enum": [
                        "UNAUTHORIZED",
                        "TOKEN_EXPIRED"
                      ]
                    }
                  }
                }
              ]
            },
            "examples": {
              "authorization": {
                "summary": "No authorization",
                "value": {
                  "code": "UNAUTHORIZED",
                  "message": "You don't have the required permissions to access this endpoint."
                }
              },
              "expiredToken": {
                "summary": "Expired token",
                "value": {
                  "code": "TOKEN_EXPIRED",
                  "message": "Your token has expired. You need to refresh your OAuth token."
                }
              }
            }
          }
        }
      },
      "Forbidden": {
        "description": "Access denied",
        "content": {
          "application/json": {
            "schema": {
              "$ref": "#/components/schemas/BaseError"
            },
            "examples": {
              "invalidScope": {
                "$ref": "#/components/examples/invalidScope"
              }
            }
          }
        }
      }
    },
    "examples": {
      "invalidScope": {
        "summary": "Invalid scope",
        "value": {
          "code": "INVALID_SCOPE",
          "message": "Logged in user does not have the right scope(s) to access this resource."
        }
      }
    },
    "parameters": {
      "muralId": {
        "in": "path",
        "name": "muralId",
        "schema": {
          "type": "string"
        },
        "required": true,
        "description": "Unique identifier of a mural.\n",
        "example": "workspace1234.1606743986126"
      }
    }
  },
  "x-readme": {
    "explorer-enabled": false,
    "proxy-enabled": false
  }
}
```