projects
GET
https://lucida.15-204-158-166.sslip.io /v1/orgs/{org_id}/projects Parameters
org_idstringpathrequiredCode samples
cURL
curl -X GET "https://lucida.15-204-158-166.sslip.io/v1/orgs/{org_id}/projects"TypeScript
Python
Go
PHP
Ruby
Java
Responses
200 Page of Project
404
POST
https://lucida.15-204-158-166.sslip.io /v1/orgs/{org_id}/projects Creates default environments and a public + secret key; secrets are returned once.
Parameters
org_idstringpathrequiredRequest body
application/json
namestringrequired{
"name": "string"
}Code samples
cURL
curl -X POST "https://lucida.15-204-158-166.sslip.io/v1/orgs/{org_id}/projects" \
-H "Content-Type: application/json" \
-d '{"name":"string"}'TypeScript
Python
Go
PHP
Ruby
Java
Responses
201
Example
{
"environments": [
{
"id": "string",
"is_default": true,
"name": "string"
}
],
"keys": [
{
"created_at": "2024-01-01T00:00:00Z",
"created_by": "string",
"environment": "string",
"expires_at": "2024-01-01T00:00:00Z",
"id": "string",
"key_prefix": "string",
"kind": "string",
"last_used_at": "2024-01-01T00:00:00Z",
"name": "string",
"org_id": "string",
"project_id": "string",
"public_value": "string",
"revoked_at": "2024-01-01T00:00:00Z",
"scopes": [
"string"
],
"secret": "string"
}
],
"project": {
"ai_enabled": true,
"company_enabled": true,
"compliance_profile": "string",
"created_at": "2024-01-01T00:00:00Z",
"fiscal_year_start_month": 0,
"geo_enabled": true,
"group_label": "string",
"id": "string",
"ip_capture": true,
"ip_truncate": true,
"is_test": true,
"logo_url": "string",
"name": "string",
"org_id": "string",
"region": "string",
"replay_mask_floor": true,
"replay_retention_days": 0,
"retention_days": 0,
"slug": "string",
"tags": [
"string"
],
"timezone": "string",
"week_start": 0
}
}Schema
environmentsEnvironment[]requiredShow child parameters
idstringrequiredis_defaultbooleanrequirednamestringrequiredkeysCreatedKey[]requiredShow child parameters
created_atstringrequiredcreated_bystringenvironmentstringEnvironment an SDK key serves;
None = the project's default.expires_atstringidstringrequiredkey_prefixstringrequiredkindstringrequiredlast_used_atstringnamestringrequiredorg_idstringrequiredproject_idstringrequiredpublic_valuestringThe full key, kept only for
public keys (they ship in web pages); null for secret and personal keys, which are shown once, and for public keys minted before this was stored.revoked_atstringscopesstring[]requiredsecretstringrequiredShown once; only its SHA-256 is stored.
projectobjectrequiredShow child parameters
ai_enabledbooleanrequiredPer-project AI kill switch; lc-ai makes no model call when false.
company_enabledbooleanrequiredIdentify the company behind visitor IPs and link events to a
company group (P-H8, default off).compliance_profilestringrequiredstandard | hipaa. HIPAA forces the privacy floors below on.created_atstringrequiredfiscal_year_start_monthintegerrequired1 = January .. 12 = December.
geo_enabledbooleanrequiredResolve
$country / $region / $city / $timezone / lat-lon from the IP (default on).group_labelstringFree-form group shown in the project switcher, e.g.
Mobile.idstringrequiredip_capturebooleanrequiredKeep the client IP (
$ip) on events. Always false under HIPAA.ip_truncatebooleanrequiredWith
ip_capture on, keep the address with its host part zeroed (IPv4 /24, IPv6 /48).is_testbooleanrequiredSandbox project: excluded from billing metering.
logo_urlstringnamestringrequiredorg_idstringrequiredregionstringrequiredreplay_mask_floorbooleanrequiredReplay text is masked server-side whatever the SDK settings say.
replay_retention_daysintegerrequiredretention_daysintegerrequiredslugstringrequiredtagsstring[]requiredtimezonestringrequiredweek_startintegerrequired0 = Sunday .. 6 = Saturday.
403
404
409
GET
https://lucida.15-204-158-166.sslip.io /v1/projects/{project_id} Parameters
project_idstringpathrequiredCode samples
cURL
curl -X GET "https://lucida.15-204-158-166.sslip.io/v1/projects/{project_id}"TypeScript
Python
Go
PHP
Ruby
Java
Responses
200
Example
{
"ai_enabled": true,
"company_enabled": true,
"compliance_profile": "string",
"created_at": "2024-01-01T00:00:00Z",
"fiscal_year_start_month": 0,
"geo_enabled": true,
"group_label": "string",
"id": "string",
"ip_capture": true,
"ip_truncate": true,
"is_test": true,
"logo_url": "string",
"name": "string",
"org_id": "string",
"region": "string",
"replay_mask_floor": true,
"replay_retention_days": 0,
"retention_days": 0,
"slug": "string",
"tags": [
"string"
],
"timezone": "string",
"week_start": 0,
"caller_org_role": "string",
"caller_role": "string"
}Schema
ai_enabledbooleanrequiredPer-project AI kill switch; lc-ai makes no model call when false.
company_enabledbooleanrequiredIdentify the company behind visitor IPs and link events to a
company group (P-H8, default off).compliance_profilestringrequiredstandard | hipaa. HIPAA forces the privacy floors below on.created_atstringrequiredfiscal_year_start_monthintegerrequired1 = January .. 12 = December.
geo_enabledbooleanrequiredResolve
$country / $region / $city / $timezone / lat-lon from the IP (default on).group_labelstringFree-form group shown in the project switcher, e.g.
Mobile.idstringrequiredip_capturebooleanrequiredKeep the client IP (
$ip) on events. Always false under HIPAA.ip_truncatebooleanrequiredWith
ip_capture on, keep the address with its host part zeroed (IPv4 /24, IPv6 /48).is_testbooleanrequiredSandbox project: excluded from billing metering.
logo_urlstringnamestringrequiredorg_idstringrequiredregionstringrequiredreplay_mask_floorbooleanrequiredReplay text is masked server-side whatever the SDK settings say.
replay_retention_daysintegerrequiredretention_daysintegerrequiredslugstringrequiredtagsstring[]requiredtimezonestringrequiredweek_startintegerrequired0 = Sunday .. 6 = Saturday.
caller_org_rolestringThe caller's org role (
owner | admin | member | viewer | billing). A key without a user reads admin (admin scope), member (*:write) or viewer. Null for toolbar tokens.caller_rolestringThe caller's effective role in this project (a project admin grant reads
admin).404
DELETE
https://lucida.15-204-158-166.sslip.io /v1/projects/{project_id} Parameters
project_idstringpathrequiredCode samples
cURL
curl -X DELETE "https://lucida.15-204-158-166.sslip.io/v1/projects/{project_id}"TypeScript
Python
Go
PHP
Ruby
Java
Responses
204
403
404
PATCH
https://lucida.15-204-158-166.sslip.io /v1/projects/{project_id} Parameters
project_idstringpathrequiredRequest body
application/json
ai_enabledbooleanPer-project AI kill switch lc-ai checks before every model call (refused on under
hipaa).company_enabledbooleanIdentify the company behind visitor IPs (operator MMDB or provider) and link events to a
company group with $company_* properties (P-H8, default off; never applied under hipaa).compliance_profilestringstandard | hipaa. hipaa forces ip_capture off, AI off, the replay masking floor on, and clamps retention to 365 / 30 days; it needs an audit sink.fiscal_year_start_monthinteger1 (January) to 12 (December).
geo_enabledbooleanResolve location from the IP at ingest (default on). Off: no
$country / $city / ... are added.group_labelstringGroup in the project switcher, at most 64 characters;
"" clears.ip_capturebooleanKeep the client IP as
$ip on events (default off; refused under hipaa).ip_truncatebooleanWith
ip_capture on, store the address truncated (IPv4 /24, IPv6 /48).logo_urlstringhttps:// image URL; "" clears.namestringregionstringNever writable: a project's region is its org's and data does not move. Sending a different value is a 409 (
region-locked under the hipaa profile).replay_mask_floorbooleanMask replay text server-side whatever the SDK settings say (forced on under
hipaa).replay_retention_daysinteger1 to 3650 (at most 30 under the
hipaa profile).retention_daysinteger1 to 3650.
tagsarrayAt most 20 tags of 1 to 32 characters (lowercased, de-duplicated).
timezonestringIANA timezone used for bucketing, e.g.
Europe/Berlin.week_startinteger0 (Sunday) to 6 (Saturday).
{
"ai_enabled": true,
"company_enabled": true,
"compliance_profile": "string",
"fiscal_year_start_month": 0,
"geo_enabled": true,
"group_label": "string",
"ip_capture": true,
"ip_truncate": true,
"logo_url": "string",
"name": "string",
"region": "string",
"replay_mask_floor": true,
"replay_retention_days": 0,
"retention_days": 0,
"tags": [
"string"
],
"timezone": "string",
"week_start": 0
}Code samples
cURL
curl -X PATCH "https://lucida.15-204-158-166.sslip.io/v1/projects/{project_id}" \
-H "Content-Type: application/json" \
-d '{"ai_enabled":true,"company_enabled":true,"compliance_profile":"string","fiscal_year_start_month":0,"geo_enabled":true,"group_label":"string","ip_capture":true,"ip_truncate":true,"logo_url":"string","name":"string","region":"string","replay_mask_floor":true,"replay_retention_days":0,"retention_days":0,"tags":["string"],"timezone":"string","week_start":0}'TypeScript
Python
Go
PHP
Ruby
Java
Responses
200
Example
{
"ai_enabled": true,
"company_enabled": true,
"compliance_profile": "string",
"created_at": "2024-01-01T00:00:00Z",
"fiscal_year_start_month": 0,
"geo_enabled": true,
"group_label": "string",
"id": "string",
"ip_capture": true,
"ip_truncate": true,
"is_test": true,
"logo_url": "string",
"name": "string",
"org_id": "string",
"region": "string",
"replay_mask_floor": true,
"replay_retention_days": 0,
"retention_days": 0,
"slug": "string",
"tags": [
"string"
],
"timezone": "string",
"week_start": 0
}Schema
ai_enabledbooleanrequiredPer-project AI kill switch; lc-ai makes no model call when false.
company_enabledbooleanrequiredIdentify the company behind visitor IPs and link events to a
company group (P-H8, default off).compliance_profilestringrequiredstandard | hipaa. HIPAA forces the privacy floors below on.created_atstringrequiredfiscal_year_start_monthintegerrequired1 = January .. 12 = December.
geo_enabledbooleanrequiredResolve
$country / $region / $city / $timezone / lat-lon from the IP (default on).group_labelstringFree-form group shown in the project switcher, e.g.
Mobile.idstringrequiredip_capturebooleanrequiredKeep the client IP (
$ip) on events. Always false under HIPAA.ip_truncatebooleanrequiredWith
ip_capture on, keep the address with its host part zeroed (IPv4 /24, IPv6 /48).is_testbooleanrequiredSandbox project: excluded from billing metering.
logo_urlstringnamestringrequiredorg_idstringrequiredregionstringrequiredreplay_mask_floorbooleanrequiredReplay text is masked server-side whatever the SDK settings say.
replay_retention_daysintegerrequiredretention_daysintegerrequiredslugstringrequiredtagsstring[]requiredtimezonestringrequiredweek_startintegerrequired0 = Sunday .. 6 = Saturday.
403
404
GET
https://lucida.15-204-158-166.sslip.io /v1/projects/{project_id}/access-policy Parameters
project_idstringpathrequiredCode samples
cURL
curl -X GET "https://lucida.15-204-158-166.sslip.io/v1/projects/{project_id}/access-policy"TypeScript
Python
Go
PHP
Ruby
Java
Responses
200
Example
{
"default": "string",
"managed_by": "string",
"resources": {}
}Schema
defaultstringmember (every org member, by role) or none (only members added to the project with a project role, plus admins). Default member.managed_bystringterraform when the policy is owned by code (P-M24): the app shows it locked and refuses edits (409) that do not carry the marker, unless they pass force.resourcesobjectPer-resource level for plain members:
none, read or write, keyed by resource (insight, dashboard, replay, flag, experiment, cohort, person, connector).404
Updated