Posit Vanity URLs API
The Vanity URLs API from Posit — 2 operation(s) for vanity urls.
The Vanity URLs API from Posit — 2 operation(s) for vanity urls.
Every API here is available over the APIs.io API and to AI agents over MCP.
One button, every client — Claude, Cursor, VS Code and the rest.
https://apis.io/mcp
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.curl "https://apis.io/api/v1/apis/posit-vanity-urls-api"
curl "https://apis.io/api/v1/apis?limit=25"
Discovery needs no key. Ratings and market analysis are Pro.
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: 3.2.0
info:
contact:
email: support@posit.co
name: Posit Connect Support
url: https://support.posit.co/hc/en-us
description: '## Overview
The Posit Connect Server API can be used to perform certain
user actions remotely.'
license:
name: Commercial. Copyright 2015-2026 Posit Software, PBC. All Rights Reserved.
url: https://posit.co/about/eula/
termsOfService: https://posit.co/about/eula/
title: Posit Connect API Reference Vanity URLs API
version: 1.0.1
servers:
- url: /__api__
security:
- apiKey: []
tags:
- name: Vanity URLs
paths:
/v1/content/{guid}/vanity:
delete:
description: 'Delete the vanity URL for this content.
If `Authorization.PublishersCanManageVanities` is `true` (default), publishers
can delete the vanity URL for content items that they have permission to change.
Otherwise, administrator permissions are required.'
operationId: deleteVanity
parameters:
- in: path
name: guid
required: true
schema:
format: uuid
type: string
responses:
'204':
description: Successful response.
'400':
content:
application/json:
schema:
$ref: '#/components/schemas/APIError'
description: The requested operation is invalid.
'401':
content:
application/json:
schema:
$ref: '#/components/schemas/APIError'
description: The requested operation requires authentication.
'404':
content:
application/json:
schema:
$ref: '#/components/schemas/APIError'
description: The requested object does not exist.
'500':
content:
application/json:
schema:
$ref: '#/components/schemas/APIError'
description: A server error occurred.
summary: Delete vanity URL
tags:
- Vanity URLs
get:
description: 'Get the vanity URL, if any, defined for this content.
If the content item has a vanity URL, it is returned.
If there is no vanity URL for this content, a 404 status is returned.
Administrators can get the vanity URL for any content item.
Any authenticated user who is authorized to view the content can
get the vanity URL.'
operationId: getVanity
parameters:
- in: path
name: guid
required: true
schema:
format: uuid
type: string
responses:
'200':
content:
application/json:
schema:
$ref: '#/components/schemas/Vanity'
description: Successful response.
'400':
content:
application/json:
schema:
$ref: '#/components/schemas/APIError'
description: The requested operation is invalid.
'401':
content:
application/json:
schema:
$ref: '#/components/schemas/APIError'
description: The requested operation requires authentication.
'404':
content:
application/json:
schema:
$ref: '#/components/schemas/APIError'
description: The requested object does not exist.
'500':
content:
application/json:
schema:
$ref: '#/components/schemas/APIError'
description: A server error occurred.
summary: Get vanity URL
tags:
- Vanity URLs
put:
description: 'Set the vanity URL for this content item.
A vanity URL path must meet certain requirements:
* It must consist of alphanumeric characters, hyphens, underscores,
and slashes.
* It cannot be a reserved path such as the root path `/`, or a path
beginning with `/__`.
* The following path prefixes are prohibited:
* `/__`
* `/favicon.ico`
* `/connect`
* `/apps`
* `/users`
* `/groups`
* `/setpassword`
* `/user-completion`
* `/confirm`
* `/recent`
* `/reports`
* `/plots`
* `/unpublished`
* `/settings`
* `/metrics`
* `/tokens`
* `/help`
* `/login`
* `/welcome`
* `/register`
* `/resetpassword`
* `/content`
* _The custom location for the Connect dashboard, configured by `Server.DashboardPath`._
* It cannot be an ancestor or descendant of an existing vanity URL
path. For example, if the vanity path `/a/b/` exists, you cannot
add `/a/` or `/a/b/c/`.
If `Authorization.PublishersCanManageVanities` is `true` (default), publishers
can set the vanity URL for content items that they have permission to change.
Otherwise, administrator permissions are required.
You can reassign an existing vanity URL to a different content item,
if you are an administrator or collaborator/owner of both content items. You must
set the `force` parameter to `true` to reassign a URL. An error
will be returned if `force` is `false` and the URL already exists.'
operationId: setVanity
parameters:
- in: path
name: guid
required: true
schema:
format: uuid
type: string
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/VanityInput'
required: true
responses:
'200':
content:
application/json:
schema:
$ref: '#/components/schemas/Vanity'
description: Successful response.
'400':
content:
application/json:
schema:
$ref: '#/components/schemas/APIError'
description: The requested operation is invalid.
'401':
content:
application/json:
schema:
$ref: '#/components/schemas/APIError'
description: The requested operation requires authentication.
'404':
content:
application/json:
schema:
$ref: '#/components/schemas/APIError'
description: The requested object does not exist.
'409':
content:
application/json:
schema:
$ref: '#/components/schemas/APIError'
description: The request could not be completed due to a conflict.
'500':
content:
application/json:
schema:
$ref: '#/components/schemas/APIError'
description: A server error occurred.
summary: Set vanity URL
tags:
- Vanity URLs
/v1/vanities:
get:
description: 'List all defined vanity URLs.
You must have administrator privileges to perform this action.'
operationId: listVanities
responses:
'200':
content:
application/json:
schema:
items:
$ref: '#/components/schemas/Vanity'
type: array
description: Successful response.
'400':
content:
application/json:
schema:
$ref: '#/components/schemas/APIError'
description: The requested operation is invalid.
'401':
content:
application/json:
schema:
$ref: '#/components/schemas/APIError'
description: The requested operation requires authentication.
'404':
content:
application/json:
schema:
$ref: '#/components/schemas/APIError'
description: The requested object does not exist.
'500':
content:
application/json:
schema:
$ref: '#/components/schemas/APIError'
description: A server error occurred.
summary: List vanity URLs
tags:
- Vanity URLs
components:
schemas:
APIError:
additionalProperties: false
description: The error object returned by the API on failure.
properties:
code:
description: The specific code for the type of error returned. See the [API error codes reference](#api-error-codes) for the full set of values.
type: integer
error:
description: A description of the problem that was encountered.
type: string
payload:
description: Additional error details, if any. The structure varies by error type.
type:
- object
- 'null'
required:
- code
- error
type: object
Vanity:
additionalProperties: false
description: The fields that are returned when getting or listing vanity URLs.
properties:
content_guid:
description: The unique identifier of the associated content item.
example: 25438b83-ea6d-4839-ae8e-53c52ac5f9ce
format: uuid
type: string
path:
description: 'The URL path that will be used by this application. HTTP requests to
this path on the Connect server will be routed to the associated
content item.'
example: /stock-report/
type: string
created_time:
description: The timestamp (RFC3339) indicating when this vanity URL was created.
example: '2006-01-02T15:04:05-07:00'
format: date-time
type: string
type: object
VanityInput:
additionalProperties: false
description: The fields that can be specified when creating a vanity URL.
properties:
path:
description: 'The URL path that will be assigned to this content item. HTTP requests to
this path on the Connect server will be routed to the associated
content item.'
example: /stock-report/
type: string
force:
description: 'If true, and a vanity URL exists with the specified path,
reassign it to the specified content item. To reassign
a vanity URL, you must be an administrator, or a
collaborator/owner of both content items.'
type: boolean
type: object
securitySchemes:
apiKey:
description: 'Prefix your API key with `Key `, e.g. `Key ABC123`.
'
in: header
name: Authorization
type: apiKey