Overview
In this vignette, we demonstrate how to interact with the Nettskjema API to perform the following tasks: 1. Retrieve a list of all forms you have access to. 1. Download reports associated with a form.
Prerequisites
Before you begin, ensure that you have already set up authentication. If you haven’t, refer to the vignette on authentication setup.
Additionally, load the required package:
library(nettskjemar)
ns_sitrep()
#>
#> ── Nettskjema API Sitrep ───────────────────────────────────────────────────────
#> ✔ nettskjemar version: 1.0.4
#>
#> ── Nettskjema API Configuration ──
#>
#> ℹ API URL is set to: "https://nettskjema.no/api/v3/"
#> ✔ Client ID: Valid format and length.
#> ✔ Client Secret: Valid format and length.
#>
#> ── API Connectivity ──
#>
#> ✔ Successfully connected to API
#> ℹ Tested by fetching client profile
#>
#> ── Environment ──
#>
#> ✔ R version: "R version 4.5.1 (2025-06-13)"
#> ✔ OS: "Linux" "6.11.0-1018-azure"
#> ────────────────────────────────────────────────────────────────────────────────
Retrieving All Available Forms
To see which forms you have access to, use the
ns_get_forms
function.
Example: Getting Forms
# Retrieve all forms
forms <- ns_get_forms()
head(forms)
#> formId title openFrom openTo
#> 1 123823 API test form 2023-06-01T20:55:49 2024-06-02T02:00:02
#> lastSubmissionDate modifiedDate personalDataErasedDate
#> 1 2023-06-01T20:59:50 2025-09-08T16:57:36 NA
#> deliveryDestination anonymous numberOfDeliveredSubmissions owners
#> 1 DATABASE FALSE 3 3
#> isDictaphone myFormsFormListingGroup open
#> 1 FALSE OLD FALSE
Retrieving Raw Form Data
If you prefer to get the raw list format as returned by the API, use
asis = TRUE
.
# Retrieve raw form data
raw_forms <- ns_get_forms(asis = TRUE)
# Display the raw response
print(raw_forms)
#> [[1]]
#> [[1]]$formId
#> [1] 123823
#>
#> [[1]]$title
#> [1] "API test form"
#>
#> [[1]]$openFrom
#> [1] "2023-06-01T20:55:49"
#>
#> [[1]]$openTo
#> [1] "2024-06-02T02:00:02"
#>
#> [[1]]$lastSubmissionDate
#> [1] "2023-06-01T20:59:50"
#>
#> [[1]]$modifiedDate
#> [1] "2025-09-08T16:57:36"
#>
#> [[1]]$personalDataErasedDate
#> NULL
#>
#> [[1]]$deliveryDestination
#> [1] "DATABASE"
#>
#> [[1]]$anonymous
#> [1] FALSE
#>
#> [[1]]$numberOfDeliveredSubmissions
#> [1] 3
#>
#> [[1]]$owners
#> [1] 3
#>
#> [[1]]$isDictaphone
#> [1] FALSE
#>
#> [[1]]$myFormsFormListingGroup
#> [1] "OLD"
#>
#> [[1]]$open
#> [1] FALSE
Downloading Form Reports
Each form can have reports such as CSV, Excel, or SPSS files
associated with it. Use the ns_get_form_reports
function to
download these reports.
Example: Download a CSV Report
#| label: csv
# Define the form ID
form_id <- 110000
# Download a CSV report to the default path
ns_get_form_reports(form_id, type = "csv")
# The report will be saved as `110000.csv` in your working directory
Example: Download an Excel Report
#| label: excel
# Download an Excel report
ns_get_form_reports(form_id, type = "excel")
Example: Save SPSS Report to a Custom Path
#| label: spss
# Specify the path you want to save the file
path <- fs::path_home("Desktop/110000_report.sav")
# Download and save the SPSS report
ns_get_form_reports(form_id, type = "spss", path = path)