PageSourceSearch

https://leaseswap.nyc/_next/static/chunks/0k94wmozy2oxp.js

js leaseswap.nyc collected 2026-10-06 18:05:34 UTC 29,972 bytes, 1 lines download raw bytes

1(globalThis.TURBOPACK||(globalThis.TURBOPACK=[])).push(["object"==typeof document?document.currentScript:void 0,8917,e=>{"use strict";var t=e.i(843476),n=e.i(115057),a=e.i(770703),r=e.i(522016),s=e.i(618566),o=e.i(271645);let i=(0,a.default)(()=>e.A(268792).then(e=>e.MapCanvas),{loadableGenerated:{modules:[755555]},ssr:!1,loading:()=>(0,t.jsx)("div",{className:"h-full w-full bg-surface-ink","aria-hidden":!0})});function l({listings:e,mode:n,onSelect:a}){return(0,t.jsx)("div",{className:"absolute inset-0 [&_.leaflet-control-attribution]:opacity-60",children:(0,t.jsx)(i,{listings:e,mode:n,selectedId:null,interactive:!0,onSelect:e=>{e&&a(e)}})})}e.s(["GuideMapPreview",0,function({listings:e,totalCount:a,mode:i,chipLabel:c,ctaText:d,ctaHref:u,preview:h}){let p=(0,o.useRef)(null),[f,m]=(0,o.useState)(!1),g=(0,s.useRouter)();return(0,o.useEffect)(()=>{let e=p.current;if(!e||f)return;let t=new IntersectionObserver(e=>{e.some(e=>e.isIntersecting)&&(m(!0),t.disconnect())},{rootMargin:"200px"});return t.observe(e),()=>t.disconnect()},[f]),(0,t.jsx)("div",{ref:p,className:"relative overflow-hidden rounded-3xl bg-surface-ink ring-1 ring-white/10 shadow-[0_24px_60px_-20px_rgba(0,0,0,0.45)]",children:(0,t.jsxs)("div",{className:"relative h-[480px] md:h-[560px] w-full","aria-label":`Map showing ${a.toLocaleString()} ${c} across NYC`,children:[f?(0,t.jsx)(l,{listings:e,mode:i,onSelect:e=>{g.push(`${u}&listing=${e.id}`)}}):(0,t.jsx)("div",{className:"absolute inset-0 bg-surface-ink","aria-hidden":!0}),(0,t.jsx)("div",{className:"pointer-events-none absolute inset-x-0 top-0 z-[800] h-24 bg-gradient-to-b from-black/60 to-transparent","aria-hidden":!0}),(0,t.jsx)("div",{className:"pointer-events-none absolute inset-x-0 bottom-0 z-[800] h-40 bg-gradient-to-t from-black/85 via-black/40 to-transparent","aria-hidden":!0}),(0,t.jsxs)("div",{className:"absolute left-5 top-5 z-[810] inline-flex items-center gap-2 rounded-full bg-black/60 px-3 py-1.5 text-mono-meta text-white/80 backdrop-blur-md ring-1 ring-white/10",children:[(0,t.jsx)("span",{className:"h-1.5 w-1.5 rounded-full bg-success animate-status-pulse","aria-hidden":!0}),a.toLocaleString()," ",c]}),(0,t.jsxs)("div",{className:"absolute inset-x-5 bottom-5 z-[810] flex items-center justify-between gap-4",children:[h&&(0,t.jsxs)("div",{className:"hidden sm:block max-w-sm",children:[(0,t.jsx)("div",{className:"text-2xs font-semibold tracking-[0.2em] uppercase text-white/60",children:h.eyebrow}),(0,t.jsx)("p",{className:"mt-1 text-sm text-white/80 leading-snug",children:h.description})]}),(0,t.jsxs)(r.default,{href:u,className:"group ml-auto inline-flex items-center gap-2 rounded-full bg-white px-5 py-2.5 text-sm font-semibold text-deep shadow-lg transition-[background-color,scale] duration-200 hover:bg-white/90 active:scale-[0.97]",children:[d,(0,t.jsx)(n.ArrowUpRight,{className:"w-4 h-4 transition-transform group-hover:translate-x-0.5 group-hover:-translate-y-0.5"})]})]})]})})}])},145046,e=>{"use strict";var t=e.i(843476),n=e.i(271645),a=e.i(152236);e.s(["GuideTableOfContents",0,function({items:e,variant:r="sidebar",title:s="On this page",className:o}
1){let[i,l]=(0,n.useState)(e[0]?.id??""),c=(0,n.useCallback)(()=>{let t=window.scrollY,n=e[0]?.id??"";for(let a of e){let e=document.getElementById(a.id);if(!e)continue;let{top:r}=e.getBoundingClientRect();if(r+t<=t+100)n=a.id;else break}l(n)},[e]);return((0,n.useEffect)(()=>(c(),window.addEventListener("scroll",c,{passive:!0}),()=>{window.removeEventListener("scroll",c)}),[c]),"grid"===r)?(0,t.jsx)("section",{className:(0,a.cn)("border-b border-foreground/8 bg-background",o),children:(0,t.jsxs)("div",{className:"container mx-auto px-4 py-8 max-w-4xl",children:[(0,t.jsxs)("div",{className:"flex items-center gap-3 mb-5",children:[(0,t.jsx)("div",{className:"h-px w-6 bg-accent-gold","aria-hidden":"true"}),(0,t.jsx)("span",{className:"text-2xs font-semibold tracking-[0.2em] uppercase text-medium",children:s})]}),(0,t.jsx)("nav",{className:"grid gap-0 sm:grid-cols-2 divide-y divide-foreground/8 sm:divide-y-0",children:e.map((e,n)=>(0,t.jsxs)("a",{href:`#${e.id}`,className:(0,a.cn)("flex items-center gap-3 px-1 py-3 text-sm font-medium text-medium transition-colors hover:text-deep","sm:border-t sm:border-foreground
1/8",n>=2&&"sm:border-t"),children:[(0,t.jsx)("span",{className:"text-mono-meta",children:String(n+1).padStart(2,"0")}),(0,t.jsx)("span",{children:e.label})]},e.id))})]})}):(0,t.jsxs)("nav",{"aria-label":s,className:(0,a.cn)("hidden w-full lg:block lg:sticky lg:top-24",o),children:[(0,t.jsxs)("div",{className:"flex items-center gap-3 mb-5",children:[(0,t.jsx)("div",{className:"h-px w-6 bg-accent-gold","aria-hidden":"true"}),(0,t.jsx)("span",{className:"text-2xs font-semibold tracking-[0.2em] uppercase text-medium",children:s})]}),(0,t.jsx)("div",{className:"-mx-4 flex gap-2 overflow-x-auto px-4 pb-2 lg:hidden",children:e.map(e=>{let n=i===e.id,r=e.shortLabel??e.label;return(0,t.jsx)("a",{href:`#${e.id}`,"aria-current":n?"location":void 0,className:(0,a.cn)("shrink-0 rounded-full border px-3 py-1.5 text-2xs font-medium whitespace-nowrap transition-[color,border-color,background-color] duration-150",n?"border-accent-gold/30 bg-muted text-deep":"border-foreground/8 bg-transparent text-medium hover:text-deep"),children:r},e.id)})}),(0,t.jsx)("ol",{className:"hidden lg:block",children:e.map((e,n)=>{let r=i===e.id,s=e.shortLabel??e.label;return(0,t.jsx)("li",{className:"relative",children:(0,t.jsxs)("a",{href:`#${e.id}`,"aria-current":r?"location":void 0,className:(0,a.cn)("group relative flex items-start gap-3 py-2.5 pl-4 pr-2 text-meta transition-colors duration-150",r?"text-deep font-medium":"text-medium hover:text-deep"),children:[(0,t.jsx)("span",{className:(0,a.cn)("absolute left-0 top-2.5 bottom-2.5 w-[2px] rounded-full transition-colors duration-150",r?"bg-accent-gold":"bg-transparent"),"aria-hidden":"true"}),(0,t.jsx)("span",{className:"text-mono-meta shrink-0 w-6",children:String(n+1).padStart(2,"0")}),(0,t.jsx)("span",{className:"leading-snug",children:s})]})},e.id)})})]})}])},273988,e=>{"use strict";var t=e.i(843476),n=e.i(791200);let a="https://law.justia.com/codes/new-york/rpp/article-7/226-b/",r="https://ag.ny.gov/publications/residential-tenants-rights-guide";var s=e.i(908235);let o=[{question:"Is a lease takeover legal in NYC?",answer:`Yes. A lease takeover is legally a "lease assignment" under New York Real Property Law \xa7 226-b(1). You have the right to ask your landlord to consent to an assignment, which ${s.ASSIGNMENT_RULE.consentClause}. ${s.ASSIGNMENT_RULE.remedySentence}`},{question:"Can my landlord refuse a lease takeover?",answer:`Yes — under RPL 226-b(1), the landlord ${s.ASSIGNMENT_RULE.consentClause}. What matters is whether the refusal is reasonable: ${s.ASSIGNMENT_RULE.remedySentence} If the refusal is reasonable, there is no assignment and no release. The "silence equals consent" deadlines belong to the subletting provision (RPL 226-b(2)), not assignment.`},{question:"What's the difference between subletting and lease assignment?",answer:`In a sublease, the original tenant remains on the lease and is still primarily liable to the landlord for rent. In a lease assignment (takeover), the new tenant replaces the original tenant going forward once the landlord consents, and a signed written release is what ends liability for the original tenant — ${s.CONSENT_VS_RELEASE.sentence} RPL 226-b also gives them different rules: ${s.SUBLET_RULE.sentence} Assignment does not carry that standard.`},{question:"Do I need landlord approval for a lease takeover?",answer:`Yes — under RPL 226-b(1) you must request the landlord's written consent before assigning, which ${s.ASSIGNMENT_RULE.consentClause}. The statute does not specify a delivery method, though sending it in a form you can prove was received (such as certified mail, return receipt requested) is good practice. ${s.ASSIGNMENT_RULE.remedySentence} Have a NY tenant attorney review your specific situation before sending.`},{question:"What happens if my landlord doesn't respond?",answer:'For an assignment under RPL 226-b(1), silence is not deemed consent — that "silence = consent" rule comes from the sublet provision (RPL 226-b(2)), not the assignment provision. In practice a non-response is treated as withholding consent, and whether that withholding is unreasonable (which is what unlocks the release remedy) is fact-specific. Talk to a tenant attorney before relying on a non-response.'}
1,{question:"How do I find lease takeover apartments in NYC?",answer:"Leaseswap tracks lease takeover listings across NYC. These are apartments where current tenants are looking to transfer their lease to a new tenant. Set up free alerts to be notified when new lease takeover listings match your criteria — you'll be among the first to know about new opportunities."},{question:"What if my lease says I cannot assign it?",answer:`RPL 226-b(1) gives you the right to ask the landlord to consent to an assignment even if your lease says no — a flat anti-assignment clause cannot strip that statutory right (${s.ASSIGNMENT_RULE.consentClause}). ${s.ASSIGNMENT_RULE.remedySentence} This area is fact-specific; talk to a tenant attorney before relying on this.`},{question:"How can I avoid lease takeover scams?",answer:"Always verify the current tenant's identity with government-issued ID, get a copy of the current lease, and contact the landlord directly to confirm they're aware of the assignment. Never pay large sums before verifying all details, and use traceable payment methods. Be wary of deals that seem too good to be true or people who refuse to meet in person."}];e.s(["FAQSection",0,function(){return(0,t.jsxs)("section",{id:"common-questions",className:"space-y-10 scroll-mt-20",children:[(0,t.jsxs)("div",{className:"max-w-3xl",children:[(0,t.jsxs)("div",{className:"flex items-center gap-3 mb-4",children:[(0,t.jsx)("div",{className:"h-px w-8 bg-accent-gold","aria-hidden":"true"}),(0,t.jsx)("span",{className:"text-2xs font-semibold tracking-[0.2em] uppercase text-medium",children:"FAQs"})]}),(0,t.jsx)("h2",{className:"text-3xl md:text-4xl font-semibold tracking-tight text-deep text-balance",children:"Common questions"}),(0,t.jsx)("p",{className:"mt-3 text-base md:text-lg text-muted-foreground text-pretty",children:"Everything you need to know about lease takeovers and assignments in NYC."}),(0,t.jsxs)("div",{className:"mt-4 text-mono-meta",children:["Sources:"," ",(0,t.jsx)("a",{className:"text-accent-gold hover:underline",href:a,rel:"noopener noreferrer nofollow",target:"_blank",children:"RPL 226-b"}),","," ",(0,t.jsx)("a",{className:"text-accent-gold hover:underline",href:r,rel:"noopener noreferrer nofollow",target:"_blank",children:"NY AG Tenants' Rights Guide"})]})]}),(0,t.jsx)(n.Accordion,{type:"single",collapsible:!0,defaultValue:o[0].question,className:"divide-y divide-foreground
1/8 border-t border-b border-foreground/8",children:o.map(e=>(0,t.jsxs)(n.AccordionItem,{value:e.question,className:"border-b-0",children:[(0,t.jsx)(n.AccordionTrigger,{className:"py-5 md:py-6 text-left text-base md:text-lg font-medium text-deep hover:no-underline hover:text-deep/80 [&>svg]:text-medium [&>svg]:h-5 [&>svg]:w-5 [&[data-state=open]>svg]:text-accent-gold",children:e.question}),(0,t.jsx)(n.AccordionContent,{className:"text-sm md:text-base text-medium leading-relaxed pb-6 pr-8",children:e.answer})]},e.question))})]})}],273988)},268792,e=>{e.v(t=>Promise.all(["static/chunks/018j3ltg6-rwq.js","static/chunks/0f-nto26hdu-w.js","static/chunks/0qd1ie5qxxiza.js","static/chunks/3-sxn1tl73yi-.css","static/chunks/3wru888fwt7xx.css"].map(t=>e.l(t))).then(()=>t(755555)))},791200,e=>{"use strict";var t=e.i(843476),n=e.i(271645),a=e.i(30030),r=e.i(75830),s=e.i(820783),o=e.i(981140),i=e.i(369340),l=e.i(248425),c=e.i(934620),d=e.i(296626),u=e.i(610772),h="Collapsible",[p,f]=(0,a.createContextScope)(h),[m,g]=p(h),b=n.forwardRef((e,a)=>{let{__scopeCollapsible:r,open:s,defaultOpen:o,disabled:c,onOpenChange:d,...p}=e,[f,g]=(0,i.useControllableState)({prop:s,defaultProp:o??!1,onChange:d,caller:h});return(0,t.jsx)(m,{scope:r,disabled:c,contentId:(0,u.useId)(),open:f,onOpenToggle:n.useCallback(()=>g(e=>!e),[g]),children:(0,t.jsx)(l.Primitive.div,{"data-state":j(f),"data-disabled":c?"":void 0,...p,ref:a})})});b.displayName=h;var w="CollapsibleTrigger",v=n.forwardRef((e,n)=>{let{__scopeCollapsible:a,...r}=e,s=g(w,a);return(0,t.jsx)(l.Primitive.button,{type:"button","aria-controls":s.contentId,"aria-expanded":s.open||!1,"data-state":j(s.open),"data-disabled":s.disabled?"":void 0,disabled:s.disabled,...r,ref:n,onClick:(0,o.composeEventHandlers)(e.onClick,s.onOpenToggle)})});v.displayName=w;var x="CollapsibleContent",y=n.forwardRef((e,n)=>{let{forceMount:a,...r}=e,s=g(x,e.__scopeCollapsible);return(0,t.jsx)(d.Presence,{present:a||s.open,children:({present:e})=>(0,t.jsx)(N,{...r,ref:n,present:e})})});y.displayName=x;var N=n.forwardRef((e,a)=>{let{__scopeCollapsible:r,present:o,children:i,...d}=e,u=g(x,r),[h,p]=n.useState(o),f=n.useRef(null),m=(0,s.useComposedRefs)(a,f),b=n.useRef(0),w=b.current,v=n.useRef(0),y=v.current,N=u.open||h,R=n.useRef(N),S=n.useRef(void 0);return n.useEffect(()=>{let e=requestAnimationFrame(()=>R.current=!1);return()=>cancelAnimationFrame(e)},[]),(0,c.useLayoutEffect)(()=>{let e=f.current;if(e){S.current=S.current||{transitionDuration:e.style.transitionDuration,animationName:e.style.animationName},e.style.transitionDuration="0s",e.style.animationName="none";let t=e.getBoundingClientRect();b.current=t.height,v.current=t.width,R.current||(e.style.transitionDuration=S.current.transitionDuration,e.style.animationName=S.current.animationName),p(o)}},[u.open,o]),(0,t.jsx)(l.Primitive.div,{"data-state":j(u.open),"data-disabled":u.disabled?"":void 0,id:u.contentId,hidden:!N,...d,ref:m,style:{"--radix-collapsible-content-height":w?`${w}px`:void 0,"--radix-collapsible-content-width":y?`${y}px`:void 0,...e.style},children:N&&i})});function j(e){return e?"open":"closed"}var R=e.i(586318),S="Accordion",P=["Home","End","ArrowDown","ArrowUp","ArrowLeft","ArrowRight"],[k,C,A]=(0,r.createCollection)(S),[_,L]=(0,a.createContextScope)(S,[A,f]),E=f(),O=n.default.forwardRef((e,n)=>{let{type:a,...r}=e;return(0,t.jsx)(k.Provider,{scope:e.__scopeAccordion,children:"multiple"===a?(0,t.jsx)(D,{...r,ref:n}):(0,t.jsx)(M,{...r,ref:n})})});O.displayName=S;var[I,T]=_(S),[U,Y]=_(S,{collapsible:!1}),M=n.default.forwardRef((e,a)=>{let{value:r,defaultValue:s,onValueChange:o=()=>{},collapsible:l=!1,...c}=e,[d,u]=(0,i.useControllableState)({prop:r,defaultProp:s??"",onChange:o,caller:S});return(0,t.jsx)(I,{scope:e.__scopeAccordion,value:n.default.useMemo(()=>d?[d]:[],[d]),onItemOpen:u,onItemClose:n.default.useCallback(()=>l&&u(""),[l,u]),children:(0,t.jsx)(U,{scope:e.__scopeAccordion,collapsible:l,children:(0,t.jsx)($,{...c,ref:a})})})}),D=n.default.forwardRef((e,a)=>{let{value:r,defaultValue:s,onValueChange:o=()=>{},...l}=e,[c,d]=(0,i.useControllableState)({prop:r,defaultProp:s??[],onChange:o,caller:S}),u=n.default.useCallback(e=>d((t=[])=>[...t,e]),[d]),h=n.default.useCallback(e=>d((t=[])=>t.filter(t=>t!==e)),[d]);return(0,t.jsx)(I,{scope:e.__scopeAccordion,value:c,onItemOpen:u,onItemClose:h,children:(0,t.jsx)(U,{scope:e.__scopeAccordion,collapsible:!0,children:(0,t.jsx)($,{...l,ref:a})})})}),[G,q]=_(S),$=n.default.forwardRef((e,a)=>{let{__scopeAccordion:r,disabled:i,dir:c,orientation:d="vertical",...u}=e,h=n.default.useRef(null),p=(0,s.useComposedRefs)(h,a),f=C(r),m="ltr"===(0,R.useDirection)(c),g=(0,o.composeEventHandlers)(e.onKeyDown,e=>
1{if(!P.includes(e.key))return;let t=e.target,n=f().filter(e=>!e.ref.current?.disabled),a=n.findIndex(e=>e.ref.current===t),r=n.length;if(-1===a)return;e.preventDefault();let s=a,o=r-1,i=()=>{(s=a+1)>o&&(s=0)},l=()=>{(s=a-1)<0&&(s=o)};switch(e.key){case"Home":s=0;break;case"End":s=o;break;case"ArrowRight":"horizontal"===d&&(m?i():l());break;case"ArrowDown":"vertical"===d&&i();break;case"ArrowLeft":"horizontal"===d&&(m?l():i());break;case"ArrowUp":"vertical"===d&&l()}let c=s%r;n[c].ref.current?.focus()});return(0,t.jsx)(G,{scope:r,disabled:i,direction:c,orientation:d,children:(0,t.jsx)(k.Slot,{scope:r,children:(0,t.jsx)(l.Primitive.div,{...u,"data-orientation":d,ref:p,onKeyDown:i?void 0:g})})})}),B="AccordionItem",[H,z]=_(B),F=n.default.forwardRef((e,n)=>{let{__scopeAccordion:a,value:r,...s}=e,o=q(B,a),i=T(B,a),l=E(a),c=(0,u.useId)(),d=r&&i.value.includes(r)||!1,h=o.disabled||e.disabled;return(0,t.jsx)(H,{scope:a,open:d,disabled:h,triggerId:c,children:(0,t.jsx)(b,{"data-orientation":o.orientation,"data-state":Z(d),...l,...s,ref:n,disabled:h,open:d,onOpenChange:e=>{e?i.onItemOpen(r):i.onItemClose(r)}})})});F.displayName=B;var V="AccordionHeader",K=n.default.forwardRef((e,n)=>{let{__scopeAccordion:a,...r}=e,s=q(S,a),o=z(V,a);return(0,t.jsx)(l.Primitive.h3,{"data-orientation":s.orientation,"data-state":Z(o.open),"data-disabled":o.disabled?"":void 0,...r,ref:n})});K.displayName=V;var W="AccordionTrigger",J=n.default.forwardRef((e,n)=>{let{__scopeAccordion:a,...r}=e,s=q(S,a),o=z(W,a),i=Y(W,a),l=E(a);return(0,t.jsx)(k.ItemSlot,{scope:a,children:(0,t.jsx)(v,{"aria-disabled":o.open&&!i.collapsible||void 0,"data-orientation":s.orientation,id:o.triggerId,...l,...r,ref:n})})});J.displayName=W;var Q="AccordionContent",X=n.default.forwardRef((e,n)=>{let{__scopeAccordion:a,...r}=e,s=q(S,a),o=z(Q,a),i=E(a);return(0,t.jsx)(y,{role:"region","aria-labelledby":o.triggerId,"data-orientation":s.orientation,...i,...r,ref:n,style:{"--radix-accordion-content-height":"var(--radix-collapsible-content-height)","--radix-accordion-content-width":"var(--radix-collapsible-content-width)",...e.style}})});function Z(e){return e?"open":"closed"}X.displayName=Q;var ee=e.i(664659),et=e.i(152236);let en=n.forwardRef(({className:e,...n},a)=>(0,t.jsx)(F,{ref:a,className:(0,et.cn)("border-b last:border-b-0",e),...n}));en.displayName="AccordionItem";let ea=n.forwardRef(({className:e,children:n,...a},r)=>(0,t.jsx)(K,{className:"flex",children:(0,t.jsxs)(J,{ref:r,className:(0,et.cn)("flex flex-1 items-center justify-between gap-4 py-3 text-left font-medium text-deep transition-colors hover:text-accent-gold [&[data-state=open]>svg]:rotate-180",e),...a,children:[n,(0,t.jsx)(ee.ChevronDown,{className:"h-4 w-4 shrink-0 text-muted-foreground transition-transform duration-200"})]})}));ea.displayName="AccordionTrigger";let er=n.forwardRef(({className:e,children:n,...a},r)=>(0,t.jsx)(X,{ref:r,className:(0,et.cn)("overflow-hidden text-sm data-[state=closed]:animate-accordion-up data-[state=open]:animate-accordion-down",e),...a,children:(0,t.jsx)("div",{className:"pb-3 pt-2",children:n})}));er.displayName="AccordionContent",e.s(["Accordion",0,O,"AccordionContent",0,er,"AccordionItem",0,en,"AccordionTrigger",0,ea],791200)},908235,e=>{"use strict";let t="RPL 226-b does not apply to public housing and other units with constitutional or statutory admission criteria, or to co-op proprietary leases.";e.s(["APPLICATION_FEE_RULE",0,{sentence:"For an ordinary rental application, New York Real Property Law Section 238-a bars any fee for the processing, review, or acceptance of the application, other than fees a separate statute or regulation authorizes (such as entrance fees at continuing care, assisted living, adult care, or certain senior residential communities); the only charge a landlord may otherwise collect is for a background and credit check, capped at the actual cost or $20 combined, whichever is less, waived if the applicant provides a copy from the past 30 days, and conditioned on giving the applicant a copy of the check results and the screening provider's receipt or invoice.",scopeSentence:"RPL 238-a preserves fees a statute or regulation separately authorizes, including entrance fees at continuing care, assisted living, adult care, and certain senior residential communities.",sourceUrl:"https://www.nysenate.gov/legislation/laws/RPP/238-A",cite:"NY RPL 238-a(1)(a)-(b) (HSTPA 2019)",verified:"2026-07-15"},"ASSIGNMENT_RULE",0,{consentClause:"requires the landlord's written consent, which the landlord may withhold without cause regardless of building size (unless the lease itself grants a greater r
1ight to assign); this does not apply to public housing, other units with constitutional or statutory admission criteria, or co-op proprietary leases",remedySentence:"If consent is unreasonably withheld, the tenant's remedy is a release from the lease on 30 days notice, not a right to assign (New York Real Property Law Section 226-b(1)).",scopeSentence:t,sourceUrl:"https://www.nysenate.gov/legislation/laws/RPP/226-B",cite:"NY RPL 226-b(1), (3)",verified:"2026-07-15"},"CONSENT_VS_RELEASE",0,{sentence:"Landlord consent to an assignment does not by itself end the original tenant's liability; a signed written release does.",sourceUrl:"https://www.nysenate.gov/legislation/laws/RPP/226-B",cite:"NY RPL 226-b + common-law privity of contract",verified:"2026-07-14"},"COOP_PURCHASE_CARVE_OUT",0,{clause:"a cooperative housing corporation may charge a prospective purchaser or shareholder applicant only fees needed to compensate its managing or transfer agent, while background and credit checks remain capped at their actual cost",phflSentence:"Co-ops financed under certain state housing programs (Private Housing Finance Law cooperatives) are not subject to the ordinary $20/actual-cost cap at all: their fees must instead be reasonable and approved by the agency supervising the cooperative.",notCondoSentence:"This is not a general exception for co-op or condo buildings: renting a unit in a condo or co-op building still gets the rental protections of RPL Section 238-a.",sourceUrl:"https://www.nysenate.gov/legislation/laws/RPP/238-A",cite:"NY RPL 238-a(1)(a)",verified:"2026-07-14"},"GOOD_CAUSE_ANNUAL_PUBLISHER",0,{clause:"HCR (NYS Homes and Community Renewal) publishes the current figure each year",sourceUrl:"https://hcr.ny.gov/good-cause-eviction",verified:"2026-07-15"},"GOOD_CAUSE_SMALL_LANDLORD",0,{thresholdClause:"10 or fewer residential units in New York",countClause:"the statute counts every unit the landlord owns or beneficially owns, directly or indirectly, under RPL 211 - including units in a building the landlord lives in",sourceUrl:"https://www.nysenate.gov/legislation/laws/RPP/211",cite:"NY RPL 211(3); disclosure carve-out in RPL 214",verified:"2026-07-14"},"GOOD_CAUSE_SUBLET_EXEMPTION",0,{clause:"sublets where the sublessor seeks in good faith to recover the apartment for their own personal use",sourceUrl:"https://www.nysenate.gov/legislation/laws/RPP/214",cite:"NY RPL 214(3)",verified:"2026-07-14"},"NYCHVS_2021",0,{rentStabilizedUnits:1006e3,rentControlledUnits:16400,sourceUrl:"https://www.nyc.gov/assets/hpd/downloads/pdfs/services/2021-nychvs-selected-initial-findings.pdf",cite:"2021 NYC Housing and Vacancy Survey",verified:"2026-07-14"},"OVERCHARGE_LOOKBACK",0,{sentence:"Under CPLR § 213-a, a rent-overcharge claim may be filed at any time; the six-year lookback period limits how far back damages and penalties can be recovered, not the right to bring the claim.",sourceUrl:"https://www.nysenate.gov/legislation/laws/CVP/213-A",cite:"NY CPLR 213-a",verified:"2026-07-15"},"RENT_CONTROL_DEFINITION",0,{clause:"a tenant has occupied continuously since before July 1, 1971, or a lawful successor has since taken over the tenancy (typically pre-1947 buildings)",sourceUrl:"https://rentguidelinesboard.cityofnewyork.us/resources/faqs/rent-control/",cite:"NYC Rent Guidelines Board rent-control FAQ",verified:"2026-07-15"},"SECURITY_DEPOSIT_CAP",0,{sentence:"New York law caps security deposits at one month's rent for most residential rentals: General Obligations Law Section 7-108 covers most units, and Section 7-107 applies the same one-month cap to rent-stabilized and ETPA-covered units. Rent-controlled units and certain care and retirement communities are excluded from that one-month cap, and seasonal-use units and owner-occupied co-op apartments have separate rules.",clause:"capped at one month's rent for most residential rentals (New York General Obligations Law Sections 7-107 and 7-108)",sourceUrl:"https://www.nysenate.gov/legislation/laws/GOB/7-108",source7107Url:"https://www.nysenate.gov/legislation/laws/GOB/7-107",cite:"NY GOL 7-108(1-a) (HSTPA 2019); GOL 7-107(2) (extended to stabilized/ETPA units by Ch. 436 of 2025 / S952)",verified:"2026-07-15"},"STABILIZATION_COVERAGE",0,{windowClause:"buildings of 6 or more units built between February 1, 1947 and December 31, 1973",pathwayClause:"tenants in buildings built before February 1, 1947 who moved in after June 30, 1971",taxBenefitClause:"certain tax-benefit buildings (421-a, J-51, and others)",windowAndPathwaySentence:"Buildings of 6 or more units built between February 1, 1947 and December 31, 1973 are generally rent-stabilized, and tenants in buildings built before February 1, 1947 who moved in after June 30, 1971 are generally covered too.",sourceUrl:"https://hcr.ny.gov/rent-stabilization-and-emergency-tenant-protection-act",cite:"NYS HCR, Rent Stabilization and the Emergency Tenant Protection Act",verified:"2026-07-14"},"SUBLET_RULE",0,{sentence:"Under New York Real Property Law Section 226-b(2), a tenant renting pursuant to an existing lease in a building with four or more units generally has the right to sublet with the landlord's written consent, which the landlord cannot unreasonably with
1hold (the section does not cover public housing, other units with constitutional or statutory admission criteria, or co-op proprietary leases).",scopeSentence:t,sourceUrl:"https://www.nysenate.gov/legislation/laws/RPP/226-B",cite:"NY RPL 226-b(2)(a), (3)",verified:"2026-07-15"}])},664659,e=>{"use strict";let t=(0,e.i(475254).default)("chevron-down",[["path",{d:"m6 9 6 6 6-6",key:"qrunsl"}]]);e.s(["ChevronDown",0,t],664659)},90317,(e,t,n)=>{"use strict";Object.defineProperty(n,"__esModule",{value:!0});var a={bindSnapshot:function(){return c},createAsyncLocalStorage:function(){return l},createSnapshot:function(){return d}};for(var r in a)Object.defineProperty(n,r,{enumerable:!0,get:a[r]});let s=Object.defineProperty(Error("Invariant: AsyncLocalStorage accessed in runtime where it is not available"),"__NEXT_ERROR_CODE",{value:"E504",enumerable:!1,configurable:!0});class o{disable(){throw s}getStore(){}run(){throw s}exit(){throw s}enterWith(){throw s}static bind(e){return e}}let i="u">typeof globalThis&&globalThis.AsyncLocalStorage;function l(){return i?new i:new o}function c(e){return i?i.bind(e):o.bind(e)}function d(){return i?i.snapshot():function(e,...t){return e(...t)}}},242344,(e,t,n)=>{"use strict";Object.defineProperty(n,"__esModule",{value:!0}),Object.defineProperty(n,"workAsyncStorageInstance",{enumerable:!0,get:function(){return a}});let a=(0,e.r(90317).createAsyncLocalStorage)()},563599,(e,t,n)=>{"use strict";Object.defineProperty(n,"__esModule",{value:!0}),Object.defineProperty(n,"workAsyncStorage",{enumerable:!0,get:function(){return a.workAsyncStorageInstance}});let a=e.r(242344)},309885,(e,t,n)=>{"use strict";function a(e){return e.split("/").map(e=>encodeURIComponent(e)).join("/")}Object.defineProperty(n,"__esModule",{value:!0}),Object.defineProperty(n,"encodeURIPath",{enumerable:!0,get:function(){return a}})},667585,(e,t,n)=>{"use strict";Object.defineProperty(n,"__esModule",{value:!0}),Object.defineProperty(n,"BailoutToCSR",{enumerable:!0,get:function(){return r}});let a=e.r(132061);function r({reason:e,children:t}){if("u"<typeof window)throw Object.defineProperty(new a.BailoutToCSRError(e),"__NEXT_ERROR_CODE",{value:"E394",enumerable:!1,configurable:!0});return t}},652157,(e,t,n)=>{"use strict";Object.defineProperty(n,"__esModule",{value:!0}),Object.defineProperty(n,"PreloadChunks",{enumerable:!0,get:function(){return l}});let a=e.r(843476),r=e.r(174080),s=e.r(563599),o=e.r(309885),i=e.r(543369);function l({moduleIds:e}){if("u">typeof window)return null;let t=s.workAsyncStorage.getStore();if(void 0===t)return null;let n=[];if(t.reactLoadableManifest&&e){let a=t.reactLoadableManifest;for(let t of e){if(!a[t])continue;let e=a[t].files;n.push(...e)}}if(0===n.length)return null;let c=(0,i.getAssetTokenQuery)();return(0,a.jsx)(a.Fragment,{children:n.map(e=>{let n=`${t.assetPrefix}/_next/${(0,o.encodeURIPath)(e)}${c}`;return e.endsWith(".css")?(0,a.jsx)("link",{precedence:"dynamic",href:n,rel:"stylesheet",as:"style",nonce:t.nonce},e):((0,r.preload)(n,{as:"script",fetchPriority:"low",nonce:t.nonce}),null)})})}},869093,(e,t,n)=>{"use strict";Object.defineProperty(n,"__esModule",{value:!0}),Object.defineProperty(n,"default",{enumerable:!0,get:function(){return c}});let a=e.r(843476),r=e.r(271645),s=e.r(667585),o=e.r(652157);function i(e){return{default:e&&"default"in e?e.default:e}}let l={loader:()=>Promise.resolve(i(()=>null)),loading:null,ssr:!0},c=function(e){let t={...l,...e},n=(0,r.lazy)(()=>t.loader().then(i)),c=t.loading;function d(e){let i=c?(0,a.jsx)(c,{isLoading:!0,pastDelay:!0,error:null}):null,l=!t.ssr||!!t.loading,d=l?r.Suspense:r.Fragment,u=t.ssr?(0,a.jsxs)(a.Fragment,{children:["u"<typeof window?(0,a.jsx)(o.PreloadChunks,{moduleIds:t.modules}):null,(0,a.jsx)(n,{...e})]}):(0,a.jsx)(s.BailoutToCSR,{reason:"next/dynamic",children:(0,a.jsx)(n,{...e})});return(0,a.jsx)(d,{...l?{fallback:i}:{},children:u})}return d.displayName="LoadableComponent",d}},770703,(e,t,n)=>{"use strict";Object.defineProperty(n,"__esModule",{value:!0}),Object.defineProperty(n,"default",{enumerable:!0,get:function(){return r}});let a=e.r(555682)._(e.r(869093));function r(e,t){let n={};"function"==typeof e&&(n.loader=e);let r={...n,...t};return(0,a.default)({...r,modules:r.loadableGenerated?.modules})}("function"==typeof n.default||"object"==typeof n.default&&null!==n.default)&&void 0===n.default.__esModule&&(Object.defineProperty(n.default,"__esMo
1dule",{value:!0}),Object.assign(n.default,n),t.exports=n.default)}]);

Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.