{
  "_id": "6a44d4436ff6f2357551c0ee",
  "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-07-01 08:25:52 UTC",
    "User": "root"
  },
  "Author": "Scott Chamberlain [aut, cre] (ORCID:\n<https://orcid.org/0000-0003-1444-9135>)",
  "Maintainer": "Scott Chamberlain <myrmecocystus@gmail.com>",
  "_user": "ropensci",
  "_type": "src",
  "_file": "crul_1.6.0.9000.tar.gz",
  "_fileid": "https://r2.ropensci.org/97e7e36311af149569f637ddecb3b8270b81c21985cdaea434aaecc308e3d1f5",
  "_filesize": 786780,
  "_sha256": "97e7e36311af149569f637ddecb3b8270b81c21985cdaea434aaecc308e3d1f5",
  "_expires": "2026-10-09T08:48:03.000Z",
  "_created": "2026-07-01T08:25:52.000Z",
  "_published": "2026-07-01T08:48:03.568Z",
  "_jobs": [
    {
      "job": 84488110976,
      "time": 134,
      "config": "linux-devel-x86_64",
      "r": "4.7.0",
      "check": "OK",
      "artifact": "8004302058"
    },
    {
      "job": 84488111009,
      "time": 144,
      "config": "linux-release-x86_64",
      "r": "4.6.1",
      "check": "OK",
      "artifact": "8004306987"
    },
    {
      "job": 84488110966,
      "time": 119,
      "config": "macos-oldrel-arm64",
      "r": "4.5.3",
      "check": "OK",
      "artifact": "8004730629"
    },
    {
      "job": 84488110980,
      "time": 107,
      "config": "macos-release-arm64",
      "r": "4.6.1",
      "check": "OK",
      "artifact": "8004724480"
    },
    {
      "job": 84487185423,
      "time": 216,
      "config": "pkgdown",
      "r": "4.6.0",
      "check": "OK",
      "artifact": "8004250416"
    },
    {
      "job": 84487185495,
      "time": 181,
      "config": "source",
      "r": "4.6.1",
      "check": "OK",
      "artifact": "8004238429"
    },
    {
      "job": 84488110978,
      "time": 146,
      "config": "wasm-release",
      "r": "4.6.0",
      "check": "OK",
      "artifact": "8004306558"
    },
    {
      "job": 84488111021,
      "time": 93,
      "config": "windows-devel",
      "r": "4.7.0",
      "check": "OK",
      "artifact": "8004287262"
    },
    {
      "job": 84488110995,
      "time": 89,
      "config": "windows-oldrel",
      "r": "4.5.3",
      "check": "OK",
      "artifact": "8004284831"
    },
    {
      "job": 84488111134,
      "time": 87,
      "config": "windows-release",
      "r": "4.6.1",
      "check": "OK",
      "artifact": "8004283551"
    }
  ],
  "_host": "GitHub-Actions",
  "_buildurl": "https://github.com/r-universe/ropensci/actions/runs/28503658655",
  "_status": "success",
  "_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",
    "description": "Software Engineer @ Fred Hutch",
    "uuid": 577668
  },
  "_distro": "resolute",
  "_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": 148,
  "_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": 108,
  "_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",
    "followers": 1106,
    "description": "Tools and R Packages for Open Science"
  },
  "_downloads": {
    "count": 24558,
    "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": 234,
  "_metadata": {
    "ropensci_category": "http-tools"
  },
  "_rbuild": "4.6.1",
  "_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",
    "LICENSE",
    "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.934370172059069,
  "_indexed": true,
  "_nocasepkg": "crul",
  "_universes": [
    "ropensci",
    "sckott"
  ],
  "_binaries": [
    {
      "r": "4.7.0",
      "os": "linux",
      "version": "1.6.0.9000",
      "date": "2026-07-01T08:28:35.000Z",
      "distro": "resolute",
      "commit": "6e4ee16daaff28d842044bff979cf3dcd26263ae",
      "fileid": "https://r2.ropensci.org/f49ef93b10396a899234429ace2c5cffc8b55f0bdad28f2299cb9cfa95aed8e1",
      "status": "success",
      "check": "OK",
      "buildurl": "https://github.com/r-universe/ropensci/actions/runs/28503658655"
    },
    {
      "r": "4.6.1",
      "os": "linux",
      "version": "1.6.0.9000",
      "date": "2026-07-01T08:28:42.000Z",
      "distro": "resolute",
      "commit": "6e4ee16daaff28d842044bff979cf3dcd26263ae",
      "fileid": "https://r2.ropensci.org/3c3c97daafb5b8e7b06c01b148aadf3737ab30875a6e227e12ef7e87d05f3937",
      "status": "success",
      "check": "OK",
      "buildurl": "https://github.com/r-universe/ropensci/actions/runs/28503658655"
    },
    {
      "r": "4.5.3",
      "os": "mac",
      "version": "1.6.0.9000",
      "date": "2026-07-01T08:47:15.000Z",
      "commit": "6e4ee16daaff28d842044bff979cf3dcd26263ae",
      "fileid": "https://r2.ropensci.org/4d42970e34130425c16154e06c74da5f5ce7b85e99ec5e4d69078d7fe3cfc815",
      "status": "success",
      "check": "OK",
      "buildurl": "https://github.com/r-universe/ropensci/actions/runs/28503658655"
    },
    {
      "r": "4.6.1",
      "os": "mac",
      "version": "1.6.0.9000",
      "date": "2026-07-01T08:46:58.000Z",
      "commit": "6e4ee16daaff28d842044bff979cf3dcd26263ae",
      "fileid": "https://r2.ropensci.org/bc0a7ff3526fb46de79ec58501b954eb0aed8bbb9d2ceef954ad3982b297958c",
      "status": "success",
      "check": "OK",
      "buildurl": "https://github.com/r-universe/ropensci/actions/runs/28503658655"
    },
    {
      "r": "4.6.0",
      "os": "wasm",
      "version": "1.6.0.9000",
      "date": "2026-07-01T08:29:06.000Z",
      "commit": "6e4ee16daaff28d842044bff979cf3dcd26263ae",
      "fileid": "https://r2.ropensci.org/84963fc03c55be9d920aef701a864286102b023eac55dbd5eb0e96432d521dd7",
      "status": "success",
      "buildurl": "https://github.com/r-universe/ropensci/actions/runs/28503658655"
    },
    {
      "r": "4.7.0",
      "os": "win",
      "version": "1.6.0.9000",
      "date": "2026-07-01T08:27:49.000Z",
      "commit": "6e4ee16daaff28d842044bff979cf3dcd26263ae",
      "fileid": "https://r2.ropensci.org/42e18180871db459b95acd864aabd8c34578d16128b33f157b196e667b0588bd",
      "status": "success",
      "check": "OK",
      "buildurl": "https://github.com/r-universe/ropensci/actions/runs/28503658655"
    },
    {
      "r": "4.5.3",
      "os": "win",
      "version": "1.6.0.9000",
      "date": "2026-07-01T08:27:40.000Z",
      "commit": "6e4ee16daaff28d842044bff979cf3dcd26263ae",
      "fileid": "https://r2.ropensci.org/20efc3d948bdd196b14b9ea45127daa54e389e4b4e1e972511f702340266b1c6",
      "status": "success",
      "check": "OK",
      "buildurl": "https://github.com/r-universe/ropensci/actions/runs/28503658655"
    },
    {
      "r": "4.6.1",
      "os": "win",
      "version": "1.6.0.9000",
      "date": "2026-07-01T08:27:38.000Z",
      "commit": "6e4ee16daaff28d842044bff979cf3dcd26263ae",
      "fileid": "https://r2.ropensci.org/c0dbc24dbce995e9bcbcc0bf94cd348e416dab0657d976aebb0f32c3a79f8208",
      "status": "success",
      "check": "OK",
      "buildurl": "https://github.com/r-universe/ropensci/actions/runs/28503658655"
    }
  ]
}