Skip to main content
Django INPI

Django INPI allows you to use the INPI API to to get information about companies.

Features

  • Siren/Siret fields (django_inpi.fields.SIRETField, django_inpi.fields.SIRENField) which ensure that submitted Siren/Siret are numbers, and that their lenght is respectively 14 & 9 chars.
  • Forms with those custom fields (django_inpi.forms.SIRETForm, django_inpi.forms.SIRENForm)
  • An API (django_inpi.api.INPIApi) which allows you to get a token and make your own requests to the INSE API. Available functions:
    • login(): send a login POST request to INPI API, stores the Bearer token in your api instance (automatically called in INPIApi.__init__(), call INPIApi(skip_init=True) to skip login (if so, you will not have a token, and will need to login yourself)).
    • get(siret=None, siren=None): get company details using it's siret/siren. Returns the whole json from INPI API.
    • get_generic_company_data(siret=None, siren=None): get company details using it's siret/siren. Returns a formatted json containing only a few values (see examples below).
  • 4 Mixins that you can use in your views:
    • django_inpi.views.SIRETFormGetAllJsonMixin: Uses SIRETForm, and calls INPIApi.get(siret).
    • django_inpi.views.SIRETFormGetGenericCompanyDataMixin Uses SIRETForm, and calls INPIApi.get_generic_company_data(siret).
    • django_inpi.views.SIRENFormGetAllJsonMixin: Uses SIRENForm, and calls INPIApi.get(siren).
    • django_inpi.views.SIRENFormGetGenericCompanyDataMixin Uses SIRENForm, and calls INPIApi.get_generic_company_data(siren).

Install

  1. Install the package:
    python3 -m pip install django-inpi
    
  2. Add those apps to your INSTALLED_APPS:
    "django_inpi",
    
  3. Add your user/pass in your env vars & project settings:
    DJANGO_INPI_USERNAME = "username"
    DJANGO_INPI_PASSWORD = "username"
    
    from os import getenv
    
    DJANGO_INPI_USERNAME = getenv("DJANGO_INPI_USERNAME", None)
    DJANGO_INPI_PASSWORD = getenv("DJANGO_INPI_PASSWORD", None)
    
  4. That's all folks!

Examples

View

# my_app/urls.py

urlpatterns = [
    # ...
    path(
        "get-company-infos-from-siret/",
        views.GetCompanyInfosView.as_view(),
        name="get_company_infos",
    ),
]
# my_app/views.py
from django_inpi.views import SIRENFormGetAllJsonMixin

# ...
class GetCompanyInfosView(
    SIRENFormGetAllJsonMixin,  # <-- our mixin here
    FormView,  # required, our mixin does not inherit from any *View
):
    def get_success_url(self):
        return reverse(
            "my_app:get_company_infos",
        )

API

This package comes with an API that you can use independently from the Field or Form. Here's how to use it:

from django_inpi.api import INPIApi

inpi_api = INPIApi()
# use `inpi_api = INPIApi(skip_init=True)` if you want to call the login function yourself

# Get full json
siret = "01234567891234"
company_infos = inpi_api.get(siret=siret)
# OR
siren = "123456789"
company_infos = inpi_api.get(siren=siren)
from django_inpi.api import INPIApi

inpi_api = INPIApi()

# Get partial json
siret = "01234567891234"
generic_company_infos = inpi_api.get_generic_company_data(siret=siret)
# OR
siren = "123456789"
generic_company_infos = inpi_api.get_generic_company_data(siren=siren)

generic_company_infos wil contains those data:

{
  "siren": 123456789,
  "data": {
    "name": "NAME",
    "legal_status": {
      "full_name": "Full legal status name",
      "acronym": "FLSN"
    },
    "address": {
      "street_number": "1",
      "street_type": "STREET TYPE",
      "street_name": "STREET NAME",
      "postal_code": "01234",
      "city": "CITY NAME",
      "full_address": "1 STREET TYPE STREET NAME 01234 CITY NAME",
      "country": "FR"
    },
    "manager": {
      "first_name": "MANAGER FIRST NAME",
      "last_name": "MANAGER LAST NAME"
    },
  }
}

Config

  • DJANGO_INPI_USERNAME (no default, required): You must set this value in your settings in order to be able to access the INPI API.
  • DJANGO_INPI_PASSWORD (no default, required): You must set this value in your settings in order to be able to access the INPI API.

You must have an account on the INPI website in order to set your credentials, see here for registering a new account or here to login.

  • DJANGO_INPI_LOGIN_URL (default https://registre-national-entreprises.inpi.fr/api/sso/login): Set this var in your settings if you want to use a custom (selfhosted?) api.

Metadata

Release files for django-inpi 0.4.3

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

Source distribution (sdist)

Source distribution for django-inpi 0.4.3
File Size Uploaded
django_inpi-0.4.3.tar.gz 29.0 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for django-inpi 0.4.3
File Interpreter ABI Platform
django_inpi-0.4.3-py3-none-any.whl Python 3 none any Details

Total release size: 59.2 kB

Release files / django_inpi-0.4.3.tar.gz

Download URL django_inpi-0.4.3.tar.gz
Size 29.0 kB
Tags Source
SHA-256 checksum
How to use checksums
b4388ce542f5ef746f3d5524e3a40f477a427a4953c1e44443cd2d2b4285d9a8
BLAKE2b-256 checksum
How to use checksums
b39c24f04c8f93c32e7c95382d7fb643ca9ca6444f724cf45b1c5fe13bb5070a
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.1.0 CPython/3.8.10

Release files / django_inpi-0.4.3-py3-none-any.whl

Download URL django_inpi-0.4.3-py3-none-any.whl
Size 30.2 kB
Tags Python 3
SHA-256 checksum
How to use checksums
57069181f3f9cc0b8c682341346f10bdfc9631c277590728dba5b2eaf0ca5818
BLAKE2b-256 checksum
How to use checksums
2940100cd8690de17a0047e56b41b13380fc48fc397739d28c21e3873bed07b7
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.1.0 CPython/3.8.10

Release history Release notifications | RSS feed

0.4.5

2 release files

0.4.4

2 release files

This release

0.4.3 This release

2 release files

0.4.2

2 release files

0.4.1

2 release files

0.3.0

2 release files

0.2.0

2 release files

0.1.0

2 release files

0.0.2

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