Skip to main content

CLI tool for managing Infomaniak services — DNS records, domains, and more.

Project description

infomaniak

PyPI version Tests Python versions License: MIT

CLI tool for managing your Infomaniak services from the terminal.

Supports DNS management, mail hosting, product listing, service status, and more.

Install

With pipx (recommended)

pipx install infomaniak

With pip

pip install infomaniak

From source

git clone https://github.com/peaktwilight/infomaniak-cli.git
cd infomaniak-cli
pip install .

Getting started

infomaniak setup

The setup wizard will:

  1. Open the Infomaniak token page in your browser
  2. Prompt you to paste your API token
  3. Validate it against the API
  4. Save it to ~/.config/infomaniak/config.ini

You'll need a token with these scopes: accounts, domain:read, dns:read, dns:write.

Alternative configuration

You can also set the token manually:

# Environment variable
export INFOMANIAK_API_TOKEN=your-token-here

# Or .env file
cp .env.example .env

Token lookup order: environment variable → config file → .env file.

Usage

DNS

# List all domains
infomaniak dns domains

# List DNS records for a domain
infomaniak dns records example.com

# Filter by record type
infomaniak dns records example.com --type CNAME

# Check if a record resolves correctly
infomaniak dns check example.com 12345

# Create a new record
infomaniak dns add example.com A blog 93.184.216.34
infomaniak dns add example.com CNAME app target.example.net --ttl 300

# Update a record
infomaniak dns update example.com 12345 --target 93.184.216.35

# Delete a record (with confirmation)
infomaniak dns delete example.com 12345

# Export records as JSON or CSV
infomaniak dns export example.com
infomaniak dns export example.com --format csv --output records.csv

# Import records from a file
infomaniak dns import example.com records.json
infomaniak dns import example.com records.csv --yes

# Compare live records against a local file
infomaniak dns diff example.com records.json

# Clone records from one domain to another (skips NS/SOA)
infomaniak dns clone source.com target.com

Products

# List all products on your account
infomaniak products

# Filter by service type
infomaniak products --type domain
infomaniak products --type email_hosting

Mail

# List all mail hosting services
infomaniak mail list

Status

# Service status overview — shows all products grouped by service
infomaniak status

Configuration

# Show current configuration (token source, account ID, config file path)
infomaniak config show

JSON output

Add --json to any read command for machine-readable output:

infomaniak dns domains --json
infomaniak dns records example.com --json
infomaniak dns diff example.com records.json --json
infomaniak products --json
infomaniak status --json

Example output

$ infomaniak dns domains

  Domains (2)

  ID       Domain           DNSSEC  DNS@IK
  ───────  ───────────────  ──────  ──────
  100001   example.com      yes     yes
  100002   example.org      yes     yes

$ infomaniak dns diff example.com backup.json

  DNS diff for example.com

  File: backup.json
  Live: 12 records, File: 10 records

  In file but not live (1):

    + A  old-server → 93.184.216.34  (TTL: 3600)

  Live but not in file (3):

    - A  new-app → 198.51.100.1  (TTL: 300)
    - CNAME  cdn → cdn.example.net  (TTL: 300)
    - TXT  _verify → site-verification=abc123  (TTL: 3600)

  9 records match.

$ infomaniak status

  Service Status — 5 products

  Service          Total  Active  Issues
  ───────────────  ─────  ──────  ──────
  domain           2      2       none
  email_hosting    2      2       none
  drive            1      1       none

  ✓ All services operational.

Why not OAuth?

Infomaniak's OAuth2 apps only support openid, profile, email, and phone scopes. The DNS management scopes (accounts, domain:read, dns:read, dns:write) are only available through API tokens — so there's no way to implement a browser-based login flow.

API reference

Built on the Infomaniak API:

Endpoint Description
GET /1/products List all products
GET /1/domain/account/{id} List domains
GET /2/zones/{zone}/records List DNS records
POST /2/zones/{zone}/records Create record
PUT /2/zones/{zone}/records/{id} Update record
DELETE /2/zones/{zone}/records/{id} Delete record
GET /2/zones/{zone}/records/{id}/check Check record health

License

MIT

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

infomaniak-0.5.0.tar.gz (17.1 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

infomaniak-0.5.0-py3-none-any.whl (18.3 kB view details)

Uploaded Python 3

File details

Details for the file infomaniak-0.5.0.tar.gz.

File metadata

  • Download URL: infomaniak-0.5.0.tar.gz
  • Upload date:
  • Size: 17.1 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for infomaniak-0.5.0.tar.gz
Algorithm Hash digest
SHA256 100a884fd7c57b0f508767321665d9de2d363d08bd4f30c038f9cfea4f9a86f5
MD5 0dfeb2ad406a5bc1e2e7a8b5cb527f3d
BLAKE2b-256 4ff9dce3397754b543c091e888210811ec24c12efba8bc5d48b500b321548196

See more details on using hashes here.

Provenance

The following attestation bundles were made for infomaniak-0.5.0.tar.gz:

Publisher: publish.yml on peaktwilight/infomaniak-cli

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file infomaniak-0.5.0-py3-none-any.whl.

File metadata

  • Download URL: infomaniak-0.5.0-py3-none-any.whl
  • Upload date:
  • Size: 18.3 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for infomaniak-0.5.0-py3-none-any.whl
Algorithm Hash digest
SHA256 27f7a8d14669ed8a1245235cb417e78002e5bf38baaa413b987cc9086da39e20
MD5 5bd2ffe7338a22cb5f3afe5f4797394d
BLAKE2b-256 f170d7d2aec01e7f00810fa1e757e16a67f66f04f20103c36e2fff3e5213ea7b

See more details on using hashes here.

Provenance

The following attestation bundles were made for infomaniak-0.5.0-py3-none-any.whl:

Publisher: publish.yml on peaktwilight/infomaniak-cli

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page