v3

latestOpenAPI 3.1.02026-07-311,4541,5202.3 MB
temporaryApiKeys

Retrieve Api Key

Stamp server-controlled fields at save time — never by mutating request.data.

DRF's contract: post()create()serializer.is_valid()perform_create(serializer)serializer.save(**kwargs). Server values belong in that final save(**kwargs) — they override validated_data, never pass through client validation, and don't need to be writable serializer fields. The matching serializer field becomes read_only=True (or is dropped from fields), shrinking — not widening — the mass-assignment surface, and the immutable-QueryDict (multipart) failure mode of the old request.data[...] = pattern disappears.

Declare the fields to stamp as field -> fn(view) -> value maps::

class ExperimentV2sView(ServerStampedFieldsMixin, ...):
    create_stamped_fields = {"created_by": stamp_request_user_id}
# + serializer: created_by = ...(read_only=True)

FK columns: when the stamped value is an int and the field names a relation on the serializer's Meta.model, the kwarg is rewritten to <field>_id so Model.objects.create accepts it (a raw int on the FK attribute itself would raise). Non-relation fields (scorer = email) and instance values pass through unchanged.

Cooperative composition: subclasses that need to stamp additional server values (e.g. OrganizationInjectionMixin stamping org/project) override get_create_save_kwargs / get_update_save_kwargs and merge onto super() — yielding exactly ONE serializer.save() per request (calling save() twice would re-run create/update side effects).

get/api/temporary-keys/{id}/

Path parameters

idstring required

Headers

Authorizationstring required

Use your Respan API key for Respan API authentication. Enter only the Respan API key value; clients send Authorization: Bearer <RESPAN_API_KEY>. For /api/responses, provider credentials such as Perplexity, OpenAI, or Azure OpenAI go in Settings -> Providers or respan_params.credential_override in the request body, not in this authentication field.

Response

idstring required
api_keystring required
suffixstring required
status'active' | 'expired' | 'revoked' required
  • active - Active
  • expired - Expired
  • revoked - Revoked
projectstring nullable
prefixstring required
hashed_keystring required
createdstring date-time required
namestring

A free-form name for the API key. Need not be unique. 50 characters max.

revokedboolean

If the API key is revoked, clients cannot use it anymore. (This cannot be undone.)

expiry_datestring date-time nullable

Once API key expires, clients cannot use it anymore.

key_usageinteger required
max_usageinteger
last_usedstring date-time required
rate_limitnumber double nullable
spending_limitnumber double nullable
spending_in_periodnumber double required
is_testboolean required
is_temporaryboolean
revoked_atstring date-time nullable required
revoked_by_emailstring nullable required
userinteger nullable required
organizationinteger nullable required
created_byinteger nullable required
updated_byinteger nullable required