Pdpl
BearerAuthAuthorizationBearer <token>JWT access token. Obtain via POST /v1/auth/login.
Successful Response
application/json- response
telemetry*A user's consent to usage analytics and session recording (spec C
REQ-OBS-34): their newest analytics row in users.tenant_permissions
decides it (P0 master plan §3.1), and it is unset until they choose.
curl -X GET 'https://api.aisc.sa/v1/me/consents'{ "telemetry": { "effective_from": "2019-08-24T14:15:22Z", "notice_version": "v1", "state": "unset" }}BearerAuthAuthorizationBearer <token>JWT access token. Obtain via POST /v1/auth/login.
application/json- body
granted*Grantedlocale*Locale"ar""en"notice_version*Notice Version^v[0-9]{1,4}$source*Source"consent_banner""settings""signup"Successful Response
application/json- response
A user's consent to usage analytics and session recording (spec C
REQ-OBS-34): their newest analytics row in users.tenant_permissions
decides it (P0 master plan §3.1), and it is unset until they choose.
effective_from?|When the choice that decides the state was recorded (UTC); null when unset.
notice_version?|The notice version the user answered; null when unset. A choice made under an earlier version than the web's current notice counts as unset (REQ-OBS-56).
state*Stategranted, denied, or unset when the user has not chosen.
"granted""denied""unset"curl -X PUT 'https://api.aisc.sa/v1/me/consents/telemetry' \ -H 'Content-Type: application/json' \ -d '{ "granted": true, "locale": "ar", "notice_version": "string", "source": "consent_banner"}'{ "effective_from": "2019-08-24T14:15:22Z", "notice_version": "v1", "state": "unset"}BearerAuthAuthorizationBearer <token>JWT access token. Obtain via POST /v1/auth/login.
Successful Response
application/json- response
ai_training*can_change*Can Changellm_assistant*curl -X GET 'https://api.aisc.sa/v1/orgs/me/permissions'{ "ai_training": { "changed_at": "2019-08-24T14:15:22Z", "granted": true, "policy_version": "string" }, "can_change": true, "llm_assistant": { "changed_at": "2019-08-24T14:15:22Z", "granted": true, "policy_version": "string" }}BearerAuthAuthorizationBearer <token>JWT access token. Obtain via POST /v1/auth/login.
application/json- body
granted*Grantedlocale*Locale"ar""en"policy_version*Policy Version^[A-Za-z0-9.+:_-]+$1 <= length <= 80purpose*Purpose"ai_training""llm_assistant"source*Source"settings""signup"Successful Response
application/json- response
changed_at?|nullgranted*Grantedpolicy_version?string|nullcurl -X PUT 'https://api.aisc.sa/v1/orgs/me/permissions' \ -H 'Content-Type: application/json' \ -d '{ "granted": true, "locale": "ar", "policy_version": "string", "purpose": "ai_training", "source": "settings"}'{ "changed_at": "2019-08-24T14:15:22Z", "granted": true, "policy_version": "string"}Authenticated data subject (user) submits a DSAR. Request lands in the manual review queue and is resolved within 30 days per PDPL Implementing Regulations Art. 3. Returns 202 with the request_id and the resolution deadline timestamp.
BearerAuthAuthorizationBearer <token>JWT access token. Obtain via POST /v1/auth/login.
application/json- body
Request body for POST /v1/users/me/dsar.
request_details?|Optional free-text description of the scope or subject of your request (up to 4000 characters). For 'rectification' requests, please describe what information needs to be corrected.
request_type*Request TypeThe type of data-subject right you are exercising under the PDPL: 'access' (receive a copy of your personal data), 'erasure' (request deletion of your personal data), 'portability' (receive your data in a portable format), 'rectification' (correct inaccurate personal data), 'objection' (object to processing of your personal data), 'restriction' (request that processing of your personal data be paused).
"access""erasure""portability""rectification""objection""restriction"Successful Response
application/json- response
Response for POST /v1/users/me/dsar.
deadline_at*Deadline AtThe date and time by which your request will be resolved (UTC). EMTITHAL is required to respond within 30 days of receiving your request. If the deadline passes without resolution, the request is automatically transitioned to the 'expired' status.
date-timemessage_ar*Message ArAcknowledgment message in Arabic.
message_en*Message EnAcknowledgment message in English.
request_id*Request IdUnique identifier for your submitted request. Keep this for your records.
uuidstatus?StatusCurrent status of your request. Always 'pending' immediately after submission while your request is being queued for review.
"pending"curl -X POST 'https://api.aisc.sa/v1/users/me/dsar' \ -H 'Content-Type: application/json' \ -d '{ "request_type": "access"}'{ "deadline_at": "2019-08-24T14:15:22Z", "message_ar": "string", "message_en": "string", "request_id": "266ea41d-adf5-480b-af50-15b940c2b846", "status": "pending"}BearerAuthAuthorizationBearer <token>JWT access token. Obtain via POST /v1/auth/login.
Successful Response
application/json- response
ai_training*analytics*A user's consent to usage analytics and session recording (spec C
REQ-OBS-34): their newest analytics row in users.tenant_permissions
decides it (P0 master plan §3.1), and it is unset until they choose.
llm_assistant*curl -X GET 'https://api.aisc.sa/v1/users/me/permissions'{ "ai_training": { "changed_at": "2019-08-24T14:15:22Z", "granted": true, "policy_version": "string" }, "analytics": { "effective_from": "2019-08-24T14:15:22Z", "notice_version": "v1", "state": "unset" }, "llm_assistant": { "changed_at": "2019-08-24T14:15:22Z", "granted": true, "policy_version": "string" }}BearerAuthAuthorizationBearer <token>JWT access token. Obtain via POST /v1/auth/login.
application/json- body
granted*Grantedlocale*Locale"ar""en"policy_version*Policy Version^[A-Za-z0-9.+:_-]+$1 <= length <= 80purpose*Purpose"ai_training""llm_assistant"source*Source"settings""signup"Successful Response
application/json- response
changed_at?|nullgranted*Grantedpolicy_version?string|nullcurl -X PUT 'https://api.aisc.sa/v1/users/me/permissions' \ -H 'Content-Type: application/json' \ -d '{ "granted": true, "locale": "ar", "policy_version": "string", "purpose": "ai_training", "source": "settings"}'{ "changed_at": "2019-08-24T14:15:22Z", "granted": true, "policy_version": "string"}