{"id":51076,"date":"2025-07-30T08:33:28","date_gmt":"2025-07-30T08:33:28","guid":{"rendered":"https:\/\/www.devopsschool.com\/blog\/?p=51076"},"modified":"2025-07-30T09:31:10","modified_gmt":"2025-07-30T09:31:10","slug":"artifactory-artifactory-7-x-rest-api-quickstart","status":"publish","type":"post","link":"https:\/\/www.devopsschool.com\/blog\/artifactory-artifactory-7-x-rest-api-quickstart\/","title":{"rendered":"Artifactory: Artifactory 7.x REST API Quickstart"},"content":{"rendered":"\n<p>Here\u2019s a <strong>step-by-step practical guide to using the JFrog Artifactory 7.x REST API<\/strong> to manage your instance (create repos, users, etc.) using your <strong>server<\/strong> and <strong>credentials<\/strong>.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h1 class=\"wp-block-heading\">\ud83d\udfe2 <strong>Artifactory 7.x REST API Quickstart<\/strong><\/h1>\n\n\n\n<h3 class=\"wp-block-heading\"><strong>Server:<\/strong> <code>http:\/\/65.2.152.172:8082\/<\/code><\/h3>\n\n\n\n<h3 class=\"wp-block-heading\"><strong>Username:<\/strong> <code>admin<\/code><\/h3>\n\n\n\n<h3 class=\"wp-block-heading\"><strong>Password:<\/strong> <code>password<\/code><\/h3>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\">1\ufe0f\u20e3 <strong>Authentication<\/strong><\/h2>\n\n\n\n<p>For scripting\/API, you can use:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Basic Auth<\/strong> (<code>-u admin:password<\/code>)<\/li>\n\n\n\n<li><strong>(Best practice)<\/strong> Create an <strong>API key<\/strong> or <strong>access token<\/strong> from the UI and use that instead of a raw password.<\/li>\n<\/ul>\n\n\n\n<p>But for quick testing, Basic Auth is fine.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\">2\ufe0f\u20e3 <strong>API Endpoint URLs (7.x)<\/strong><\/h2>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Main APIs are under:<br><code>http:\/\/65.2.152.172:8082\/artifactory\/api\/<\/code><\/li>\n<\/ul>\n\n\n\n<p>For access and user\/group management:<br><code>http:\/\/65.2.152.172:8082\/access\/api\/<\/code><\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\">3\ufe0f\u20e3 <strong>Check Connectivity<\/strong><\/h2>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-1\" data-shcb-language-name=\"JavaScript\" data-shcb-language-slug=\"javascript\"><span><code class=\"hljs language-javascript\">curl -u admin:password http:<span class=\"hljs-comment\">\/\/65.2.152.172:8082\/artifactory\/api\/system\/ping<\/span>\n<\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-1\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">JavaScript<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">javascript<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<p>Should return <code>OK<\/code><\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\">4\ufe0f\u20e3 <strong>Create a Local Repository<\/strong><\/h2>\n\n\n\n<p><strong>Example: Create a new local Maven repo named <code>my-maven-local<\/code><\/strong><\/p>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-2\" data-shcb-language-name=\"PHP\" data-shcb-language-slug=\"php\"><span><code class=\"hljs language-php\">curl -u admin:password -X PUT \\\n  -H <span class=\"hljs-string\">\"Content-Type: application\/json\"<\/span> \\\n  -d <span class=\"hljs-string\">'{\n        \"rclass\": \"local\",\n        \"packageType\": \"maven\",\n        \"description\": \"My Maven local repo\"\n      }'<\/span> \\\n  http:<span class=\"hljs-comment\">\/\/65.2.152.172:8082\/artifactory\/api\/repositories\/my-maven-local<\/span>\n<\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-2\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">PHP<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">php<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<ul class=\"wp-block-list\">\n<li>For npm, change <code>\"packageType\": \"npm\"<\/code>, etc.<\/li>\n<\/ul>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\">5\ufe0f\u20e3 <strong>Create a Remote Repository<\/strong><\/h2>\n\n\n\n<p><strong>Example: Create a remote Maven Central proxy<\/strong><\/p>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-3\" data-shcb-language-name=\"PHP\" data-shcb-language-slug=\"php\"><span><code class=\"hljs language-php\">curl -u admin:password -X PUT \\\n  -H <span class=\"hljs-string\">\"Content-Type: application\/json\"<\/span> \\\n  -d <span class=\"hljs-string\">'{\n        \"rclass\": \"remote\",\n        \"packageType\": \"maven\",\n        \"url\": \"https:\/\/repo.maven.apache.org\/maven2\",\n        \"description\": \"Remote Maven Central\"\n      }'<\/span> \\\n  http:<span class=\"hljs-comment\">\/\/65.2.152.172:8082\/artifactory\/api\/repositories\/maven-central-remote<\/span>\n<\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-3\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">PHP<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">php<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\">6\ufe0f\u20e3 <strong>Create a User<\/strong><\/h2>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-4\" data-shcb-language-name=\"PHP\" data-shcb-language-slug=\"php\"><span><code class=\"hljs language-php\">curl -u admin:password \\\n  -H <span class=\"hljs-string\">\"Content-Type: application\/json\"<\/span> \\\n  -X PUT <span class=\"hljs-string\">\"http:\/\/65.2.152.172:8082\/artifactory\/api\/security\/users\/jane\"<\/span> \\\n  -d <span class=\"hljs-string\">'{\n    \"email\": \"jane@example.com\",\n    \"password\": \"JanePassword123!\",\n    \"admin\": false,\n    \"groups\": &#91;]\n  }'<\/span>\n\ncurl -u admin:password -X PUT \\\n  -H <span class=\"hljs-string\">\"Content-Type: application\/json\"<\/span> \\\n  -d <span class=\"hljs-string\">'{\n    \"email\" : \"jane1@example.com\",\n    \"password\" : \"JanePassword123!\",\n    \"admin\" : false,\n    \"profileUpdatable\": true\n  }'<\/span> \\\n  <span class=\"hljs-string\">\"http:\/\/65.2.152.172:8082\/artifactory\/api\/security\/users\/jane1\"<\/span>\n<\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-4\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">PHP<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">php<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<ul class=\"wp-block-list\">\n<li>Set <code>\"admin\": true<\/code> if you want to make the user admin.<\/li>\n<\/ul>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\">7\ufe0f\u20e3 <strong>List Repositories<\/strong><\/h2>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-5\" data-shcb-language-name=\"JavaScript\" data-shcb-language-slug=\"javascript\"><span><code class=\"hljs language-javascript\">curl -u admin:password http:<span class=\"hljs-comment\">\/\/65.2.152.172:8082\/artifactory\/api\/repositories<\/span>\n<\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-5\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">JavaScript<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">javascript<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<h2 class=\"wp-block-heading\">List of Users<\/h2>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-6\" data-shcb-language-name=\"JavaScript\" data-shcb-language-slug=\"javascript\"><span><code class=\"hljs language-javascript\">curl -u admin:password <span class=\"hljs-string\">\"http:\/\/65.2.152.172:8082\/artifactory\/api\/security\/users\"<\/span>\n<\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-6\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">JavaScript<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">javascript<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<p><\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\">8\ufe0f\u20e3 <strong>Get Repository Configuration<\/strong><\/h2>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-7\" data-shcb-language-name=\"JavaScript\" data-shcb-language-slug=\"javascript\"><span><code class=\"hljs language-javascript\">curl -u admin:password http:<span class=\"hljs-comment\">\/\/65.2.152.172:8082\/artifactory\/api\/repositories\/my-maven-local<\/span>\n<\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-7\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">JavaScript<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">javascript<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\">9\ufe0f\u20e3 <strong>Delete a Repository<\/strong><\/h2>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-8\" data-shcb-language-name=\"JavaScript\" data-shcb-language-slug=\"javascript\"><span><code class=\"hljs language-javascript\">curl -u admin:password -X DELETE http:<span class=\"hljs-comment\">\/\/65.2.152.172:8082\/artifactory\/api\/repositories\/my-maven-local<\/span>\n<\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-8\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">JavaScript<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">javascript<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\">\ud83d\udd1f <strong>Create a Group<\/strong><\/h2>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-9\" data-shcb-language-name=\"PHP\" data-shcb-language-slug=\"php\"><span><code class=\"hljs language-php\">curl -u admin:password \\\n  -H <span class=\"hljs-string\">\"Content-Type: application\/json\"<\/span> \\\n  -X PUT \\\n  -d <span class=\"hljs-string\">'{\n        \"description\": \"Developers\"\n      }'<\/span> \\\n  <span class=\"hljs-string\">\"http:\/\/65.2.152.172:8082\/artifactory\/api\/security\/groups\/developers1\"<\/span>\n\n<\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-9\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">PHP<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">php<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\">1\ufe0f\u20e31\ufe0f\u20e3 <strong>Assign a User to a Group<\/strong><\/h2>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-10\" data-shcb-language-name=\"PHP\" data-shcb-language-slug=\"php\"><span><code class=\"hljs language-php\">curl -u admin:password -X PATCH \\\n  -H <span class=\"hljs-string\">\"Content-Type: application\/json\"<\/span> \\\n  -d <span class=\"hljs-string\">'{\n        \"groups\": &#91;\"developers\"]\n      }'<\/span> \\\n  http:<span class=\"hljs-comment\">\/\/65.2.152.172:8082\/access\/api\/v1\/users\/raj<\/span>\n<\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-10\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">PHP<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">php<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\">\ud83d\udcda <strong>Official Docs &amp; Swagger<\/strong><\/h2>\n\n\n\n<ul class=\"wp-block-list\">\n<li><a href=\"https:\/\/jfrog.com\/help\/r\/jfrog-rest-apis\/artifactory-rest-apis\" target=\"_blank\" rel=\"noopener\">Artifactory REST API Reference (7.x)<\/a><\/li>\n\n\n\n<li><a href=\"https:\/\/jfrog.com\/help\/r\/jfrog-rest-apis\/access-rest-apis\" target=\"_blank\" rel=\"noopener\">Access (Security) API Reference<\/a><\/li>\n\n\n\n<li>[Interactive Swagger UI (if enabled):**<br><code>http:\/\/65.2.152.172:8082\/artifactory\/swagger-ui.html<\/code><br><code>http:\/\/65.2.152.172:8082\/access\/swagger-ui.html<\/code><\/li>\n<\/ul>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\">\ud83d\udea6 <strong>Tips<\/strong><\/h2>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Use <strong><code>-v<\/code><\/strong> with curl to debug requests.<\/li>\n\n\n\n<li>Use <strong>JFrog CLI<\/strong> for easier scripting and more advanced automation.<\/li>\n\n\n\n<li>For production, use <strong>access tokens<\/strong> or <strong>API keys<\/strong> (never passwords).<\/li>\n<\/ul>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\">\ud83d\udfe2 <strong>Summary Table<\/strong><\/h2>\n\n\n\n<figure class=\"wp-block-table\"><table class=\"has-fixed-layout\"><thead><tr><th>Action<\/th><th>API Endpoint Example<\/th><\/tr><\/thead><tbody><tr><td>Ping<\/td><td><code>\/artifactory\/api\/system\/ping<\/code><\/td><\/tr><tr><td>Create Local Repo<\/td><td><code>\/artifactory\/api\/repositories\/&lt;repo&gt;<\/code><\/td><\/tr><tr><td>Create Remote Repo<\/td><td><code>\/artifactory\/api\/repositories\/&lt;repo&gt;<\/code><\/td><\/tr><tr><td>Create User<\/td><td><code>\/access\/api\/v1\/users\/&lt;username&gt;<\/code><\/td><\/tr><tr><td>Create Group<\/td><td><code>\/access\/api\/v1\/groups\/&lt;group&gt;<\/code><\/td><\/tr><tr><td>Assign User\/Group<\/td><td><code>\/access\/api\/v1\/users\/&lt;username&gt;<\/code> (PATCH groups)<\/td><\/tr><tr><td>List Repos<\/td><td><code>\/artifactory\/api\/repositories<\/code><\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<p><\/p>\n\n\n\n<p>Here are several practical examples for uploading artifacts to Artifactory using different methods, including REST API (with curl) and JFrog CLI. These examples will help you quickly upload files from a local system to an Artifactory repository.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">1. <strong>Upload with REST API and curl<\/strong><\/h2>\n\n\n\n<p><strong>Syntax:<\/strong><\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">text<code>curl -u &lt;USERNAME&gt;:&lt;PASSWORD&gt; -X PUT -T &lt;LOCAL_FILE_PATH&gt; \"http:\/\/&lt;ARTIFACTORY_URL&gt;\/artifactory\/&lt;REPO&gt;\/&lt;PATH&gt;\/&lt;FILENAME&gt;\"\n<\/code><\/pre>\n\n\n\n<p><strong>Example:<\/strong><\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">text<code>curl -u admin:password -X PUT -T .\/myapp-1.0.0.jar \"http:\/\/65.2.152.172:8082\/artifactory\/my-local-repo\/myapp\/1.0.0\/myapp-1.0.0.jar\"\n<\/code><\/pre>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Replace <code>my-local-repo<\/code>, <code>myapp\/1.0.0\/<\/code>, and the filenames as needed.<\/li>\n\n\n\n<li>You can also include artifact properties in the URL: text<code>curl -u admin:password -X PUT -T .\/app.zip \"http:\/\/65.2.152.172:8082\/artifactory\/my-local-repo\/app.zip;release=true;version=1.0\"<\/code><\/li>\n\n\n\n<li>On success, you\u2019ll see a HTTP <code>201<\/code> response<a href=\"https:\/\/bobcares.com\/blog\/upload-to-artifactory-command-line\/\" target=\"_blank\" rel=\"noreferrer noopener\">1<\/a><a href=\"https:\/\/jfrog.com\/help\/r\/jfrog-rest-apis\/introduction-to-the-artifactory-rest-apis\" target=\"_blank\" rel=\"noreferrer noopener\">2<\/a>.<\/li>\n<\/ul>\n\n\n\n<h2 class=\"wp-block-heading\">2. <strong>Upload Using JFrog CLI<\/strong><\/h2>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Install the CLI:<\/strong><br><a href=\"https:\/\/jfrog.com\/getcli\/\" target=\"_blank\" rel=\"noreferrer noopener\">Download here<\/a> and configure it for your server (one-time setup): text<code>jfrog config add my-server --url=http:\/\/65.2.152.172:8082 --user=admin --password=password<\/code><\/li>\n\n\n\n<li><strong>Upload a Single File:<\/strong> text<code>jfrog rt upload \"myapp-1.0.0.jar\" \"my-local-repo\/myapp\/1.0.0\/\"<\/code><\/li>\n\n\n\n<li><strong>Upload All Files in a Folder:<\/strong> text<code>jfrog rt upload \"dist\/*\" \"my-local-repo\/myapp\/1.0.0\/\"<\/code><\/li>\n\n\n\n<li><strong>Recursively upload a folder:<\/strong> text<code>jfrog rt upload \"my-folder\/*\" my-local-repo\/<\/code><\/li>\n\n\n\n<li>For advanced usage and options, see the official [JFrog CLI documentation]<a href=\"https:\/\/jfrog.com\/help\/r\/artifactory-how-to-upload-a-folder-with-its-content-to-artifactory\/via-jfrog-cli\" target=\"_blank\" rel=\"noreferrer noopener\">3<\/a><a href=\"https:\/\/docs.jfrog-applications.jfrog.io\/jfrog-applications\/jfrog-cli\" target=\"_blank\" rel=\"noreferrer noopener\">4<\/a>.<\/li>\n<\/ul>\n\n\n\n<h2 class=\"wp-block-heading\">3. <strong>Uploading via Artifactory UI (for small\/manual uploads)<\/strong><\/h2>\n\n\n\n<ol class=\"wp-block-list\">\n<li>In the Artifactory web UI, navigate to your target repository and folder.<\/li>\n\n\n\n<li>Click the &#8220;Deploy&#8221; or &#8220;Upload&#8221; button.<\/li>\n\n\n\n<li>Select your file(s) and confirm upload.<\/li>\n<\/ol>\n\n\n\n<h2 class=\"wp-block-heading\">4. <strong>Upload via CI Tool or Script (Generic)<\/strong><\/h2>\n\n\n\n<p>If automating in CI, your steps would typically use either the REST API (curl, see above), or invoke the JFrog CLI as part of the pipeline.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\"><strong>References for Official Docs and Further Reading:<\/strong><\/h2>\n\n\n\n<ul class=\"wp-block-list\">\n<li><a href=\"https:\/\/jfrog.com\/help\/r\/jfrog-rest-apis\/deploy-artifact\" target=\"_blank\" rel=\"noreferrer noopener\">Deploy Artifact with REST API<\/a><\/li>\n\n\n\n<li><a href=\"https:\/\/jfrog.com\/help\/r\/artifactory-how-to-upload-a-folder-with-its-content-to-artifactory\" target=\"_blank\" rel=\"noreferrer noopener\">How to Upload a Folder (with its content) to Artifactory<\/a><\/li>\n\n\n\n<li><a href=\"https:\/\/jfrog.com\/help\/r\/jfrog-cli-documentation\/upload\" target=\"_blank\" rel=\"noreferrer noopener\">JFrog CLI upload documentation<\/a><a href=\"https:\/\/bobcares.com\/blog\/upload-to-artifactory-command-line\/\" target=\"_blank\" rel=\"noreferrer noopener\">1<\/a><a href=\"https:\/\/jfrog.com\/help\/r\/artifactory-how-to-upload-a-folder-with-its-content-to-artifactory\/via-jfrog-cli\" target=\"_blank\" rel=\"noreferrer noopener\">3<\/a><a href=\"https:\/\/docs.jfrog-applications.jfrog.io\/jfrog-applications\/jfrog-cli\" target=\"_blank\" rel=\"noreferrer noopener\">4<\/a><a href=\"https:\/\/jfrog.com\/help\/r\/jfrog-rest-apis\/introduction-to-the-artifactory-rest-apis\" target=\"_blank\" rel=\"noreferrer noopener\">2<\/a><\/li>\n<\/ul>\n\n\n\n<p><strong>Tip:<\/strong><br>For scripted automation, always prefer access tokens or API keys over basic passwords for improved security.<\/p>\n\n\n\n<p>If you need specific examples for Maven, npm, or other build types, just specify the ecosystem!<\/p>\n\n\n\n<p>Five different ways to upload JAR files to JFrog Artifactory &#8211; YouTube<\/p>\n\n\n\n<p>To interact with your JFrog Artifactory server (<code>http:\/\/65.2.152.172:8082\/<\/code>) using the API (for example, to create repositories, users, etc.), you will mainly use REST API calls authenticated as your admin user. Here\u2019s a clear, practical guide:<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">1. <strong>Authentication<\/strong><\/h2>\n\n\n\n<p>For most API calls, you can use <strong>Basic Authentication<\/strong> with your username and password (admin\/password), or (recommended) generate and use an <strong>access token<\/strong>.<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Basic Auth (not recommended for production scripts):<\/strong><br>Use the <code>-u<\/code> option with <code>curl<\/code>: text<code>curl -u admin:password http:\/\/65.2.152.172:8082\/artifactory\/api\/system\/ping<\/code> A response of <code>OK<\/code> means the API is accessible.<\/li>\n\n\n\n<li><strong>Access Token (recommended):<\/strong><ol><li>Log in as admin to the UI.<\/li><li>Go to <strong>Identity and Access \u2192 Access Tokens<\/strong> and generate a new admin token.<\/li><li>Use that token in an API call: text<code>curl -H \"Authorization: Bearer &lt;YOUR_TOKEN&gt;\" http:\/\/65.2.152.172:8082\/artifactory\/api\/system\/ping<\/code><\/li><\/ol><em>Tokens are safer and preferred in scripts or automation<a href=\"https:\/\/jfrog.com\/help\/r\/jfrog-rest-apis\/introduction-to-the-artifactory-rest-apis\" target=\"_blank\" rel=\"noreferrer noopener\">1<\/a><a href=\"https:\/\/jfrog.com\/help\/r\/jfrog-platform-administration-documentation\/api-key\" target=\"_blank\" rel=\"noreferrer noopener\">2<\/a><a href=\"https:\/\/docs.brinqa.com\/docs\/connectors\/jfrog-artifactory\/\" target=\"_blank\" rel=\"noreferrer noopener\">3<\/a>.<\/em><\/li>\n<\/ul>\n\n\n\n<h2 class=\"wp-block-heading\">2. <strong>API Base URL<\/strong><\/h2>\n\n\n\n<p>The API base for your instance is:<br><code>http:\/\/65.2.152.172:8082\/<\/code><\/p>\n\n\n\n<p>Most API endpoints relevant to Artifactory are under <code>\/artifactory\/api\/<\/code><br>User and group APIs are often under <code>\/access\/api\/<\/code> (for Access-based security).<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">3. <strong>Create a Local Repository<\/strong><\/h2>\n\n\n\n<p><strong>REST endpoint:<\/strong><br><code>PUT \/artifactory\/api\/repositories\/{repoKey}<\/code><\/p>\n\n\n\n<p><strong>Example (create a Maven local repository):<\/strong><\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">text<code>curl -u admin:password \\\n  -H \"Content-Type: application\/json\" \\\n  -X PUT \"http:\/\/65.2.152.172:8082\/artifactory\/api\/repositories\/my-maven-local\" \\\n  -d '{\n    \"rclass\": \"local\",\n    \"packageType\": \"maven\",\n    \"description\": \"My Maven repo\"\n  }'\n<\/code><\/pre>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Change <code>my-maven-local<\/code> and <code>\"packageType\"<\/code> as needed (npm, docker, etc.).<\/li>\n\n\n\n<li>For more options (remote\/virtual\/federated), see the official docs<a href=\"https:\/\/jfrog.com\/help\/r\/jfrog-rest-apis\/create-repository\" target=\"_blank\" rel=\"noreferrer noopener\">4<\/a><a href=\"https:\/\/jfrog.com\/help\/r\/jfrog-rest-apis\/artifactory-rest-apis\" target=\"_blank\" rel=\"noreferrer noopener\">5<\/a>.<\/li>\n<\/ul>\n\n\n\n<p><strong>Response:<\/strong><br><code>201 Created<\/code> on success.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">4. <strong>Create a User<\/strong><\/h2>\n\n\n\n<p><strong>REST endpoint:<\/strong><br><code>POST \/access\/api\/v2\/users<\/code><\/p>\n\n\n\n<p><strong>Example:<\/strong><\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">text<code>curl -u admin:password \\\n  -H \"Content-Type: application\/json\" \\\n  -X POST \"http:\/\/65.2.152.172:8082\/access\/api\/v2\/users\" \\\n  -d '{\n    \"username\": \"jane\",\n    \"password\": \"JanePassword123!\",\n    \"email\": \"jane@example.com\",\n    \"admin\": false,\n    \"groups\": [],\n    \"profile_updatable\": true\n  }'\n<\/code><\/pre>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Adjust parameters as needed for new user (admin privileges, group membership, etc.).<br><em>Requires admin privileges to use this endpoint<a href=\"https:\/\/jfrog.com\/help\/r\/jfrog-rest-apis\/create-user\" target=\"_blank\" rel=\"noreferrer noopener\">6<\/a>.<\/em><\/li>\n<\/ul>\n\n\n\n<h2 class=\"wp-block-heading\">5. <strong>Other Useful API Examples<\/strong><\/h2>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Get All Repositories:<\/strong> text<code>curl -u admin:password http:\/\/65.2.152.172:8082\/artifactory\/api\/repositories<\/code><\/li>\n\n\n\n<li><strong>Delete a Repository:<\/strong> text<code>curl -u admin:password -X DELETE http:\/\/65.2.152.172:8082\/artifactory\/api\/repositories\/my-maven-local<\/code><\/li>\n\n\n\n<li><strong>List Users:<\/strong> text<code>curl -u admin:password http:\/\/65.2.152.172:8082\/access\/api\/v2\/users<\/code><\/li>\n<\/ul>\n\n\n\n<h2 class=\"wp-block-heading\">6. <strong>Best Practices<\/strong><\/h2>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Avoid using admin:password in scripts\u2014use access tokens where possible.<\/li>\n\n\n\n<li>Use appropriate Content-Type headers, usually <code>application\/json<\/code>.<\/li>\n\n\n\n<li>For all API calls, check the <strong>official Artifactory REST API docs<\/strong> for parameters, endpoint changes, and security notes.<\/li>\n\n\n\n<li>For complex JSON payloads (like advanced repo settings), you can export config examples from the UI and modify as needed.<\/li>\n<\/ul>\n\n\n\n<h2 class=\"wp-block-heading\">7. <strong>References for Official API Docs<\/strong><\/h2>\n\n\n\n<ul class=\"wp-block-list\">\n<li><a href=\"https:\/\/jfrog.com\/help\/r\/jfrog-rest-apis\/create-repository\" target=\"_blank\" rel=\"noreferrer noopener\">Artifactory Create Repository<\/a><a href=\"https:\/\/jfrog.com\/help\/r\/jfrog-rest-apis\/create-repository\" target=\"_blank\" rel=\"noreferrer noopener\">4<\/a><\/li>\n\n\n\n<li><a href=\"https:\/\/jfrog.com\/help\/r\/jfrog-rest-apis\/create-user\" target=\"_blank\" rel=\"noreferrer noopener\">Artifactory Create User<\/a><a href=\"https:\/\/jfrog.com\/help\/r\/jfrog-rest-apis\/create-user\" target=\"_blank\" rel=\"noreferrer noopener\">6<\/a><\/li>\n\n\n\n<li><a href=\"https:\/\/jfrog.com\/help\/r\/jfrog-rest-apis\/artifactory-rest-apis\" target=\"_blank\" rel=\"noreferrer noopener\">Main API Documentation Hub<\/a><a href=\"https:\/\/jfrog.com\/help\/r\/jfrog-rest-apis\/artifactory-rest-apis\" target=\"_blank\" rel=\"noreferrer noopener\">5<\/a><a href=\"https:\/\/jfrog.com\/help\/r\/jfrog-rest-apis\/introduction-to-the-artifactory-rest-apis\" target=\"_blank\" rel=\"noreferrer noopener\">1<\/a><\/li>\n<\/ul>\n\n\n\n<p><strong>In Summary:<\/strong><br>You can script any Artifactory action\u2014repo creation, user management, build upload, and more\u2014using basic <code>curl<\/code> REST requests, authenticated with user\/password or an access token. Always follow best practices for authentication and automation.<a rel=\"noreferrer noopener\" target=\"_blank\" href=\"https:\/\/jfrog.com\/help\/r\/jfrog-rest-apis\/create-repository\">4<\/a><a rel=\"noreferrer noopener\" target=\"_blank\" href=\"https:\/\/jfrog.com\/help\/r\/jfrog-rest-apis\/introduction-to-the-artifactory-rest-apis\">1<\/a><a rel=\"noreferrer noopener\" target=\"_blank\" href=\"https:\/\/jfrog.com\/help\/r\/jfrog-rest-apis\/create-user\">6<\/a><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Here\u2019s a step-by-step practical guide to using the JFrog Artifactory 7.x REST API to manage your instance (create repos, users, etc.) using your server and credentials. \ud83d\udfe2 Artifactory 7.x REST&#8230; <\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"","sticky":false,"template":"","format":"standard","meta":{"_joinchat":[],"footnotes":""},"categories":[2],"tags":[],"class_list":["post-51076","post","type-post","status-publish","format-standard","hentry","category-uncategorised"],"_links":{"self":[{"href":"https:\/\/www.devopsschool.com\/blog\/wp-json\/wp\/v2\/posts\/51076","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.devopsschool.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.devopsschool.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.devopsschool.com\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.devopsschool.com\/blog\/wp-json\/wp\/v2\/comments?post=51076"}],"version-history":[{"count":4,"href":"https:\/\/www.devopsschool.com\/blog\/wp-json\/wp\/v2\/posts\/51076\/revisions"}],"predecessor-version":[{"id":51080,"href":"https:\/\/www.devopsschool.com\/blog\/wp-json\/wp\/v2\/posts\/51076\/revisions\/51080"}],"wp:attachment":[{"href":"https:\/\/www.devopsschool.com\/blog\/wp-json\/wp\/v2\/media?parent=51076"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.devopsschool.com\/blog\/wp-json\/wp\/v2\/categories?post=51076"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.devopsschool.com\/blog\/wp-json\/wp\/v2\/tags?post=51076"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}