Skip to main content

Datalake: exporting data to BI and your data warehouse

Learn what the Coodesh Datalake is, who can request access, which resources are available and how to configure the export to your data warehouse.

What the Datalake is

The Datalake is a set of REST endpoints that bulk-exports your Coodesh workspace data to BI tools, a data warehouse or any internal data pipeline.

Unlike the operational API endpoints, the Datalake is designed for continuous loading: each run reads only what changed since the previous one, so you keep a synchronised copy of the data without reprocessing everything every time.

Data is delivered as JSON, authenticated with an API key, at the base URL https://api.coodesh.com/assessments/v2/datalake.

Technical documentation

The full endpoint reference, with parameters, response fields, Python and JavaScript examples and the error table, lives at:

Read that page before starting the integration: it is the official source for the data contract.

Who can request access

Access to the Datalake goes through a workspace API key.

  1. Anyone holding the Manage API keys permission can create the key under Workspace › Integrations. Admin and Manager profiles have it by default, and it can also be granted to an individual under People › Permissions.

  2. When creating the key, pick the scopes in the Datalake group that your integration needs under Accessible resources. If no resource is selected, the key gets full API access — for security, select only what you need.

  3. The key is shown only once. Copy it and store it somewhere safe. See API keys for the step by step.

Two scopes are not listed on the creation screen and must be enabled by the Coodesh team on request, through your account contact or support: integrity events and proctoring images. They carry sensitive monitoring evidence, which is why they are gated.

Available resources

Resource

One row per

Required scope

assessment_attempts

assessment attempt

Assessment results (datalake)

users_profiles

person

User profiles and skills (datalake)

users_skills

person and skill

User profiles and skills (datalake)

users_skill_maps

answered skill map

User profiles and skills (datalake)

integrity_events

integrity timeline event

Integrity events (on request)

assessment_attempts carries the score, status, deadlines, result links, sections, skill distribution, career and the attempt’s integrity summary. integrity_events carries the evidence behind that summary, one event per row.

Available settings

Query parameters

  • updated_since — ISO 8601 timestamp (e.g. 2026-01-01T00:00:00Z) that opens the stream at that point. Omit it on the first run to export the whole history.

  • limit — items per page. Defaults to 100, maximum 200. Higher values are rejected, not truncated.

  • cursor — the opaque position returned in next_cursor. Use it to move forward within the same run. It cannot be sent together with updated_since.

Subaccount filter

The x-subaccount-id header narrows the export to the assessments of a single subaccount. Available on assessment_attempts and integrity_events.

Proctoring images

Images captured during monitoring sit behind a scope of their own. Keys without it receive ai_metadata, the AI reading of the frame, and never the picture. When released, the image arrives as snapshot_url, a presigned, expiring link whose validity is stated in snapshot_expires_at — download the file during ingestion, do not store the URL as a permanent one.

Consumption rules

  • Delivery is at-least-once: a record changed after it was already delivered comes back. Always write with an upsert keyed on the record id, never an append.

  • The response carries no totals. has_more is the only stop signal.

  • Pages are sequential: each request depends on the previous response, so the export is a loop, not parallel requests.

  • Store the highest updated_at you saw in the run: that is what opens the next one.

Frequently asked questions

Do I need to purchase anything extra to use the Datalake?

The Datalake is part of the Coodesh API. Talk to your account contact to confirm availability on your plan and to enable the integrity events and proctoring images scopes.

How often can I run the export?

There is no mandatory frequency: you set the interval your pipeline needs. Because each run reads only what changed since the previous one, a daily sync is enough for most cases.

We recommend scheduling the export for low-traffic hours, ideally overnight. Full or high-volume loads compete with your team and with candidates taking assessments; running outside business hours reduces that impact and makes hitting the rate limit less likely.

There is a per-second request limit: on a 429, wait for the time given in the X-RateLimit-Reset header and retry.

I lost my API key. What now?

The key cannot be viewed again. Delete the old key and create a new one under Workspace › Integrations.

Do values come translated?

Enum fields such as event_type, severity and signal always arrive as the technical value, untranslated, so the warehouse never has to handle per-language variations. Translated labels, where they exist, come in separate fields with the _formatted suffix.

Did this answer your question?