{
  "_id": "69df435bc5259ad4cd8dd79f",
  "Package": "crul",
  "Title": "HTTP Client",
  "Description": "A simple HTTP client, with tools for making HTTP requests,\nand mocking HTTP requests. The package is built on R6, and\ntakes inspiration from Ruby's 'faraday' gem\n(<https://rubygems.org/gems/faraday>). The package name is a\nplay on curl, the widely used command line tool for HTTP, and\nthis package is built on top of the R package 'curl', an\ninterface to 'libcurl' (<https://curl.se/libcurl/>).",
  "Version": "1.6.0.9000",
  "License": "MIT + file LICENSE",
  "Authors@R": "c(\nperson(\"Scott\", \"Chamberlain\", role = c(\"aut\", \"cre\"),\nemail = \"myrmecocystus@gmail.com\",\ncomment = c(ORCID = \"0000-0003-1444-9135\"))\n)",
  "URL": "https://docs.ropensci.org/crul/, https://github.com/ropensci/crul,\nhttps://books.ropensci.org/http-testing/",
  "BugReports": "https://github.com/ropensci/crul/issues",
  "Roxygen": "list(markdown = TRUE)",
  "Encoding": "UTF-8",
  "Language": "en-US",
  "VignetteBuilder": "knitr",
  "RoxygenNote": "7.3.2",
  "Config/testthat/edition": "3",
  "Config/testthat/parallel": "true",
  "Config/pak/sysreqs": "libssl-dev",
  "Repository": "https://ropensci.r-universe.dev",
  "Date/Publication": "2025-07-23 21:24:19 UTC",
  "RemoteUrl": "https://github.com/ropensci/crul",
  "RemoteRef": "main",
  "RemoteSha": "6e4ee16daaff28d842044bff979cf3dcd26263ae",
  "NeedsCompilation": "no",
  "Packaged": {
    "Date": "2026-04-15 07:47:46 UTC",
    "User": "root"
  },
  "Author": "Scott Chamberlain [aut, cre] (ORCID:\n<https://orcid.org/0000-0003-1444-9135>)",
  "Maintainer": "Scott Chamberlain <myrmecocystus@gmail.com>",
  "MD5sum": "fd465f921da500fc4c13b196e04795bb",
  "_user": "ropensci",
  "_type": "src",
  "_file": "crul_1.6.0.9000.tar.gz",
  "_fileid": "9d87b2de8cb72f1c20a72eafb08a3ae99be42173ae55b03d82d90c64e975b1ef",
  "_filesize": 786464,
  "_sha256": "9d87b2de8cb72f1c20a72eafb08a3ae99be42173ae55b03d82d90c64e975b1ef",
  "_created": "2026-04-15T07:47:46.000Z",
  "_published": "2026-04-15T07:50:50.999Z",
  "_distro": "noble",
  "_jobs": [
    {
      "job": 71411563122,
      "time": 138,
      "config": "linux-devel-x86_64",
      "r": "4.6.0",
      "check": "OK",
      "artifact": "6445516598"
    },
    {
      "job": 71411563157,
      "time": 132,
      "config": "linux-release-x86_64",
      "r": "4.5.3",
      "check": "OK",
      "artifact": "6445515318"
    },
    {
      "job": 71411563131,
      "time": 75,
      "config": "macos-oldrel-arm64",
      "r": "4.5.3",
      "check": "ERROR",
      "artifact": "6445500059"
    },
    {
      "job": 71411563124,
      "time": 117,
      "config": "macos-release-arm64",
      "r": "4.6.0",
      "check": "OK",
      "artifact": "6445510739"
    },
    {
      "job": 71411188229,
      "time": 170,
      "config": "pkgdown",
      "r": "4.5.2",
      "check": "OK",
      "artifact": "6445477872"
    },
    {
      "job": 71411188213,
      "time": 171,
      "config": "source",
      "r": "4.5.3",
      "check": "OK",
      "artifact": "6445478496"
    },
    {
      "job": 71411563107,
      "time": 123,
      "config": "wasm-release",
      "r": "4.5.1",
      "check": "OK",
      "artifact": "6445512426"
    },
    {
      "job": 71411563134,
      "time": 106,
      "config": "windows-devel",
      "r": "4.7.0",
      "check": "OK",
      "artifact": "6445508089"
    },
    {
      "job": 71411563117,
      "time": 94,
      "config": "windows-oldrel",
      "r": "4.5.3",
      "check": "OK",
      "artifact": "6445504957"
    },
    {
      "job": 71411563130,
      "time": 84,
      "config": "windows-release",
      "r": "4.6.0",
      "check": "OK",
      "artifact": "6445502683"
    }
  ],
  "_buildurl": "https://github.com/r-universe/ropensci/actions/runs/24442646985",
  "_status": "success",
  "_host": "GitHub-Actions",
  "_upstream": "https://github.com/ropensci/crul",
  "_commit": {
    "id": "6e4ee16daaff28d842044bff979cf3dcd26263ae",
    "author": "Scott Chamberlain <sckott@fastmail.com>",
    "committer": "Scott Chamberlain <sckott@fastmail.com>",
    "message": "Increment version number to 1.6.0.9000\n",
    "time": 1753305859
  },
  "_maintainer": {
    "name": "Scott Chamberlain",
    "email": "myrmecocystus@gmail.com",
    "login": "sckott",
    "mastodon": "@sckottie@hachyderm.io",
    "bluesky": "@sckott.bsky.social",
    "orcid": "0000-0003-1444-9135",
    "uuid": 577668
  },
  "_registered": true,
  "_dependencies": [
    {
      "package": "curl",
      "version": ">= 3.3",
      "role": "Imports"
    },
    {
      "package": "R6",
      "version": ">= 2.2.0",
      "role": "Imports"
    },
    {
      "package": "urltools",
      "version": ">= 1.6.0",
      "role": "Imports"
    },
    {
      "package": "httpcode",
      "version": ">= 0.2.0",
      "role": "Imports"
    },
    {
      "package": "jsonlite",
      "role": "Imports"
    },
    {
      "package": "mime",
      "role": "Imports"
    },
    {
      "package": "rlang",
      "role": "Imports"
    },
    {
      "package": "lifecycle",
      "role": "Imports"
    },
    {
      "package": "testthat",
      "version": ">= 3.0.0",
      "role": "Suggests"
    },
    {
      "package": "roxygen2",
      "version": ">= 7.1.1",
      "role": "Suggests"
    },
    {
      "package": "fauxpas",
      "version": ">= 0.1.0",
      "role": "Suggests"
    },
    {
      "package": "webmockr",
      "version": ">= 2.2.0",
      "role": "Suggests"
    },
    {
      "package": "withr",
      "role": "Suggests"
    },
    {
      "package": "knitr",
      "role": "Suggests"
    },
    {
      "package": "rmarkdown",
      "role": "Suggests"
    }
  ],
  "_owner": "ropensci",
  "_selfowned": true,
  "_usedby": 152,
  "_updates": [
    {
      "week": "2025-27",
      "n": 2
    },
    {
      "week": "2025-28",
      "n": 4
    },
    {
      "week": "2025-29",
      "n": 2
    },
    {
      "week": "2025-30",
      "n": 5
    }
  ],
  "_tags": [
    {
      "name": "v1.6.0",
      "date": "2025-07-21"
    }
  ],
  "_topics": [
    "http",
    "https",
    "api",
    "web-services",
    "curl",
    "download",
    "libcurl",
    "async",
    "mocking",
    "caching"
  ],
  "_stars": 107,
  "_contributors": [
    {
      "user": "sckott",
      "count": 505,
      "uuid": 577668
    },
    {
      "user": "hlapp",
      "count": 7,
      "uuid": 51458
    },
    {
      "user": "maelle",
      "count": 6,
      "uuid": 8360597
    },
    {
      "user": "amoeba",
      "count": 4,
      "uuid": 563
    },
    {
      "user": "ateucher",
      "count": 2,
      "uuid": 2816635
    },
    {
      "user": "espinielli",
      "count": 2,
      "uuid": 891692
    },
    {
      "user": "graceli8",
      "count": 2,
      "uuid": 23415421
    },
    {
      "user": "adamhsparks",
      "count": 2,
      "uuid": 3195906
    },
    {
      "user": "aaronwolen",
      "count": 1,
      "uuid": 1067915
    },
    {
      "user": "dpprdan",
      "count": 1,
      "uuid": 1423562
    },
    {
      "user": "jeroen",
      "count": 1,
      "uuid": 216319
    },
    {
      "user": "johnbaums",
      "count": 1,
      "uuid": 818438
    },
    {
      "user": "keller-mark",
      "count": 1,
      "uuid": 7525285
    },
    {
      "user": "mdsumner",
      "count": 1,
      "uuid": 4107631
    }
  ],
  "_userbio": {
    "uuid": 1200269,
    "type": "organization",
    "name": "rOpenSci",
    "description": "Tools and R Packages for Open Science"
  },
  "_downloads": {
    "count": 26173,
    "source": "https://cranlogs.r-pkg.org/downloads/total/last-month/crul"
  },
  "_mentions": 2,
  "_devurl": "https://github.com/ropensci/crul",
  "_pkgdown": "https://docs.ropensci.org/crul/",
  "_searchresults": 219,
  "_metadata": {
    "ropensci_category": "http-tools"
  },
  "_rbuild": "4.5.3",
  "_assets": [
    "extra/citation.cff",
    "extra/citation.html",
    "extra/citation.json",
    "extra/citation.txt",
    "extra/contents.json",
    "extra/crul.html",
    "extra/NEWS.html",
    "extra/NEWS.txt",
    "extra/readme.html",
    "extra/readme.md",
    "manual.pdf"
  ],
  "_homeurl": "https://github.com/ropensci/crul",
  "_realowner": "ropensci",
  "_cranurl": true,
  "_releases": [
    {
      "version": "0.1.0",
      "date": "2016-11-09"
    },
    {
      "version": "0.1.6",
      "date": "2016-12-17"
    },
    {
      "version": "0.2.0",
      "date": "2017-01-03"
    },
    {
      "version": "0.3.0",
      "date": "2017-02-17"
    },
    {
      "version": "0.3.4",
      "date": "2017-03-31"
    },
    {
      "version": "0.3.6",
      "date": "2017-05-23"
    },
    {
      "version": "0.3.8",
      "date": "2017-06-15"
    },
    {
      "version": "0.4.0",
      "date": "2017-10-02"
    },
    {
      "version": "0.5.0",
      "date": "2018-01-22"
    },
    {
      "version": "0.5.2",
      "date": "2018-02-24"
    },
    {
      "version": "0.6.0",
      "date": "2018-07-10"
    },
    {
      "version": "0.7.0",
      "date": "2019-01-04"
    },
    {
      "version": "0.7.4",
      "date": "2019-03-28"
    },
    {
      "version": "0.8.0",
      "date": "2019-06-28"
    },
    {
      "version": "0.8.4",
      "date": "2019-08-02"
    },
    {
      "version": "0.9.0",
      "date": "2019-11-06"
    },
    {
      "version": "1.0.0",
      "date": "2020-07-30"
    },
    {
      "version": "1.1.0",
      "date": "2021-02-15"
    },
    {
      "version": "1.2.0",
      "date": "2021-11-22"
    },
    {
      "version": "1.3",
      "date": "2022-09-03"
    },
    {
      "version": "1.4.0",
      "date": "2023-05-17"
    },
    {
      "version": "1.4.2",
      "date": "2024-04-09"
    },
    {
      "version": "1.5.0",
      "date": "2024-07-19"
    },
    {
      "version": "1.6.0",
      "date": "2025-07-23"
    }
  ],
  "_exports": [
    "Async",
    "AsyncQueue",
    "AsyncVaried",
    "auth",
    "crul_settings",
    "curl_verbose",
    "handle",
    "HttpClient",
    "HttpRequest",
    "HttpResponse",
    "mock",
    "ok",
    "Paginator",
    "proxy",
    "set_auth",
    "set_headers",
    "set_opts",
    "set_proxy",
    "set_verbose",
    "upload",
    "url_build",
    "url_parse"
  ],
  "_help": [
    {
      "page": "Async",
      "title": "Simple async client",
      "concept": [
        "async"
      ],
      "topics": [
        "Async"
      ]
    },
    {
      "page": "AsyncQueue",
      "title": "AsyncQueue",
      "concept": [
        "async"
      ],
      "topics": [
        "AsyncQueue"
      ]
    },
    {
      "page": "AsyncVaried",
      "title": "Async client for different request types",
      "concept": [
        "async"
      ],
      "topics": [
        "AsyncVaried"
      ]
    },
    {
      "page": "auth",
      "title": "Authentication",
      "topics": [
        "auth"
      ]
    },
    {
      "page": "content-types",
      "title": "Working with content types",
      "topics": [
        "content-types"
      ]
    },
    {
      "page": "cookies",
      "title": "Working with cookies",
      "topics": [
        "cookies"
      ]
    },
    {
      "page": "crul-options",
      "title": "Set curl options, proxy, and basic auth",
      "topics": [
        "crul-options",
        "crul_settings",
        "set_auth",
        "set_headers",
        "set_opts",
        "set_proxy",
        "set_verbose"
      ]
    },
    {
      "page": "curl_verbose",
      "title": "curl verbose method",
      "topics": [
        "curl_verbose"
      ]
    },
    {
      "page": "curl-options",
      "title": "curl options",
      "topics": [
        "curl-options",
        "timeout",
        "user-agent",
        "verbose"
      ]
    },
    {
      "page": "handle",
      "title": "Make a handle",
      "topics": [
        "handle"
      ]
    },
    {
      "page": "hooks",
      "title": "Event Hooks",
      "topics": [
        "hooks"
      ]
    },
    {
      "page": "http-headers",
      "title": "Working with HTTP headers",
      "topics": [
        "http-headers"
      ]
    },
    {
      "page": "HttpClient",
      "title": "HTTP client",
      "topics": [
        "HttpClient"
      ]
    },
    {
      "page": "HttpRequest",
      "title": "HTTP request object",
      "concept": [
        "async"
      ],
      "topics": [
        "HttpRequest"
      ]
    },
    {
      "page": "HttpResponse",
      "title": "Base HTTP response object",
      "topics": [
        "HttpResponse"
      ]
    },
    {
      "page": "mock",
      "title": "Mocking HTTP requests",
      "topics": [
        "mock"
      ]
    },
    {
      "page": "ok",
      "title": "check if a url is okay",
      "topics": [
        "ok"
      ]
    },
    {
      "page": "Paginator",
      "title": "Paginator client",
      "topics": [
        "Paginator"
      ]
    },
    {
      "page": "progress",
      "title": "progress bars",
      "topics": [
        "progress"
      ]
    },
    {
      "page": "proxies",
      "title": "proxy options",
      "topics": [
        "proxies",
        "proxy"
      ]
    },
    {
      "page": "upload",
      "title": "upload file",
      "topics": [
        "upload"
      ]
    },
    {
      "page": "url_build",
      "title": "Build and parse URLs",
      "topics": [
        "url_build",
        "url_parse"
      ]
    },
    {
      "page": "verb-DELETE",
      "title": "HTTP verb info: DELETE",
      "concept": [
        "verbs"
      ],
      "topics": [
        "verb-DELETE"
      ]
    },
    {
      "page": "verb-GET",
      "title": "HTTP verb info: GET",
      "concept": [
        "verbs"
      ],
      "topics": [
        "verb-GET"
      ]
    },
    {
      "page": "verb-HEAD",
      "title": "HTTP verb info: HEAD",
      "concept": [
        "verbs"
      ],
      "topics": [
        "verb-HEAD"
      ]
    },
    {
      "page": "verb-PATCH",
      "title": "HTTP verb info: PATCH",
      "concept": [
        "verbs"
      ],
      "topics": [
        "verb-PATCH"
      ]
    },
    {
      "page": "verb-POST",
      "title": "HTTP verb info: POST",
      "concept": [
        "verbs"
      ],
      "topics": [
        "verb-POST"
      ]
    },
    {
      "page": "verb-PUT",
      "title": "HTTP verb info: PUT",
      "concept": [
        "verbs"
      ],
      "topics": [
        "verb-PUT"
      ]
    },
    {
      "page": "writing-options",
      "title": "Writing data options",
      "topics": [
        "writing-options"
      ]
    }
  ],
  "_pkglogo": "https://github.com/ropensci/crul/raw/main/man/figures/logo.png",
  "_readme": "https://github.com/ropensci/crul/raw/main/README.md",
  "_rundeps": [
    "cli",
    "curl",
    "httpcode",
    "jsonlite",
    "lifecycle",
    "mime",
    "R6",
    "Rcpp",
    "rlang",
    "triebeard",
    "urltools"
  ],
  "_vignettes": [
    {
      "source": "crul.Rmd",
      "filename": "crul.html",
      "title": "crul introduction ",
      "author": "Scott Chamberlain",
      "engine": "knitr::rmarkdown",
      "headings": [
        "Install",
        "HttpClient - the main interface",
        "Do some HTTP requests",
        "write to disk",
        "stream data"
      ],
      "created": "2019-06-13 18:03:19",
      "modified": "2025-07-04 21:20:11",
      "commits": 10
    },
    {
      "source": "how-to-use-crul.Rmd",
      "filename": "how-to-use-crul.html",
      "title": "crul workflows ",
      "author": "Scott Chamberlain",
      "engine": "knitr::rmarkdown",
      "headings": [
        "A simple HTTP request function",
        "More customized function",
        "Asynchronous requests"
      ],
      "created": "2017-03-24 23:07:05",
      "modified": "2024-07-18 23:03:00",
      "commits": 17
    },
    {
      "source": "async.Rmd",
      "filename": "async.html",
      "title": "async with crul ",
      "author": "Scott Chamberlain",
      "engine": "knitr::rmarkdown",
      "headings": [
        "simple async",
        "varied request async"
      ],
      "created": "2017-02-17 19:31:05",
      "modified": "2024-07-18 23:03:00",
      "commits": 18
    },
    {
      "source": "curl-options.Rmd",
      "filename": "curl-options.html",
      "title": "curl options ",
      "author": "Scott Chamberlain",
      "engine": "knitr::rmarkdown",
      "headings": [
        "Discover curl options",
        "Other ways to use curl besides R",
        "general info",
        "using curl options in other packages",
        "timeout",
        "verbose",
        "headers",
        "authenticate",
        "cookies",
        "progress",
        "proxies",
        "user agent"
      ],
      "created": "2018-07-06 23:41:23",
      "modified": "2025-07-18 13:44:57",
      "commits": 11
    },
    {
      "source": "best-practices-api-packages.Rmd",
      "filename": "best-practices-api-packages.html",
      "title": "API package best practices ",
      "author": "Scott Chamberlain",
      "engine": "knitr::rmarkdown",
      "headings": [
        "Importing crul",
        "HTTP request function",
        "Failing with fauxpas",
        "Retrying requests",
        "Mocking with webmockr",
        "Testing with vcr",
        "What else?"
      ],
      "created": "2018-10-24 20:42:43",
      "modified": "2024-07-18 23:03:00",
      "commits": 15
    },
    {
      "source": "choosing-a-client.Rmd",
      "filename": "choosing-a-client.html",
      "title": "Choosing a HTTP request class ",
      "author": "Scott Chamberlain",
      "engine": "knitr::rmarkdown",
      "headings": [
        "HttpRequest",
        "More Async"
      ],
      "created": "2020-07-09 20:57:29",
      "modified": "2024-07-18 23:03:00",
      "commits": 10
    }
  ],
  "_score": 13.940800834376683,
  "_indexed": true,
  "_nocasepkg": "crul",
  "_universes": [
    "ropensci",
    "sckott"
  ],
  "_binaries": [
    {
      "r": "4.6.0",
      "os": "linux",
      "version": "1.6.0.9000",
      "date": "2026-04-15T07:50:00.000Z",
      "distro": "noble",
      "commit": "6e4ee16daaff28d842044bff979cf3dcd26263ae",
      "fileid": "b80d95ad8f06110faa51dbf7ca665ea132f5c705ddc3a408b9e6df3f97730dd6",
      "status": "success",
      "check": "OK",
      "buildurl": "https://github.com/r-universe/ropensci/actions/runs/24442646985"
    },
    {
      "r": "4.5.3",
      "os": "linux",
      "version": "1.6.0.9000",
      "date": "2026-04-15T07:49:59.000Z",
      "distro": "noble",
      "commit": "6e4ee16daaff28d842044bff979cf3dcd26263ae",
      "fileid": "bf8f6722c546902c56f1e2b4f7ae02348c4336c486737f80a61147faa1373a47",
      "status": "success",
      "check": "OK",
      "buildurl": "https://github.com/r-universe/ropensci/actions/runs/24442646985"
    },
    {
      "r": "4.5.3",
      "os": "mac",
      "version": "1.6.0.9000",
      "date": "2026-04-15T07:49:12.000Z",
      "commit": "6e4ee16daaff28d842044bff979cf3dcd26263ae",
      "fileid": "12b32c35118ba798e1a953bbe379f7021e4e1e67dd534fd29dfa1fa7aa3563a9",
      "status": "failure",
      "check": "ERROR",
      "buildurl": "https://github.com/r-universe/ropensci/actions/runs/24442646985"
    },
    {
      "r": "4.6.0",
      "os": "mac",
      "version": "1.6.0.9000",
      "date": "2026-04-15T07:49:43.000Z",
      "commit": "6e4ee16daaff28d842044bff979cf3dcd26263ae",
      "fileid": "fa4d3011e3aae725ffb9ab5bc4a8b189e33a9bfb62b179b89656678d142c4ee8",
      "status": "success",
      "check": "OK",
      "buildurl": "https://github.com/r-universe/ropensci/actions/runs/24442646985"
    },
    {
      "r": "4.5.1",
      "os": "wasm",
      "version": "1.6.0.9000",
      "date": "2026-04-15T07:50:09.000Z",
      "commit": "6e4ee16daaff28d842044bff979cf3dcd26263ae",
      "fileid": "ce9a98d43fa351be33c81eb9eac8ca81140b387eb0038befa07b6150399f383e",
      "status": "success",
      "buildurl": "https://github.com/r-universe/ropensci/actions/runs/24442646985"
    },
    {
      "r": "4.7.0",
      "os": "win",
      "version": "1.6.0.9000",
      "date": "2026-04-15T07:49:21.000Z",
      "commit": "6e4ee16daaff28d842044bff979cf3dcd26263ae",
      "fileid": "2c8db34e6e4795a4f80303c0ab0338f0fc2d2404ddfaf95a8bfc3c2b2974c34a",
      "status": "success",
      "check": "OK",
      "buildurl": "https://github.com/r-universe/ropensci/actions/runs/24442646985"
    },
    {
      "r": "4.5.3",
      "os": "win",
      "version": "1.6.0.9000",
      "date": "2026-04-15T07:49:12.000Z",
      "commit": "6e4ee16daaff28d842044bff979cf3dcd26263ae",
      "fileid": "9bf2da9eaa301b23cd2481fb57c9db1c216c991d9be0c0b4d401a9f573a4fe35",
      "status": "success",
      "check": "OK",
      "buildurl": "https://github.com/r-universe/ropensci/actions/runs/24442646985"
    },
    {
      "r": "4.6.0",
      "os": "win",
      "version": "1.6.0.9000",
      "date": "2026-04-15T07:49:02.000Z",
      "commit": "6e4ee16daaff28d842044bff979cf3dcd26263ae",
      "fileid": "e5bd219c79eab35736c99a1c95b25db5414f8cb9931ca8dd0a6f6dd9f31e91ab",
      "status": "success",
      "check": "OK",
      "buildurl": "https://github.com/r-universe/ropensci/actions/runs/24442646985"
    }
  ]
}