Calls without X-API-Key need no key. Calls with it need a paid plan — get a key.
Get an API key
Free tier, no form to fill in. Signing in shares your email address with us — we
store it to create your key and to recognise you if you sign in with another
provider. See our Privacy Policy and
Terms.
openapi: 3.2.0
info:
title: FreeSign — Free e-signature Consent API
version: 0.0.0
summary: Free e-signature (electronic signature) API — zero-document PDF signing.
description: FreeSign is a free e-signature (electronic signature, esignature) service. The API accepts hashes, OTP state, signatures, and receipts only. Do not upload PDF bytes. Browser/headless clients compute hashes and generate signatures locally. Output is a standard PAdES-B-T signed PDF, designed for the EU eIDAS Advanced Electronic Signature (AES, Article 26) and US ESIGN/UETA evidence models — legal admissibility is jurisdiction- and fact-specific.
servers:
- url: https://free-sign.com
description: Production
- url: http://localhost:8787
description: Local development
tags:
- name: Consent
paths:
/api/consent:
get:
summary: Fetch current consent text and public ceremony configuration
description: Single source of truth for the consent version/text the browser signs. Also returns enabled signature variants and the public Cloudflare Turnstile site key when configured. No PDF bytes are involved.
responses:
'200':
description: Consent text, hash, signature variants, and public Turnstile site key.
content:
application/json:
schema:
type: object
properties:
version:
type: string
text:
type: string
text_sha256:
type: string
pattern: ^[a-f0-9]{64}$
signature_variants:
type: array
items:
type: string
enum:
- signer_certificate
- freesign_verified_seal
turnstile_site_key:
type: string
intelligence:
type: object
description: Present only on deployments with ENABLE_DOCUMENT_INTELLIGENCE=true (the optional in-browser one-paragraph PDF summary POC). Absent when the flag is off — clients must treat the field as flag-conditional, not required.
properties:
enabled:
type: boolean
free_quota_per_30d:
type: integer
minimum: 0
description: Per-deployment free quota label (informational only — not enforced in code today).
required:
- enabled
- free_quota_per_30d
required:
- version
- text
- text_sha256
- signature_variants
- turnstile_site_key
tags:
- Consent
operationId: getApiConsent
x-operation-id-source: derived