{"id":13469224,"url":"https://github.com/karrioapi/karrio","last_synced_at":"2026-04-19T11:03:36.291Z","repository":{"id":37067543,"uuid":"128151112","full_name":"karrioapi/karrio","owner":"karrioapi","description":"Programmable Shipping APIs (self-hosted)","archived":false,"fork":false,"pushed_at":"2026-03-21T04:59:35.000Z","size":173472,"stargazers_count":703,"open_issues_count":61,"forks_count":159,"subscribers_count":17,"default_branch":"main","last_synced_at":"2026-03-21T07:36:38.330Z","etag":null,"topics":["canada-post","carrier-apis","carriers","dhl","fedex","headless-shipping","multiple-carriers","purolator","python","shipping-api","shipping-software","ups","usps"],"latest_commit_sha":null,"homepage":"https://karrio.io","language":"Python","has_issues":false,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"other","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/karrioapi.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":null,"funding":".github/FUNDING.yml","license":"LICENSE","code_of_conduct":"CODE_OF_CONDUCT.md","threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":"SECURITY.md","support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":"AGENTS.md","dco":null,"cla":null},"funding":{"github":["karrioapi"],"polar":"karrioapi","custom":["https://docs.karrio.io/insiders"]}},"created_at":"2018-04-05T02:44:00.000Z","updated_at":"2026-03-21T00:09:51.000Z","dependencies_parsed_at":"2023-12-26T03:23:45.937Z","dependency_job_id":"a9239961-0bfb-49de-901c-f59a25c4daca","html_url":"https://github.com/karrioapi/karrio","commit_stats":{"total_commits":2549,"total_committers":14,"mean_commits":"182.07142857142858","dds":0.5052961945861122,"last_synced_commit":"856e848727536763cf780606bfc887ab5104b864"},"previous_names":["purplship/purplship"],"tags_count":239,"template":false,"template_full_name":null,"purl":"pkg:github/karrioapi/karrio","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/karrioapi%2Fkarrio","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/karrioapi%2Fkarrio/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/karrioapi%2Fkarrio/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/karrioapi%2Fkarrio/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/karrioapi","download_url":"https://codeload.github.com/karrioapi/karrio/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/karrioapi%2Fkarrio/sbom","scorecard":{"id":115072,"data":{"date":"2025-08-11","repo":{"name":"github.com/karrioapi/karrio","commit":"ed72e3f058ac1dba4eccc369429fa51df1acdd48"},"scorecard":{"version":"v5.2.1-40-gf6ed084d","commit":"f6ed084d17c9236477efd66e5b258b9d4cc7b389"},"score":5.5,"checks":[{"name":"Code-Review","score":0,"reason":"Found 0/8 approved changesets -- score normalized to 0","details":null,"documentation":{"short":"Determines if the project requires human code review before pull requests (aka merge requests) are merged.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#code-review"}},{"name":"Maintained","score":10,"reason":"30 commit(s) and 0 issue activity found in the last 90 days -- score normalized to 10","details":null,"documentation":{"short":"Determines if the project is \"actively maintained\".","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#maintained"}},{"name":"Security-Policy","score":10,"reason":"security policy file detected","details":["Info: security policy file detected: SECURITY.md:1","Info: Found linked content: SECURITY.md:1","Info: Found disclosure, vulnerability, and/or timelines in security policy: SECURITY.md:1","Info: Found text in security policy: SECURITY.md:1"],"documentation":{"short":"Determines if the project has published a security policy.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#security-policy"}},{"name":"Dangerous-Workflow","score":10,"reason":"no dangerous workflow patterns detected","details":null,"documentation":{"short":"Determines if the project's GitHub Action workflows avoid dangerous patterns.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#dangerous-workflow"}},{"name":"CII-Best-Practices","score":0,"reason":"no effort to earn an OpenSSF best practices badge detected","details":null,"documentation":{"short":"Determines if the project has an OpenSSF (formerly CII) Best Practices Badge.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#cii-best-practices"}},{"name":"Token-Permissions","score":0,"reason":"detected GitHub workflow tokens with excessive permissions","details":["Info: jobLevel 'contents' permission set to 'read': .github/workflows/build.yml:78","Info: jobLevel 'contents' permission set to 'read': .github/workflows/build.yml:116","Info: jobLevel 'contents' permission set to 'read': .github/workflows/build.yml:36","Warn: jobLevel 'actions' permission set to 'write': .github/workflows/insiders-build.yml:31","Info: jobLevel 'contents' permission set to 'read': .github/workflows/insiders-build.yml:28","Info: jobLevel 'contents' permission set to 'read': .github/workflows/insiders-build.yml:82","Info: jobLevel 'contents' permission set to 'read': .github/workflows/insiders-build.yml:109","Info: jobLevel 'contents' permission set to 'read': .github/workflows/platform-build.yml:28","Info: jobLevel 'contents' permission set to 'read': .github/workflows/platform-build.yml:55","Warn: no topLevel permission defined: .github/workflows/build.yml:1","Warn: no topLevel permission defined: .github/workflows/insiders-build.yml:1","Warn: no topLevel permission defined: .github/workflows/platform-build.yml:1","Info: topLevel 'contents' permission set to 'read': .github/workflows/platform-tests.yml:9","Warn: no topLevel permission defined: .github/workflows/tests.yml:1"],"documentation":{"short":"Determines if the project's workflows follow the principle of least privilege.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#token-permissions"}},{"name":"License","score":9,"reason":"license file detected","details":["Info: project has a license file: LICENSE:0","Warn: project license file does not contain an FSF or OSI license."],"documentation":{"short":"Determines if the project has defined a license.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#license"}},{"name":"Signed-Releases","score":-1,"reason":"no releases found","details":null,"documentation":{"short":"Determines if the project cryptographically signs release artifacts.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#signed-releases"}},{"name":"Branch-Protection","score":-1,"reason":"internal error: error during branchesHandler.setup: internal error: githubv4.Query: Resource not accessible by integration","details":null,"documentation":{"short":"Determines if the default and release branches are protected with GitHub's branch protection settings.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#branch-protection"}},{"name":"Binary-Artifacts","score":10,"reason":"no binaries found in the repo","details":null,"documentation":{"short":"Determines if the project has generated executable (binary) artifacts in the source repository.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#binary-artifacts"}},{"name":"Packaging","score":10,"reason":"packaging workflow detected","details":["Info: Project packages its releases by way of GitHub Actions.: .github/workflows/build.yml:73"],"documentation":{"short":"Determines if the project is published as a package that others can easily download, install, easily update, and uninstall.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#packaging"}},{"name":"SAST","score":10,"reason":"SAST tool is run on all commits","details":["Info: all commits (27) are checked with a SAST tool"],"documentation":{"short":"Determines if the project uses static code analysis.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#sast"}},{"name":"Pinned-Dependencies","score":0,"reason":"dependency not pinned by hash detected -- score normalized to 0","details":["Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/build.yml:14: update your workflow using https://app.stepsecurity.io/secureworkflow/karrioapi/karrio/build.yml/main?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/build.yml:16: update your workflow using https://app.stepsecurity.io/secureworkflow/karrioapi/karrio/build.yml/main?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/build.yml:40: update your workflow using https://app.stepsecurity.io/secureworkflow/karrioapi/karrio/build.yml/main?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/build.yml:47: update your workflow using https://app.stepsecurity.io/secureworkflow/karrioapi/karrio/build.yml/main?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/build.yml:67: update your workflow using https://app.stepsecurity.io/secureworkflow/karrioapi/karrio/build.yml/main?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/build.yml:83: update your workflow using https://app.stepsecurity.io/secureworkflow/karrioapi/karrio/build.yml/main?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/build.yml:121: update your workflow using https://app.stepsecurity.io/secureworkflow/karrioapi/karrio/build.yml/main?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/insiders-build.yml:14: update your workflow using https://app.stepsecurity.io/secureworkflow/karrioapi/karrio/insiders-build.yml/main?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/insiders-build.yml:16: update your workflow using https://app.stepsecurity.io/secureworkflow/karrioapi/karrio/insiders-build.yml/main?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/insiders-build.yml:34: update your workflow using https://app.stepsecurity.io/secureworkflow/karrioapi/karrio/insiders-build.yml/main?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/insiders-build.yml:40: update your workflow using https://app.stepsecurity.io/secureworkflow/karrioapi/karrio/insiders-build.yml/main?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/insiders-build.yml:87: update your workflow using https://app.stepsecurity.io/secureworkflow/karrioapi/karrio/insiders-build.yml/main?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/insiders-build.yml:114: update your workflow using https://app.stepsecurity.io/secureworkflow/karrioapi/karrio/insiders-build.yml/main?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/platform-build.yml:64: update your workflow using https://app.stepsecurity.io/secureworkflow/karrioapi/karrio/platform-build.yml/main?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/platform-build.yml:72: update your workflow using https://app.stepsecurity.io/secureworkflow/karrioapi/karrio/platform-build.yml/main?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/platform-build.yml:86: update your workflow using https://app.stepsecurity.io/secureworkflow/karrioapi/karrio/platform-build.yml/main?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/platform-build.yml:92: update your workflow using https://app.stepsecurity.io/secureworkflow/karrioapi/karrio/platform-build.yml/main?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/platform-build.yml:14: update your workflow using https://app.stepsecurity.io/secureworkflow/karrioapi/karrio/platform-build.yml/main?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/platform-build.yml:16: update your workflow using https://app.stepsecurity.io/secureworkflow/karrioapi/karrio/platform-build.yml/main?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/platform-build.yml:33: update your workflow using https://app.stepsecurity.io/secureworkflow/karrioapi/karrio/platform-build.yml/main?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/platform-tests.yml:36: update your workflow using https://app.stepsecurity.io/secureworkflow/karrioapi/karrio/platform-tests.yml/main?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/platform-tests.yml:40: update your workflow using https://app.stepsecurity.io/secureworkflow/karrioapi/karrio/platform-tests.yml/main?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/platform-tests.yml:59: update your workflow using https://app.stepsecurity.io/secureworkflow/karrioapi/karrio/platform-tests.yml/main?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/platform-tests.yml:63: update your workflow using https://app.stepsecurity.io/secureworkflow/karrioapi/karrio/platform-tests.yml/main?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/platform-tests.yml:19: update your workflow using https://app.stepsecurity.io/secureworkflow/karrioapi/karrio/platform-tests.yml/main?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/tests.yml:16: update your workflow using https://app.stepsecurity.io/secureworkflow/karrioapi/karrio/tests.yml/main?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/tests.yml:37: update your workflow using https://app.stepsecurity.io/secureworkflow/karrioapi/karrio/tests.yml/main?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/tests.yml:57: update your workflow using https://app.stepsecurity.io/secureworkflow/karrioapi/karrio/tests.yml/main?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/tests.yml:64: update your workflow using https://app.stepsecurity.io/secureworkflow/karrioapi/karrio/tests.yml/main?enable=pin","Warn: containerImage not pinned by hash: docker/api/Dockerfile:2","Warn: containerImage not pinned by hash: docker/api/Dockerfile:20","Warn: containerImage not pinned by hash: docker/dashboard/Dockerfile:2","Warn: containerImage not pinned by hash: docker/dashboard/Dockerfile:12","Warn: containerImage not pinned by hash: docker/dev.Dockerfile:2: pin your Docker image by updating python:3.12.10-slim-bullseye to python:3.12.10-slim-bullseye@sha256:57ab68549579e5e7bdf485fd33792577b5f4c14336fdc9a9a5a9fb6af0af1776","Warn: containerImage not pinned by hash: docker/dev.tool.Dockerfile:1: pin your Docker image by updating node:16.17.0-slim to node:16.17.0-slim@sha256:bd728768518439b05d355f58518a01b31a15f58381592e3ffa78e7939889f4f1","Warn: containerImage not pinned by hash: docker/insiders/Dockerfile:2","Warn: containerImage not pinned by hash: docker/insiders/Dockerfile:17","Warn: containerImage not pinned by hash: docker/nginx/Dockerfile:1: pin your Docker image by updating nginx to nginx@sha256:33e0bbc7ca9ecf108140af6288c7c9d1ecc77548cbfd3952fd8466a75edefe57","Warn: pipCommand not pinned by hash: docker/api/Dockerfile:14-17","Warn: pipCommand not pinned by hash: docker/api/Dockerfile:14-17","Warn: pipCommand not pinned by hash: docker/api/Dockerfile:14-17","Warn: npmCommand not pinned by hash: docker/dashboard/Dockerfile:7-9","Warn: pipCommand not pinned by hash: docker/insiders/Dockerfile:10-13","Warn: pipCommand not pinned by hash: docker/insiders/Dockerfile:10-13","Warn: pipCommand not pinned by hash: docker/insiders/Dockerfile:10-13","Warn: pipCommand not pinned by hash: bin/build-and-release-packages:100","Warn: pipCommand not pinned by hash: bin/build-and-release-packages:162","Warn: pipCommand not pinned by hash: bin/build-and-release-packages:226","Warn: pipCommand not pinned by hash: bin/build-and-release-packages:230","Warn: pipCommand not pinned by hash: bin/build-and-release-packages:234","Warn: downloadThenRun not pinned by hash: bin/deploy:29","Warn: pipCommand not pinned by hash: bin/deploy:95","Warn: pipCommand not pinned by hash: bin/publish-insiders-wheels:62","Warn: pipCommand not pinned by hash: bin/publish-wheels:7","Warn: npmCommand not pinned by hash: bin/server:49","Warn: downloadThenRun not pinned by hash: bin/setup-dev-env:187","Warn: downloadThenRun not pinned by hash: bin/setup-dev-env:318","Warn: npmCommand not pinned by hash: bin/setup-dev-env:391","Warn: pipCommand not pinned by hash: bin/setup-sdk-env:8","Warn: npmCommand not pinned by hash: bin/start-dev:61","Warn: pipCommand not pinned by hash: bin/update-version-freeze:12","Warn: pipCommand not pinned by hash: .github/workflows/build.yml:53","Warn: pipCommand not pinned by hash: .github/workflows/build.yml:54","Warn: pipCommand not pinned by hash: .github/workflows/insiders-build.yml:46","Warn: pipCommand not pinned by hash: .github/workflows/insiders-build.yml:47","Warn: downloadThenRun not pinned by hash: .github/workflows/platform-build.yml:100","Warn: npmCommand not pinned by hash: .github/workflows/platform-build.yml:110","Warn: npmCommand not pinned by hash: .github/workflows/platform-tests.yml:45","Warn: npmCommand not pinned by hash: .github/workflows/platform-tests.yml:48","Warn: npmCommand not pinned by hash: .github/workflows/platform-tests.yml:68","Warn: npmCommand not pinned by hash: .github/workflows/tests.yml:69","Info:   0 out of  22 GitHub-owned GitHubAction dependencies pinned","Info:   0 out of   7 third-party GitHubAction dependencies pinned","Info:   0 out of  20 pipCommand dependencies pinned","Info:   3 out of  12 npmCommand dependencies pinned","Info:   0 out of   4 downloadThenRun dependencies pinned","Info:   0 out of   9 containerImage dependencies pinned"],"documentation":{"short":"Determines if the project has declared and pinned the dependencies of its build process.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#pinned-dependencies"}},{"name":"Fuzzing","score":0,"reason":"project is not fuzzed","details":["Warn: no fuzzer integrations found"],"documentation":{"short":"Determines if the project uses fuzzing.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#fuzzing"}},{"name":"Vulnerabilities","score":0,"reason":"19 existing vulnerabilities detected","details":["Warn: Project is vulnerable to: GHSA-ggv3-vmgw-xv2q","Warn: Project is vulnerable to: GHSA-67mh-4wv8-2f99","Warn: Project is vulnerable to: GHSA-7m27-7ghc-44w9","Warn: Project is vulnerable to: GHSA-qpjv-v59x-3qc4","Warn: Project is vulnerable to: GHSA-3h52-269p-cp9r","Warn: Project is vulnerable to: GHSA-f82v-jwr5-mffw","Warn: Project is vulnerable to: GHSA-67rr-84xm-4c7r","Warn: Project is vulnerable to: GHSA-rp65-9cf3-cjxr","Warn: Project is vulnerable to: GHSA-x7hr-w5r2-h6wg","Warn: Project is vulnerable to: GHSA-52f5-9888-hmc6","Warn: Project is vulnerable to: GHSA-4v9v-hfq4-rm2v","Warn: Project is vulnerable to: GHSA-9jgg-88mc-972h","Warn: Project is vulnerable to: PYSEC-2024-48 / GHSA-fj7x-q9j7-g6q6","Warn: Project is vulnerable to: PYSEC-2013-22 / GHSA-27x4-j476-jp5f","Warn: Project is vulnerable to: PYSEC-2025-49 / GHSA-5rjg-fvgr-3xxf","Warn: Project is vulnerable to: GHSA-cx63-2mw6-8hw5","Warn: Project is vulnerable to: PYSEC-2022-43012 / GHSA-r9hx-vwmv-q579","Warn: Project is vulnerable to: PYSEC-2022-43017 / GHSA-qwmp-2cf2-g9g6","Warn: Project is vulnerable to: GHSA-4vvm-4w3v-6mr8"],"documentation":{"short":"Determines if the project has open, known unfixed vulnerabilities.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#vulnerabilities"}}]},"last_synced_at":"2025-08-16T00:58:50.928Z","repository_id":37067543,"created_at":"2025-08-16T00:58:50.928Z","updated_at":"2025-08-16T00:58:50.928Z"},"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":31290539,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-01T13:12:26.723Z","status":"ssl_error","status_checked_at":"2026-04-01T13:12:25.102Z","response_time":53,"last_error":"SSL_read: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["canada-post","carrier-apis","carriers","dhl","fedex","headless-shipping","multiple-carriers","purolator","python","shipping-api","shipping-software","ups","usps"],"created_at":"2024-07-31T15:01:29.661Z","updated_at":"2026-04-01T17:41:08.745Z","avatar_url":"https://github.com/karrioapi.png","language":"Python","readme":"# Karrio\n\n-   Website: \u003chttps://karrio.io\u003e\n-   Documentation: [https://karrio.io/docs](https://karrio.io/docs)\n-   Forums: [Github Discussions](https://github.com/orgs/karrioapi/discussions)\n-   Discord: [Karrio Discord server](https://discord.gg/gS88uE7sEx)\n-   Issues: [Issue Tracker](https://github.com/orgs/karrioapi/discussions/categories/q-a)\n-   Blog: [Blog](https://karrio.io/blog)\n\n\u003cimg referrerpolicy=\"no-referrer-when-downgrade\" src=\"https://static.scarf.sh/a.png?x-pxid=e72dd847-dc7f-4f81-bce4-88eeb20d807f\" /\u003e\n\u003ca href=\"https://karrio.io\" target=\"_blank\"\u003e\n  \u003cpicture\u003e\n    \u003csource media=\"(prefers-color-scheme: dark)\" srcset=\"https://raw.githubusercontent.com/karrioapi/karrio/main/apps/api/karrio/server/static/extra/branding/logo-inverted.svg\" height=\"100px\" /\u003e\n    \u003cimg alt=\"Karrio\" src=\"https://raw.githubusercontent.com/karrioapi/karrio/main/apps/api/karrio/server/static/extra/branding/logo.svg\" height=\"100px\" /\u003e\n  \u003c/picture\u003e\n\u003c/a\u003e\n\nThe open-source shipping platform for modern logistics\n\n[![Karrio OSS](https://img.shields.io/badge/License-LGPL_3.0-blue.svg)](./LICENSE)\n[![Karrio Enterprise](https://img.shields.io/badge/Enterprise-Karrio_EE-orange.svg)](./LICENSE_EE)\n[![karrio-tests](https://github.com/karrioapi/karrio/actions/workflows/tests.yml/badge.svg)](https://github.com/karrioapi/karrio/actions/workflows/tests.yml)\n[![karrio-build](https://github.com/karrioapi/karrio/actions/workflows/build.yml/badge.svg)](https://github.com/karrioapi/karrio/actions/workflows/build.yml)\n[![Codacy Badge](https://app.codacy.com/project/badge/Grade/cc2ac4fcb6004bca84e42a90d8acfe41)](https://www.codacy.com/gh/karrioapi/karrio/dashboard?utm_source=github.com\u0026utm_medium=referral\u0026utm_content=karrioapi/karrio\u0026utm_campaign=Badge_Grade)\n[![Discord](https://img.shields.io/static/v1?label=Discord\u0026message=chat\u0026color=738adb\u0026logo=discord)](https://discord.gg/gS88uE7sEx)\n[![Docker pulls](https://img.shields.io/docker/pulls/karrio/server)](https://hub.docker.com/r/karrio/server)\n\nKarrio allows you to integrate with your shipping carriers to query, visualize and manage shipping API\ntransactions. Integrate, connect and process shipping transactions with a modern tech stack:\n\n-   **Headless Shipping**: Access a network of shipping carriers API-first.\n-   **Multi-carrier API**: Build shipping functionalities with webhooks, APIs and metadata.\n-   **Multi-carrier SDK**: Use the karrio SDK to integrate with custom carrier APIs.\n-   **Fulfil Orders**: Connect carrier accounts, get live rates and purchase shipping labels.\n-   **Tracking**: Create package trackers and get real-time tracking status.\n-   **Dashboard**: Use the karrio dashboard to test and visualize shipping transactions.\n-   **Cloud**: Optimized for deployments using Docker.\n\n**Karrio is not designed as an out-of-the-box shipping software to be used for purposes that differ to the feature scope above.**\n\nIn regard to development philosophy, Karrio has a relaxed, open \u0026 positive approach. At the end of the day this is free tool developed and maintained by people donating their own free time.\n\n**Get up and running in 1 minute with:**\n\n```sh\ngit clone --depth 1 https://github.com/karrioapi/karrio\ncd karrio\ngit submodule update --init community\ncd docker\ndocker compose up\n```\n\n-   Karrio server accessible at \u003chttp://localhost:5002\u003e\n-   Karrio dashboard accessible at \u003chttp://localhost:3002\u003e\n\nDefault Login: `admin@example.com` | `demo`\n\n\u003cp align=\"center\"\u003e\n  \u003cimg alt=\"Shipments Overview\" src=\"screenshots/shipments-overview.png\" width=\"800\" style=\"max-width: 100%;\" /\u003e\n\u003c/p\u003e\n\u003cp align=\"center\"\u003e\n  \u003cimg alt=\"Developer Tools\" src=\"screenshots/developer-tools.png\" width=\"800\" style=\"max-width: 100%;\" /\u003e\n\u003c/p\u003e\n\n## Get started\n\n### Quick start demo\n\n[A short video (less than 4 minutes)](https://youtu.be/dFHZosJPaLI) that goes over creating your first label and tracking your first package.\n\n### Open-source hobby deploy (Advanced)\n\nYou can deploy a hobby instance in one line on Linux with Docker (recommended 4GB memory):\n\n```bash\n/bin/bash -c \"$(curl -fsSL https://raw.githubusercontent.com/karrioapi/karrio/HEAD/bin/deploy-hobby)\"\n```\n\n## The problem: Shipping integration is still painful\n\n-   Lack of documentation.\n-   Multiple and inconsistent APIs.\n-   Difficult access to account and API credentials for development.\n-   Poor developer experience.\n\n## Philosophy\n\nKarrio makes it easy to integrate with shipping carriers and improve your fulfilment processes without losing control.\n\nWe believe that the logistics industry can greatly benefit from a unified, open and standardized shipping API that gives you direct access to a network of carriers, control over customers' personal data and **compliance**.\n\n## Benefits\n\nKarrio is the only **platform-focused** open-source developer tool that offers label generation, package tracking, carrier connections management and, document generation APIs that **you can host on your own infrastructure**.\n\nWe are an open-source alternative to expensive in-house carrier integration and multi-carrier Saas APIs. We're designed to be more **developer-friendly**, with the fullset of shipping functionalities without vendor-lockin.\n\n### Shipping for platforms\n\nWith Karrio, you can extend your platform with native shipping capabilities. Improve merchants and customers' experience on your Marketplace, eCommerce, ERP, WMS, OMS, 3PL and Logistics platform.\n\nWith Karrio, 3PLs and large-volume shippers regain control over their shipping tech stack and processes.\n\n### Shipping for retailers\n\nKarrio makes modern shipping accessible to brands, retailers as well as businesses in regulated industries.\n\nWhen onboarding new carriers, your IT team can meet their requirements in a week or less.\n\n## License\n\nThis repository contains both open-source and commercial components, distributed under a dual-license model.\n\n### Open Source (LGPL-3.0)\n\nThe following components are licensed under [LGPL-3.0](./LICENSE):\n\n| Component             | Description                          |\n| --------------------- | ------------------------------------ |\n| **Karrio Server**     | Core shipping API server and SDK     |\n| **Community Plugins** | Carrier integrations in `/community` |\n| **Modules**           | Core modules (`/modules/*`)          |\n\nYou are free to:\n\n- Use Karrio for any purpose (commercial or non-commercial)\n- Self-host and modify the open-source components\n- Build and distribute carrier plugins and integrations\n- Contribute improvements back to the community\n\n### Enterprise Edition (Karrio EE)\n\nThe `/ee` directory contains enterprise-only features under the [Karrio Enterprise License](./LICENSE_EE):\n\n| Feature                | Description                          |\n| ---------------------- | ------------------------------------ |\n| **Multi-tenancy**      | Platform-level tenant isolation      |\n| **Advanced workflows** | Shipping automation and rules engine |\n| **Audit logging**      | Compliance and security tracking     |\n| **SSO/SAML**           | Enterprise authentication            |\n| **Priority support**   | SLA-backed support and services      |\n\nEnterprise features require a valid [Karrio subscription](https://karrio.io/pricing).\n\n### Plugin Development\n\nCarrier plugins and integrations can be developed under permissive licenses (Apache-2.0 or LGPL-3.0). This allows you to:\n\n- Build proprietary carrier connectors\n- Monetize your plugins independently\n- Contribute plugins to the community repository\n\nSee our [Plugin Development Guide](https://www.karrio.io/docs/developing/plugin-development) for details.\n\n## MCP Server\n\nKarrio ships with a built-in [Model Context Protocol (MCP)](https://modelcontextprotocol.io) server, letting AI assistants like Claude, Cursor, and Windsurf query rates, purchase labels, track shipments, and manage carriers directly from your IDE or chat interface.\n\n### Quick install\n\n**Claude Desktop / Cursor / Windsurf** — add to your MCP config:\n\n```json\n{\n  \"mcpServers\": {\n    \"karrio\": {\n      \"command\": \"npx\",\n      \"args\": [\"karrio-mcp\"],\n      \"env\": {\n        \"KARRIO_API_KEY\": \"your_api_key\",\n        \"KARRIO_API_URL\": \"https://api.karrio.io\"\n      }\n    }\n  }\n}\n```\n\n**Self-hosted instance:**\n\n```json\n{\n  \"mcpServers\": {\n    \"karrio\": {\n      \"command\": \"npx\",\n      \"args\": [\"karrio-mcp\"],\n      \"env\": {\n        \"KARRIO_API_KEY\": \"your_api_key\",\n        \"KARRIO_API_URL\": \"http://localhost:5002\"\n      }\n    }\n  }\n}\n```\n\n### What you can do\n\nOnce connected, ask your AI assistant things like:\n\n- _\"Get me shipping rates from DHL and FedEx for a 2kg package to Germany\"_\n- _\"Purchase a UPS label for order #1234\"_\n- _\"Track shipment 1Z999AA10123456784\"_\n- _\"List my connected carrier accounts\"_\n\n→ **[Full MCP server docs and tool reference](https://www.karrio.io/docs/developing/mcp-server)**\n\n## Contributing\n\nWe \u003c3 contributions big and small. In priority order (although everything is appreciated) with the most helpful first:\n\n- Ask general question on [Github Discussions](https://github.com/orgs/karrioapi/discussions)\n- Submit a [feature request](https://github.com/orgs/karrioapi/discussions)\n- Review the [Repository Guidelines](https://www.karrio.io/docs/developing/oss-contribution) for project-specific conventions\n- Open a PR (see our instructions on [developing Karrio locally](https://www.karrio.io/docs/developing/local-development))\n\n### Contributors\n\n\u003ca href=\"https://github.com/karrioapi/karrio/graphs/contributors\"\u003e\n  \u003cimg src=\"https://contrib.rocks/image?repo=karrioapi/karrio\" /\u003e\n\u003c/a\u003e\n","funding_links":["https://github.com/sponsors/karrioapi","https://polar.sh/karrioapi","https://docs.karrio.io/insiders"],"categories":["Python","python"],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fkarrioapi%2Fkarrio","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fkarrioapi%2Fkarrio","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fkarrioapi%2Fkarrio/lists"}