| Type: | Package |
| Title: | Convenient Access to Los Angeles Open Data API Endpoints |
| Version: | 0.1.0 |
| Description: | Provides simple, reproducible access to datasets from the Los Angeles Open Data portal https://data.lacity.org/. Functions return results as tidy tibbles and support optional filtering, sorting, and row limits via the Socrata API. |
| License: | MIT + file LICENSE |
| Encoding: | UTF-8 |
| RoxygenNote: | 7.3.3 |
| Imports: | dplyr, tibble, jsonlite, httr, janitor, rlang |
| Suggests: | curl, knitr, ggplot2, rmarkdown, testthat (≥ 3.0.0), tidyr, vcr (≥ 0.6.0), webmockr |
| URL: | https://martinezc1.github.io/laOpenData/, https://github.com/martinezc1/laOpenData |
| BugReports: | https://github.com/martinezc1/laOpenData/issues |
| VignetteBuilder: | knitr |
| Config/testthat/edition: | 3 |
| Depends: | R (≥ 4.1.0) |
| NeedsCompilation: | no |
| Packaged: | 2026-04-13 00:23:48 UTC; christianmartinez |
| Author: | Christian Martinez
|
| Maintainer: | Christian Martinez <c.martinez0@outlook.com> |
| Repository: | CRAN |
| Date/Publication: | 2026-04-16 19:40:08 UTC |
laOpenData: Convenient Access to Los Angeles Open Data API Endpoints
Description
Provides simple, reproducible access to datasets from the Los Angeles Open Data portal https://data.lacity.org/. Functions return results as tidy tibbles and support optional filtering, sorting, and row limits via the Socrata API.
Author(s)
Maintainer: Christian Martinez c.martinez0@outlook.com (ORCID) (martinezc1)
See Also
Useful links:
Report bugs at https://github.com/martinezc1/laOpenData/issues
Load Any Los Angeles Open Data Dataset
Description
Downloads any Los Angeles Open Data dataset given its Socrata JSON endpoint.
Usage
la_any_dataset(
json_link,
limit = 10000,
timeout_sec = 30,
clean_names = TRUE,
coerce_types = TRUE
)
Arguments
json_link |
A Socrata dataset JSON endpoint URL (e.g., "https://data.lacity.org/resource/6rrh-rzua.json.json"). |
limit |
Number of rows to retrieve (default = 10,000). |
timeout_sec |
Request timeout in seconds (default = 30). |
clean_names |
Logical; if TRUE, convert column names to snake_case (default = TRUE). |
coerce_types |
Logical; if TRUE, attempt light type coercion (default = TRUE). |
Value
A tibble containing the requested dataset.
Examples
# Examples that hit the live Los Angeles Open Data API are guarded so CRAN checks
# do not fail when the network is unavailable or slow.
if (interactive() && curl::has_internet()) {
endpoint <- "https://data.lacity.org/resource/6rrh-rzua.json.json"
out <- try(la_any_dataset(endpoint, limit = 3), silent = TRUE)
if (!inherits(out, "try-error")) {
head(out)
}
}
List datasets available in laOpenData
Description
Retrieves the current Open NY catalog and returns datasets available for use with 'la_pull_dataset()'.
Usage
la_list_datasets()
Details
Keys are generated from dataset names using 'janitor::make_clean_names()'.
Value
A tibble of available datasets, including generated 'key', dataset 'id', and dataset 'name'.
Examples
if (interactive() && curl::has_internet()) {
la_list_datasets()
}
Pull a Los Angeles Open Data dataset from the Los Angeles Open Data catalog
Description
Uses a dataset 'key' or 'id' from 'la_list_datasets()' to pull data from Los Angeles Open Data.
Usage
la_pull_dataset(
dataset,
limit = 10000,
filters = list(),
date = NULL,
from = NULL,
to = NULL,
date_field = NULL,
where = NULL,
order = NULL,
timeout_sec = 30,
clean_names = TRUE,
coerce_types = TRUE
)
Arguments
dataset |
A dataset key or ID from 'la_list_datasets()'. |
limit |
Number of rows to retrieve (default = 10,000). |
filters |
Optional named list of filters. Supports vectors (translated to IN()). |
date |
Optional single date (matches all times that day) using 'date_field'. |
from |
Optional start date (inclusive) using 'date_field'. |
to |
Optional end date (exclusive) using 'date_field'. |
date_field |
Optional date/datetime column to use with 'date', 'from', or 'to'. Must be supplied when 'date', 'from', or 'to' are used. |
where |
Optional raw SoQL WHERE clause. If 'date', 'from', or 'to' are provided, their conditions are AND-ed with this. |
order |
Optional SoQL ORDER BY clause. |
timeout_sec |
Request timeout in seconds (default = 30). |
clean_names |
Logical; if TRUE, convert column names to snake_case (default = TRUE). |
coerce_types |
Logical; if TRUE, attempt light type coercion (default = TRUE). |
Details
Dataset keys are generated from dataset titles using 'janitor::make_clean_names()'. Because keys are derived from live catalog metadata, dataset IDs are the more stable option.
Value
A tibble.
Examples
if (interactive() && curl::has_internet()) {
# Pull by key
la_pull_dataset("current_employee_names_salaries_and_position_titles", limit = 3)
# Pull by ID
la_pull_dataset("xzkq-xp2w", limit = 3)
# Filters
la_pull_dataset("xzkq-xp2w", limit = 3, filters = list(salary_or_hourly = "HOURLY"))
}