CL Forge
Fast, typed Python tools for Chilean data and public APIs.
CL Forge combines Rust-backed validation utilities with a clean Python interface for the CMF and Mercado Público APIs. It includes synchronous and asynchronous clients, typed responses, configurable HTTP behavior, and flexible credential providers.
Install
CL Forge supports Python 3.12–3.14.
pip install cl-forge
Using uv:
uv add cl-forge
Quick start
Validate Chilean identifiers
from cl_forge import Ppu, calculate_verifier, validate_rut
validate_rut(12_345_678, "5") # True
calculate_verifier(12_345_678) # "5"
plate = Ppu("PHZF55")
plate.complete # "PHZF55-K"
plate.numeric # 69455
Query CMF indicators
from cl_forge import CmfClient
cmf = CmfClient("your-cmf-api-key")
latest_uf = cmf.uf.latest()
ipc_2025 = cmf.ipc.year(2025)
usd_for_day = cmf.usd.day(2025, 12, 1)
The CMF client provides resources for ipc, uf, utm, usd, eur (also euro), tip, and tmc, plus raw JSON and XML access.
[!NOTE] CMF requests require an API key. You can request one through the CMF API portal.
Query Mercado Público
from cl_forge import MarketClient
market = MarketClient("your-mercado-publico-ticket")
active_tenders = market.tender.active()
today_orders = market.order.today()
suppliers = market.supplier.search("70.017.820-K")
The Mercado Público client includes typed resources for tenders, purchase orders, suppliers, and buyers, plus raw v1 and v2 access.
[!NOTE] Mercado Público requests require an API ticket. See the Mercado Público API portal for access details.
Use async clients
The asynchronous clients mirror the synchronous resource interface:
from cl_forge import AsyncCmfClient
cmf = AsyncCmfClient("your-cmf-api-key")
latest_uf = await cmf.uf.latest()
Credentials and configuration
Pass a credential directly, load it from the environment, or read it from a dotenv file:
export CLFORGE_CMF_API_KEY="your-cmf-api-key"
export CLFORGE_MARKET_API_KEY="your-mercado-publico-ticket"
from cl_forge import ClientConfig, CmfClient, DotEnvCredentials, EnvCredentials
cmf = CmfClient(
credentials=EnvCredentials(),
config=ClientConfig(timeout=20, http2=True, retries=5),
)
cmf_from_dotenv = CmfClient(DotEnvCredentials(".env"))
API reference
| Area | Public API |
|---|---|
| CMF | CmfClient · AsyncCmfClient |
| Mercado Público | MarketClient · AsyncMarketClient |
| Credentials | EnvCredentials · DotEnvCredentials |
| HTTP configuration | ClientConfig |
| RUT/RUN | validate_rut · calculate_verifier |
| License plates | Ppu |
Explore the full documentation for installation details and the complete API reference.
Contributing
Contributions are welcome. Please read the contributing guide before opening a pull request.
License
CL Forge is available under the Apache License 2.0.
Metadata
Release files for cl-forge 2.0.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| cl_forge-2.0.0.tar.gz | 58.6 kB | Details |
Built distributions (wheels)
Total release size: 5.3 MB
Release files / cl_forge-2.0.0.tar.gz
| Download URL | cl_forge-2.0.0.tar.gz |
|---|---|
| Size | 58.6 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
c1b4bb0064449bdc9dc77be2d0609f237854323e40a1ddce094a070e411c480d
|
|
BLAKE2b-256 checksum How to use checksums |
6abee0ed855bbc390bf2e4a43b1c9b890db814d566b629cd49025ca0a6cdbc8d
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
uv/0.12.9 {"installer":{"name":"uv","version":"0.12.9","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}
|
Release files / cl_forge-2.0.0-cp314-cp314-win_arm64.whl
| Download URL | cl_forge-2.0.0-cp314-cp314-win_arm64.whl |
|---|---|
| Size | 202.5 kB |
| Tags | CPython 3.14 Windows ARM64 |
|
SHA-256 checksum How to use checksums |
2cdf3bb172e943862c079ed4217c6752f17c32e959cfb64e1f83877d3e620cc9
|
|
BLAKE2b-256 checksum How to use checksums |
a22d6c56a19aa239763963d52951f1daebde9ce85c168aa4cf0ca65a1974d30e
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
uv/0.12.9 {"installer":{"name":"uv","version":"0.12.9","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}
|
Release files / cl_forge-2.0.0-cp314-cp314-win_amd64.whl
| Download URL | cl_forge-2.0.0-cp314-cp314-win_amd64.whl |
|---|---|
| Size | 206.5 kB |
| Tags | CPython 3.14 Windows x86-64 |
|
SHA-256 checksum How to use checksums |
24870ce082b2fab4399d0a14e71aadbee2dc4afec4b5003978f8a3eb08259415
|
|
BLAKE2b-256 checksum How to use checksums |
4c257545c5d0fa34526e97e5520d6d0fa468e05a422af1876047a758aae1d307
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
uv/0.12.9 {"installer":{"name":"uv","version":"0.12.9","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}
|
Release files / cl_forge-2.0.0-cp314-cp314-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
| Download URL | cl_forge-2.0.0-cp314-cp314-manylinux_2_17_x86_64.manylinux2014_x86_64.whl |
|---|---|
| Size | 352.0 kB |
| Tags | CPython 3.14 Linux glibc 2.17+ x86-64 |
|
SHA-256 checksum How to use checksums |
6aa41367c6b407052073395ac0e4c5cac911ceb2e35258b13e6e31568090d0e8
|
|
BLAKE2b-256 checksum How to use checksums |
def59e92e36cdfb4643196f3618292bcc4a88cbb9811a29e3ebd93ca05c43d6d
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
uv/0.12.9 {"installer":{"name":"uv","version":"0.12.9","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}
|
Release files / cl_forge-2.0.0-cp314-cp314-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
| Download URL | cl_forge-2.0.0-cp314-cp314-manylinux_2_17_aarch64.manylinux2014_aarch64.whl |
|---|---|
| Size | 355.4 kB |
| Tags | CPython 3.14 Linux glibc 2.17+ ARM64 |
|
SHA-256 checksum How to use checksums |
7c14a05e5b6bfa51956e0f72656ee0c4c0c1270b3d8c0512b38a411a3dee2592
|
|
BLAKE2b-256 checksum How to use checksums |
d92943ec54bc884f0742418c4221e9f792ea6ef52934c6608f88bc9b65524cb7
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
uv/0.12.9 {"installer":{"name":"uv","version":"0.12.9","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}
|
Release files / cl_forge-2.0.0-cp314-cp314-macosx_11_0_arm64.whl
| Download URL | cl_forge-2.0.0-cp314-cp314-macosx_11_0_arm64.whl |
|---|---|
| Size | 310.0 kB |
| Tags | CPython 3.14 macOS 11.0+ ARM64 |
|
SHA-256 checksum How to use checksums |
fa78959b7acb5d4444b616a579bf97d7d64d5700d2fe570073b02ccee3518fc3
|
|
BLAKE2b-256 checksum How to use checksums |
1faf19f3b5c068b1abf1953e39df83ef8b9e93c26520c899b47e37b62066c652
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
uv/0.12.9 {"installer":{"name":"uv","version":"0.12.9","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}
|
Release files / cl_forge-2.0.0-cp314-cp314-macosx_10_12_x86_64.whl
| Download URL | cl_forge-2.0.0-cp314-cp314-macosx_10_12_x86_64.whl |
|---|---|
| Size | 311.6 kB |
| Tags | CPython 3.14 macOS 10.12+ x86-64 |
|
SHA-256 checksum How to use checksums |
41aa9d7b358b2eee7f487ccd868695499c69bf9c1a3a6daceca5cb580befdf88
|
|
BLAKE2b-256 checksum How to use checksums |
aae4ee762dcfd1cd93c7932272b687ea25b34398d3ada4e421ab2c1e4d3c0bd2
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
uv/0.12.9 {"installer":{"name":"uv","version":"0.12.9","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}
|
Release files / cl_forge-2.0.0-cp313-cp313-win_arm64.whl
| Download URL | cl_forge-2.0.0-cp313-cp313-win_arm64.whl |
|---|---|
| Size | 202.7 kB |
| Tags | CPython 3.13 Windows ARM64 |
|
SHA-256 checksum How to use checksums |
3c098eaa6b77717532606f127cf9d008d191b930cbf322c7b6227f4f3fb3704d
|
|
BLAKE2b-256 checksum How to use checksums |
e29db47294582605e887aaeaa1f988abb9cdb572616aed08f062237732455889
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
uv/0.12.9 {"installer":{"name":"uv","version":"0.12.9","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}
|
Release files / cl_forge-2.0.0-cp313-cp313-win_amd64.whl
| Download URL | cl_forge-2.0.0-cp313-cp313-win_amd64.whl |
|---|---|
| Size | 206.6 kB |
| Tags | CPython 3.13 Windows x86-64 |
|
SHA-256 checksum How to use checksums |
6814422b547d03b16244edd1e33e409d36c7cb77886e3b0c8a0da567c9a5e771
|
|
BLAKE2b-256 checksum How to use checksums |
dd5aedbcae28f6984858a56365cd883ba98e7a79178c9478224d440eddd8c6cb
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
uv/0.12.9 {"installer":{"name":"uv","version":"0.12.9","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}
|
Release files / cl_forge-2.0.0-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
| Download URL | cl_forge-2.0.0-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl |
|---|---|
| Size | 351.9 kB |
| Tags | CPython 3.13 Linux glibc 2.17+ x86-64 |
|
SHA-256 checksum How to use checksums |
b4a33a2cf303f6027393b878a0de39e607ab63a80aba0d831d7eb882dc7e535d
|
|
BLAKE2b-256 checksum How to use checksums |
de025ddcf5cd75d66092824e5de8046974a0a5f2a1ffdfd26bd955325c00e402
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
uv/0.12.9 {"installer":{"name":"uv","version":"0.12.9","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}
|
Release files / cl_forge-2.0.0-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
| Download URL | cl_forge-2.0.0-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl |
|---|---|
| Size | 355.9 kB |
| Tags | CPython 3.13 Linux glibc 2.17+ ARM64 |
|
SHA-256 checksum How to use checksums |
a1bed5f511b83a9d3d155f27e63a7b1eccb8a6403a9161ad58f135bcf8306e6c
|
|
BLAKE2b-256 checksum How to use checksums |
6c2f4c2e8d849360acfc0276245e60c2a9bd7619490de1682f05ebdce4fbfb1c
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
uv/0.12.9 {"installer":{"name":"uv","version":"0.12.9","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}
|
Release files / cl_forge-2.0.0-cp313-cp313-macosx_11_0_arm64.whl
| Download URL | cl_forge-2.0.0-cp313-cp313-macosx_11_0_arm64.whl |
|---|---|
| Size | 310.2 kB |
| Tags | CPython 3.13 macOS 11.0+ ARM64 |
|
SHA-256 checksum How to use checksums |
4b3c128b93be3aec2a1be304185fcfd4c5150299929e1807eee0deb44cfc1ee7
|
|
BLAKE2b-256 checksum How to use checksums |
b8d2ca6a59ef5379cffa7929655eb9a19f35b8764d51add32d80460429dbedeb
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
uv/0.12.9 {"installer":{"name":"uv","version":"0.12.9","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}
|
Release files / cl_forge-2.0.0-cp313-cp313-macosx_10_12_x86_64.whl
| Download URL | cl_forge-2.0.0-cp313-cp313-macosx_10_12_x86_64.whl |
|---|---|
| Size | 311.4 kB |
| Tags | CPython 3.13 macOS 10.12+ x86-64 |
|
SHA-256 checksum How to use checksums |
57ddbdb0db54f327097b49e06b4763e7bfe02b28c475a6d3c700a3a5c70516e1
|
|
BLAKE2b-256 checksum How to use checksums |
6647cca66c1f7324f5a410e2be4b257a8d36d8ebf6e8d05536ca796eabe9555a
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
uv/0.12.9 {"installer":{"name":"uv","version":"0.12.9","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}
|
Release files / cl_forge-2.0.0-cp312-cp312-win_arm64.whl
| Download URL | cl_forge-2.0.0-cp312-cp312-win_arm64.whl |
|---|---|
| Size | 202.6 kB |
| Tags | CPython 3.12 Windows ARM64 |
|
SHA-256 checksum How to use checksums |
e6c3d80ee1f2a9cbb57c294752ba9b023d6f47b52d39effef5a6d57598f5a322
|
|
BLAKE2b-256 checksum How to use checksums |
e407adc6dcd8ed0f96811ee0c2f63ebb817785520ff01ddba3a8c6133d1e407b
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
uv/0.12.9 {"installer":{"name":"uv","version":"0.12.9","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}
|
Release files / cl_forge-2.0.0-cp312-cp312-win_amd64.whl
| Download URL | cl_forge-2.0.0-cp312-cp312-win_amd64.whl |
|---|---|
| Size | 206.4 kB |
| Tags | CPython 3.12 Windows x86-64 |
|
SHA-256 checksum How to use checksums |
6345e8481ce6efa34fd60734cf22e32fc490227a3c3cf4d2c65b859b568a1c17
|
|
BLAKE2b-256 checksum How to use checksums |
02ad108884ab0fff394129d1b8cf4b98c6914dfca020ef659d7f688bedccc91a
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
uv/0.12.9 {"installer":{"name":"uv","version":"0.12.9","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}
|
Release files / cl_forge-2.0.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
| Download URL | cl_forge-2.0.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl |
|---|---|
| Size | 352.7 kB |
| Tags | CPython 3.12 Linux glibc 2.17+ x86-64 |
|
SHA-256 checksum How to use checksums |
cbdd0846a95917ba2537bf156a557d901cb4c44098fe6d06fbe82eeacbccc3c1
|
|
BLAKE2b-256 checksum How to use checksums |
6094f6d8c2399ffa21abffe3fc521df34e5fe42c9adc37ac6788ba6f91623112
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
uv/0.12.9 {"installer":{"name":"uv","version":"0.12.9","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}
|
Release files / cl_forge-2.0.0-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
| Download URL | cl_forge-2.0.0-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl |
|---|---|
| Size | 356.0 kB |
| Tags | CPython 3.12 Linux glibc 2.17+ ARM64 |
|
SHA-256 checksum How to use checksums |
0001bf4cb1be996811aec70a410488a9a5d2e780294d3402e5a1e6bbb55772bb
|
|
BLAKE2b-256 checksum How to use checksums |
b385b16ecc8281fb578672027252928dc31747eb33fc130a9d08f498a0ce1063
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
uv/0.12.9 {"installer":{"name":"uv","version":"0.12.9","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}
|
Release files / cl_forge-2.0.0-cp312-cp312-macosx_11_0_arm64.whl
| Download URL | cl_forge-2.0.0-cp312-cp312-macosx_11_0_arm64.whl |
|---|---|
| Size | 310.0 kB |
| Tags | CPython 3.12 macOS 11.0+ ARM64 |
|
SHA-256 checksum How to use checksums |
197332b290747bbb0617ca9af35f7f8574db8a1a9c39815f431295bab2d57bbb
|
|
BLAKE2b-256 checksum How to use checksums |
a9458671c0dd1d3921c14215ccdcfcb53d46aa30faeb2129c03be32f178a0dd8
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
uv/0.12.9 {"installer":{"name":"uv","version":"0.12.9","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}
|
Release files / cl_forge-2.0.0-cp312-cp312-macosx_10_12_x86_64.whl
| Download URL | cl_forge-2.0.0-cp312-cp312-macosx_10_12_x86_64.whl |
|---|---|
| Size | 311.3 kB |
| Tags | CPython 3.12 macOS 10.12+ x86-64 |
|
SHA-256 checksum How to use checksums |
8fc365c878300db8d19f88bc859352d83d3c6ce4f32b5a83264c3eba63c5dbee
|
|
BLAKE2b-256 checksum How to use checksums |
c5435a7836e31b2ab8d8fa5ad236a88ae7749e18af6a876f20cc2b80266d91e1
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
uv/0.12.9 {"installer":{"name":"uv","version":"0.12.9","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}
|