Author: Cole Arendt
Date: 2026-04-29

# Getting Started with connectapi

#### Cole Arendt

#### 2026-04-29

## Connecting

The first thing that you need to accomplish when using the `connectapi` is getting connected to your Posit Connect server. This requires the URL to your server and an API key. Directions on how to get an API key are here.

Once you have your API key, you can create a Connect object in your code, like so:

    library(connectapi)
    client <- connect(
      server = "http://example.com:3939",
      api_key = "aihgaahegiahgg"
    )

The alternative is to define a `.Renviron` file, which specifies environment variables:

    CONNECT_SERVER=http://example.com:3939
    CONNECT_API_KEY=aihgaahegiahgg

Then, those can be used in your code:

    library(connectapi)

    # this happens by default if you restart your R session
    readRenviron(".Renviron")

    client <- connect()

## Content Management

The `connectapi` package has tools to help programmatically deploy and manage content. To get started, you need to use the `rsconnect` package, specifically the `rsconnect::writeManifest()` function, to build a `manifest.json` file for a directory of content that you want to deploy.

Once the `manifest.json` file is present, you can reference the directory and deploy it directly:

    bnd <- bundle_dir("./my/directory")

    # name must be unique on the server
    # if you do not specify it, a random value will be provided
    content_1 <- client %>%
      deploy(bnd, name = "my-content", title = "Amazing Report!!")

The content object (`content_1`) includes information about the deployment that you just requested. This can be explored with:

    content_1 %>% poll_task()

Alternatively, you can immediately begin altering the settings of the content object while you wait for deployment to complete:

    content_1 %>%
      set_thumbnail("https://gph.is/29vyb0s") %>%
      set_vanity_url("/my_clever_content")

    # ensure the vanity URL is set as expected
    content_1 %>%
      get_vanity_url()

If you have content that already exists and you want to update it, you can do so using the content GUID (which you can find within Posit Connect in the Info pane).

    content_2 <- client %>%
      deploy(bnd, guid = "d78ba9f8-bb57-422e-b164-9ecd8e4c4fd6") %>%
      poll_task()

You can also use the Posit Connect content GUID to retrieve information about existing content (if you want to examine or change settings)

    content_3 <- client %>%
      content_item(guid = "96532fbc-725e-441b-9cc6-a5622535241b")