# Property Management API for France

import { Head } from "zudoku/components";

<Head>
  <meta property="og:type" content="website" />
  <meta property="og:title" content="FairePlace API Documentation" />
  <meta property="og:description" content="REST API for properties, leases, electronic signatures, and French rental compliance. 370+ endpoints." />
  <meta property="og:url" content="https://developers.faireplace.com/" />
  <meta property="og:site_name" content="FairePlace Developers" />
  <meta property="og:image" content="https://faireplace.com/wp-content/uploads/2026/02/og-developers.png" />
  <meta property="og:image:width" content="1200" />
  <meta property="og:image:height" content="630" />
  <meta name="twitter:card" content="summary_large_image" />
  <meta name="twitter:title" content="FairePlace API Documentation" />
  <meta name="twitter:description" content="Build property management into your product. 370+ REST API endpoints." />
  <meta name="twitter:image" content="https://faireplace.com/wp-content/uploads/2026/02/og-developers.png" />
  <script type="application/ld+json">{`
    {
      "@context": "https://schema.org",
      "@graph": [
        {
          "@type": "Organization",
          "@id": "https://faireplace.com/#organization",
          "name": "FairePlace",
          "url": "https://faireplace.com",
          "logo": "https://faireplace.com/wp-content/uploads/2026/02/og-developers.png",
          "sameAs": ["https://app.faireplace.com", "https://developers.faireplace.com"],
          "contactPoint": {
            "@type": "ContactPoint",
            "contactType": "technical support",
            "email": "api-support@faireplace.com",
            "url": "https://developers.faireplace.com/"
          }
        },
        {
          "@type": "WebSite",
          "@id": "https://developers.faireplace.com/#website",
          "url": "https://developers.faireplace.com",
          "name": "FairePlace API Documentation",
          "publisher": { "@id": "https://faireplace.com/#organization" },
          "inLanguage": "en"
        },
        {
          "@type": "WebAPI",
          "@id": "https://developers.faireplace.com/#webapi",
          "name": "FairePlace Property Management API",
          "description": "REST API for properties, leases, electronic signatures, and French rental compliance. 370+ endpoints.",
          "documentation": "https://developers.faireplace.com/",
          "url": "https://api.faireplace.com/api",
          "termsOfService": "https://faireplace.com/cgu/",
          "provider": { "@id": "https://faireplace.com/#organization" }
        },
        {
          "@type": "SoftwareApplication",
          "name": "FairePlace API",
          "applicationCategory": "DeveloperApplication",
          "operatingSystem": "Any (REST API)",
          "url": "https://developers.faireplace.com",
          "description": "Build French property management into your product: properties, leases, eIDAS electronic signatures, and rental-law compliance (Loi ALUR, IRL, encadrement des loyers) through a REST API.",
          "offers": [
            { "@type": "Offer", "name": "Gratuit", "price": "0", "priceCurrency": "EUR", "description": "Unlimited lease PDFs, 5 properties, eIDAS signatures at 4.90 EUR each" },
            { "@type": "Offer", "name": "Starter", "price": "14.90", "priceCurrency": "EUR", "description": "5 eIDAS signatures included, 8 properties, 2 members" },
            { "@type": "Offer", "name": "Pro", "price": "34.90", "priceCurrency": "EUR", "description": "20 eIDAS signatures, 25 properties, 5 members, read API access" },
            { "@type": "Offer", "name": "Business", "price": "69.90", "priceCurrency": "EUR", "description": "Unlimited signatures, 100 properties, full API access, SSO/SAML" },
            { "@type": "Offer", "name": "Sur Mesure", "price": "99", "priceCurrency": "EUR", "description": "From 99 EUR/month — unlimited, white-label" }
          ],
          "provider": { "@id": "https://faireplace.com/#organization" }
        },
        {
          "@type": "FAQPage",
          "@id": "https://developers.faireplace.com/#faq",
          "mainEntity": [
            {
              "@type": "Question",
              "name": "What is the FairePlace API?",
              "acceptedAnswer": {
                "@type": "Answer",
                "text": "FairePlace is a REST API for property management in France. It lets you create and manage properties and leases, generate Loi ALUR-compliant lease PDFs, collect eIDAS-compliant electronic signatures, and run French rental-law compliance checks (IRL rent revision, encadrement des loyers, deposit limits) — through 370+ endpoints at https://api.faireplace.com/api."
              }
            },
            {
              "@type": "Question",
              "name": "Does the FairePlace API support legally binding electronic signatures?",
              "acceptedAnswer": {
                "@type": "Answer",
                "text": "Yes. FairePlace provides eIDAS-compliant electronic signatures with OTP (SMS/email) verification and a signed proof archive, so you can collect legally binding lease signatures without any third-party signature service."
              }
            },
            {
              "@type": "Question",
              "name": "Is the FairePlace API compliant with French rental law?",
              "acceptedAnswer": {
                "@type": "Answer",
                "text": "Yes. Compliance is built in: Loi ALUR lease templates, IRL rent indexation, encadrement des loyers (rent control) checks, zone tendue detection, security-deposit limits and mandatory annexes are validated automatically on every lease."
              }
            },
            {
              "@type": "Question",
              "name": "How do I authenticate with the FairePlace API?",
              "acceptedAnswer": {
                "@type": "Answer",
                "text": "Authentication uses an API key passed as a Bearer token: 'Authorization: Bearer fp_your_api_key'. Requests are isolated per organization (tenant). See https://developers.faireplace.com/quickstart/authentication."
              }
            },
            {
              "@type": "Question",
              "name": "How much does the FairePlace API cost?",
              "acceptedAnswer": {
                "@type": "Answer",
                "text": "Billing is credit-based: 1 credit = 1 eIDAS signature, charged when a signature is launched. The free Gratuit tier includes unlimited lease PDFs and 5 properties, with signatures at 4.90 EUR each. Paid plans bundle signatures and unlock API access: Starter (14.90 EUR/month), Pro (34.90 EUR/month, read API access), Business (69.90 EUR/month, full API access + SSO/SAML), and Sur Mesure (from 99 EUR/month, white-label). No commitment."
              }
            }
          ]
        }
      ]
    }
  `}</script>
</Head>

<div className="fp-landing-wrap">

{/* ── Hero ── */}
<div style={{textAlign: 'center', padding: '64px 24px 40px', maxWidth: '700px', margin: '0 auto'}}>
  <p style={{fontSize: '0.8rem', fontWeight: 600, letterSpacing: '0.08em', textTransform: 'uppercase', opacity: 0.5, marginBottom: '20px'}}>Developer Documentation</p>
  <h2 style={{fontFamily: "'DM Serif Display', serif", fontSize: '2.6rem', fontWeight: 400, marginBottom: '16px', letterSpacing: '-0.02em', lineHeight: 1.15}}>The API for French property management</h2>
  <p style={{fontSize: '1.05rem', opacity: 0.6, maxWidth: '540px', margin: '0 auto 12px', lineHeight: 1.7}}>Create leases, collect eIDAS signatures, and handle rent compliance. From API key to signed lease PDF in 6 API calls.</p>
  <p style={{fontSize: '0.85rem', opacity: 0.38, maxWidth: '480px', margin: '0 auto 32px', lineHeight: 1.6}}>370+ endpoints. Loi ALUR, IRL, encadrement des loyers — built-in. Skip months of legal development.</p>
  <div style={{display: 'flex', gap: '12px', justifyContent: 'center', flexWrap: 'wrap'}}>
    <a href="/quickstart/getting-started" className="fp-btn-primary" style={{display: 'inline-block', padding: '12px 28px', background: '#d08e3d', color: '#fff', borderRadius: '30px', fontWeight: 600, textDecoration: 'none', fontSize: '0.9rem'}}>Create your first lease →</a>
    <a href="/api" className="fp-btn-outline" style={{display: 'inline-block', padding: '12px 28px', borderRadius: '30px', fontWeight: 600, textDecoration: 'none', fontSize: '0.9rem', border: '1.5px solid currentColor', opacity: 0.4}}>API Reference</a>
  </div>
</div>

{/* ── The happy path — what you'll build ── */}
<div className="fp-quickstart" style={{borderRadius: '12px', padding: '32px', maxWidth: '900px', margin: '0 auto 48px'}}>
  <h2 style={{fontFamily: "'DM Serif Display', serif", fontSize: '1.4rem', fontWeight: 400, marginBottom: '6px'}}>From zero to signed lease in 6 API calls</h2>
  <p style={{opacity: 0.55, marginBottom: '20px', fontSize: '0.9rem'}}>Get an API key, create a property, generate a lease, and collect eIDAS signatures — all copy-paste ready.</p>

```bash
# 1. Set your API key
export API_KEY="fp_your_api_key_here"

# 2. Create an owner
curl -X POST https://api.faireplace.com/api/owners \
  -H "Authorization: Bearer $API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"first_name": "Jean", "last_name": "Dupont", "owner_category": "individual", "email": "jean@example.com", "mobile_phone": "+33612345678"}'

# 3. Create a building + apartment
PLACE=$(curl -s -X POST https://api.faireplace.com/api/places \
  -H "Authorization: Bearer $API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"name": "Residence Les Jardins", "owner_id": "<owner_id>", "postal_code": "75012", "city": "Paris"}' | jq -r '.id')

curl -X POST https://api.faireplace.com/api/places/$PLACE/estates \
  -H "Authorization: Bearer $API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"area": 45.0, "number_of_room": 2, "floor": 3}'

# 4. Create a lease
curl -X POST https://api.faireplace.com/api/leases \
  -H "Authorization: Bearer $API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"estate_id": "<estate_id>", "rent_amount": 950.00, "deposit_amount": 950.00, "start_date": "2026-04-01", "end_date": "2029-03-31"}'

# 5. Generate the PDF
curl -X POST https://api.faireplace.com/api/leases/<lease_id>/pdf \
  -H "Authorization: Bearer $API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"template_type": "StandardLease"}'

# 6. Collect signatures (OTP via SMS)
curl -X POST https://api.faireplace.com/api/leases/<lease_id>/signature/initiate \
  -H "Authorization: Bearer $API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"pdf_id": "<pdf_id>", "signers": [{"signer_type": "PROPRIETAIRE", "first_name": "Jean", "last_name": "Dupont", "email": "jean@example.com", "phone": "+33612345678"}]}'
```

  <div style={{display: 'flex', gap: '12px', flexWrap: 'wrap', marginTop: '8px'}}>
    <a href="/quickstart/getting-started" style={{display: 'inline-block', padding: '10px 22px', background: '#d08e3d', color: '#fff', borderRadius: '30px', fontWeight: 600, textDecoration: 'none', fontSize: '0.85rem'}}>Full tutorial with responses →</a>
    <a href="/quickstart/sandbox" style={{display: 'inline-block', padding: '10px 22px', borderRadius: '30px', fontWeight: 600, textDecoration: 'none', fontSize: '0.85rem', border: '1.5px solid currentColor', opacity: 0.4}}>Try it in sandbox</a>
  </div>
</div>

{/* ── What you get ── */}
<div style={{maxWidth: '900px', margin: '0 auto 48px', padding: '0 24px'}}>
  <h2 style={{fontFamily: "'DM Serif Display', serif", fontSize: '1.4rem', fontWeight: 400, textAlign: 'center', marginBottom: '24px'}}>What you get</h2>
  <div style={{display: 'grid', gridTemplateColumns: 'repeat(auto-fit, minmax(270px, 1fr))', gap: '16px'}}>
    <a href="/signatures/lease-workflow" className="fp-card" style={{padding: '24px', borderRadius: '12px', textDecoration: 'none', color: 'inherit'}}>
      <h3 style={{fontFamily: "'DM Serif Display', serif", fontSize: '1.15rem', fontWeight: 400, marginBottom: '8px'}}>Legally signed leases</h3>
      <p style={{opacity: 0.55, lineHeight: 1.6, fontSize: '0.88rem', marginBottom: '12px'}}>Generate Loi ALUR-compliant lease PDFs and collect eIDAS electronic signatures with OTP verification. No third-party service needed.</p>
      <span style={{color: '#d08e3d', fontWeight: 600, fontSize: '0.85rem'}}>See the workflow →</span>
    </a>
    <a href="/compliance/rent-regulation" className="fp-card" style={{padding: '24px', borderRadius: '12px', textDecoration: 'none', color: 'inherit'}}>
      <h3 style={{fontFamily: "'DM Serif Display', serif", fontSize: '1.15rem', fontWeight: 400, marginBottom: '8px'}}>French compliance built-in</h3>
      <p style={{opacity: 0.55, lineHeight: 1.6, fontSize: '0.88rem', marginBottom: '12px'}}>Encadrement des loyers, IRL revision, deposit limits, zone tendue checks — validated automatically on every lease.</p>
      <span style={{color: '#d08e3d', fontWeight: 600, fontSize: '0.85rem'}}>How compliance works →</span>
    </a>
    <a href="/properties/overview" className="fp-card" style={{padding: '24px', borderRadius: '12px', textDecoration: 'none', color: 'inherit'}}>
      <h3 style={{fontFamily: "'DM Serif Display', serif", fontSize: '1.15rem', fontWeight: 400, marginBottom: '8px'}}>Full property lifecycle</h3>
      <p style={{opacity: 0.55, lineHeight: 1.6, fontSize: '0.88rem', marginBottom: '12px'}}>Buildings, apartments, rooms, equipment, meters, charges, receipts, amendments — 370+ endpoints covering every operation.</p>
      <span style={{color: '#d08e3d', fontWeight: 600, fontSize: '0.85rem'}}>Explore the API →</span>
    </a>
  </div>
</div>

{/* ── Explore by topic ── */}
<div style={{maxWidth: '900px', margin: '0 auto 48px', padding: '0 24px'}}>
  <h2 style={{fontFamily: "'DM Serif Display', serif", fontSize: '1.4rem', fontWeight: 400, textAlign: 'center', marginBottom: '24px'}}>Explore by topic</h2>
  <div className="fp-grid" style={{display: 'grid', gridTemplateColumns: 'repeat(4, 1fr)', gap: '12px'}}>
    <a href="/quickstart/getting-started" className="fp-module" style={{padding: '20px 16px', borderRadius: '10px', textDecoration: 'none', color: 'inherit', textAlign: 'center'}}>
      <div style={{fontWeight: 600, fontSize: '0.85rem', marginBottom: '2px'}}>Quickstart</div>
      <div style={{fontSize: '0.75rem', opacity: 0.45}}>First API call</div>
    </a>
    <a href="/quickstart/authentication" className="fp-module" style={{padding: '20px 16px', borderRadius: '10px', textDecoration: 'none', color: 'inherit', textAlign: 'center'}}>
      <div style={{fontWeight: 600, fontSize: '0.85rem', marginBottom: '2px'}}>Auth & Keys</div>
      <div style={{fontSize: '0.75rem', opacity: 0.45}}>API keys, permissions</div>
    </a>
    <a href="/quickstart/sandbox" className="fp-module" style={{padding: '20px 16px', borderRadius: '10px', textDecoration: 'none', color: 'inherit', textAlign: 'center'}}>
      <div style={{fontWeight: 600, fontSize: '0.85rem', marginBottom: '2px'}}>Sandbox</div>
      <div style={{fontSize: '0.75rem', opacity: 0.45}}>Test environment</div>
    </a>
    <a href="/core/errors" className="fp-module" style={{padding: '20px 16px', borderRadius: '10px', textDecoration: 'none', color: 'inherit', textAlign: 'center'}}>
      <div style={{fontWeight: 600, fontSize: '0.85rem', marginBottom: '2px'}}>Errors</div>
      <div style={{fontSize: '0.75rem', opacity: 0.45}}>Handling failures</div>
    </a>
    <a href="/properties/overview" className="fp-module" style={{padding: '20px 16px', borderRadius: '10px', textDecoration: 'none', color: 'inherit', textAlign: 'center'}}>
      <div style={{fontWeight: 600, fontSize: '0.85rem', marginBottom: '2px'}}>Properties</div>
      <div style={{fontSize: '0.75rem', opacity: 0.45}}>Buildings, rooms</div>
    </a>
    <a href="/leases/overview" className="fp-module" style={{padding: '20px 16px', borderRadius: '10px', textDecoration: 'none', color: 'inherit', textAlign: 'center'}}>
      <div style={{fontWeight: 600, fontSize: '0.85rem', marginBottom: '2px'}}>Leases</div>
      <div style={{fontSize: '0.75rem', opacity: 0.45}}>Contracts, charges</div>
    </a>
    <a href="/signatures/overview" className="fp-module" style={{padding: '20px 16px', borderRadius: '10px', textDecoration: 'none', color: 'inherit', textAlign: 'center'}}>
      <div style={{fontWeight: 600, fontSize: '0.85rem', marginBottom: '2px'}}>Signatures</div>
      <div style={{fontSize: '0.75rem', opacity: 0.45}}>eIDAS, OTP</div>
    </a>
    <a href="/api" className="fp-module" style={{padding: '20px 16px', borderRadius: '10px', textDecoration: 'none', color: 'inherit', textAlign: 'center'}}>
      <div style={{fontWeight: 600, fontSize: '0.85rem', marginBottom: '2px'}}>API Reference</div>
      <div style={{fontSize: '0.75rem', opacity: 0.45}}>370+ endpoints</div>
    </a>
  </div>
</div>

{/* ── Footer CTA ── */}
<div style={{textAlign: 'center', padding: '24px 24px 48px'}}>
  <p style={{opacity: 0.4, fontSize: '0.85rem'}}>Questions? api-support@faireplace.com</p>
</div>

</div>
