Passer au contenu principal
Chaque point de terminaison DPDP est disponible comme méthode typée sur client.dpdp. Le sous-client est attaché automatiquement — construisez un RailScoreClient et atteignez client.dpdp.*. Le client async (AsyncRAILClient) expose les mêmes méthodes sur await client.dpdp.*.
from rail_score_sdk import RailScoreClient

client = RailScoreClient(api_key="YOUR_RAIL_API_KEY")
scan = client.dpdp.scan("Applicant PAN ABCDE1234F", pii_action="mask")

Scanner le contenu pour les PII indiens

Détectez Aadhaar (validé Verhoeff), PAN, UPI, mobile et plus, plus les signaux d’enfants (S.9) et la dérive d’objectif (S.4). Choisissez detect, mask ou block.
result = client.dpdp.scan(
    "Applicant PAN is ABCDE1234F and mobile 9876543210.",
    pii_action="detect",
    purpose="loan_advisory",
)
print(result.compliant, [p.type for p in result.pii_found])

Gater une décision

evaluate retourne un verdict déterministe — allow, block ou require_action — pour l’action que vous êtes sur le point de prendre.
decision = client.dpdp.evaluate(
    action="make_decision",
    context={"user_id": "u_42", "purpose": "loan_advisory"},
    session_id="sess_1a2b3c",  # optionnel, lie la décision à une session
)

if decision.verdict == "require_action":
    print("Outstanding obligations:", decision.required_actions)

Enregistrer les événements

emit écrit 1–50 événements de conformité et démarre automatiquement les minuteurs statutaires qu’ils déclenchent (par exemple, dsr.received démarre l’horloge de réponse).
client.dpdp.emit(
    [
        {"type": "notice.shown", "data": {"user_id": "u_42"}},
        {"type": "consent.granted", "data": {"user_id": "u_42", "purpose": "loan_advisory"}},
    ],
    session_id="sess_1a2b3c",
)

Actions requises pour une étape de flux de travail

required = client.dpdp.require(
    session_id="sess_1a2b3c",
    workflow_step="data_processing",
)
for action in required.required_actions:
    print(action)

Sessions

Une session enfile le parcours d’un seul sujet des données. create_session nécessite un purpose — le SDK lève ValueError immédiatement s’il est vide (il ne gaspillera pas un aller-retour).
session = client.dpdp.create_session(
    purpose="loan_advisory",
    entity_type="data_fiduciary",
)
fetched = client.dpdp.get_session(session.session_id)
print(fetched.state.consent_status)

Minuteurs

Listez les minuteurs de délai réglementaires, filtrés par statut, type ou proximité.
timers = client.dpdp.list_timers(status="active", approaching_days=30)
print(timers.summary.total_active)
for t in timers.timers:
    print(t.type, t.days_remaining)

Evidence (Pro+)

Assemblez un paquet de qualité audit à partir de la piste enregistrée de la session.
packet = client.dpdp.evidence(
    evidence_type="dsr_response",
    params={"session_id": "sess_1a2b3c", "request_id": "r_9"},
)

Audit système

dpdp_audit exécute une évaluation de conformité en étapes d’une description de système, avec contexte spécifique à l’entité et notation d’exposition aux pénalités. Il enveloppe la vérification de conformité hébergée, donc il est hébergé uniquement.
from rail_score_sdk import DPDPHostedOnlyError

try:
    audit = client.dpdp.dpdp_audit(
        content="Our fintech processes Aadhaar for KYC; consent via checkbox.",
        entity_type="data_fiduciary",
        sector="finance",
    )
    print(audit.overall_label, audit.total_penalty_exposure_crore)
except DPDPHostedOnlyError:
    # Levé lorsqu'il pointe vers un agent self-hosted qui ne sert pas l'audit.
    print("dpdp_audit runs against the hosted API only.")
dpdp_audit et la vérification de conformité sous-jacente sont disponibles sur l’API hébergée uniquement. Contre un agent RAIL self-hosted le SDK lève DPDPHostedOnlyError au lieu d’un 404/501 brut.

Gestion des erreurs

Les méthodes DPDP lèvent les erreurs SDK standard (AuthenticationError, RateLimitError, InsufficientTierError pour evidence inférieur à Pro) plus des erreurs spécifiques à DPDP.
from rail_score_sdk import DPDPHostedOnlyError
from rail_score_sdk import AuthenticationError, RateLimitError

try:
    client.dpdp.scan("...", pii_action="block")
except AuthenticationError:
    print("Check your API key")
except RateLimitError:
    print("Slow down requests")

Connexe

Référence API DPDP

Chaque point de terminaison, coûts en crédits et l’enveloppe de réponse.

Configuration

Inspectez la politique, les capacités de plan et les dimensions de votre application.