Skip to main content

description: dlt source for personio.com keywords: [personio API, personio.com]

dlt-source-personio

PyPI version

DLT source for personio.

Currently loads the following data:

Table Contains Spec version
persons Items of the Person model with all properties V2
persons_custom_attributes All defined custom attributes. The table is pivoted, so each custom attribute becomes a column in the table. V2
persons_profile_pictures The profile picture for each employee (that has defined one) V1
employments Items of the Employment model with all properties V2

Why are you not using the dlt-hub/verified-sources personio source / Differences

The official verified source has a few drawbacks:

  • it is based on the Personio API V1, not the current V2
  • on usage of the verified source, a copy of the current state of the dlt-hub/verified-sources repository is copied into your project; Once you make changes to it, it effectively becomes a fork, making it hard to update after the fact.
  • The verified source does not use any data validation other than ensuring dates are correct; This means that data shape is not guaranteed, resulting in potential schema changes. This data source uses an (unofficial) OpenAPI spec, which is transformed into Pydantic 2 models.

Currently this data source does not support delta updates (the verified source does) and it also does not contain some of the data sources (absences, etc.). Contributions are welcome!

Usage

Create a .dlt/secrets.toml with your API key and email:

personio_client_id = "papi-..."
personio_client_secret = "papi-..."

and then run the default source with optional list references:

from dlt_source_personio import source as personio_source

pipeline = dlt.pipeline(
   pipeline_name="personio_pipeline",
   destination="duckdb",
   dev_mode=True,
)
personio_data = personio_source()
pipeline.run(personio_data)

Development

This project is using devenv.

Commands:

Command What does it do?
generate-model generates the personio Pydantic model from the current spec file, applies patches, etc.
update-spec Pulls in the latest master#HEAD of personio/api-docs
validate-spec Validates the local (unofficial) Personio V2 spec
refresh-model Both commands above plus adds it to git and commits the changes.
format Formats & lints all code
sample-pipeline-run Runs the sample pipeline. By default dev_mode=True which fetches resources with a limit of 1 (page)
sample-pipeline-show Starts the streamlit-based dlt hub

Run the sample

PERSONIO_CLIENT_ID=[...] \
   PERSONIO_CLIENT_SECRET=[...] \
      sample-pipeline-run

alternatively you can also create a .dlt/secrets.toml (excluded from git) with the following content:

personio_client_id = "papi-..."
personio_client_secret = "papi-..."

Metadata

Release files for dlt-source-personio 0.0.4

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for dlt-source-personio 0.0.4
File Size Uploaded
dlt_source_personio-0.0.4.tar.gz 24.0 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for dlt-source-personio 0.0.4
File Interpreter ABI Platform
dlt_source_personio-0.0.4-py3-none-any.whl Python 3 none any Details

Total release size: 52.2 kB

Release files / dlt_source_personio-0.0.4.tar.gz

Download URL dlt_source_personio-0.0.4.tar.gz
Size 24.0 kB
Tags Source
SHA-256 checksum
How to use checksums
a3a2b8c370b324b520eb6df48f4b17d262fa58ce4c3a2c05b4b4686b119491c1
BLAKE2b-256 checksum
How to use checksums
a95c8afac090c7f79c5b8891290b173d393d812b0577b1ed46d14fb50d6a055c
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.7

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Dec 1, 2025.

Transparency log

Release files / dlt_source_personio-0.0.4-py3-none-any.whl

Download URL dlt_source_personio-0.0.4-py3-none-any.whl
Size 28.2 kB
Tags Python 3
SHA-256 checksum
How to use checksums
8463e2802af7f9e1071a97c58cefab32be996754a515e90d562f3298e5c5882c
BLAKE2b-256 checksum
How to use checksums
1cb654dc82ec1c78f133ac5cd70613a3b69a8229989aac75a1e4c14c71d17261
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.7

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Dec 1, 2025.

Transparency log

Release history Release notifications | RSS feed

This release

0.0.4 This release

2 release files

0.0.3

2 release files

0.0.2

2 release files

0.0.1

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page