1"use strict";(globalThis.webpackChunk_atlas_docs_zen=globalThis.webpackChunk_atlas_docs_zen||[]).push([[37],{450(e,n,t){t.r(n),t.d(n,{assets:()=>d,contentTitle:()=>a,default:()=>c,frontMatter:()=>o,metadata:()=>s,toc:()=>l});const s=JSON.parse('{"id":"integrations/anything","title":"Anything","description":"Add the AddressZen Address Lookup to an Anything (Create Anything) app.","source":"@site/docs/integrations/anything.mdx","sourceDirName":"integrations","slug":"/integrations/anything","permalink":"/docs/integrations/anything","draft":false,"unlisted":false,"tags":[],"version":"current","frontMatter":{"title":"Anything","sidebar_label":"Anything","description":"Add the AddressZen Address Lookup to an Anything (Create Anything) app."},"sidebar":"integrations","previous":{"title":"Leap.new","permalink":"/docs/integrations/leap-new"},"next":{"title":"shadcn registry","permalink":"/docs/integrations/shadcn"}}');var r=t(5723),i=t(4056);const o={title:"Anything",sidebar_label:"Anything",description:"Add the AddressZen Address Lookup to an Anything (Create Anything) app."},a="Anything",d={},l=[{value:"What you'll add",id:"what-youll-add",level:2},{value:"1. Get an API key",id:"1-get-an-api-key",level:2},{value:"2. Store the key in Anything",id:"2-store-the-key-in-anything",level:2},{value:"3. Starter prompt",id:"3-starter-prompt",level:2},{value:"4. Lock down your API Key",id:"4-lock-down-your-api-key",level:2},{value:"Need help?",id:"need-help",level:2}];function h(e){const n={a:"a",code:"code",h1:"h1",h2:"h2",header:"header",li:"li",ol:"ol",p:"p",pre:"pre",strong:"strong",ul:"ul",...(0,i.R)(),...e.components};return(0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)("img",{className:"page-icon",src:"/img/icons/integrations/anything.svg",alt:"",width:"64",height:"64"}),"\n",(0,r.jsx)(n.header,{children:(0,r.jsx)(n.h1,{id:"anything",children:"Anything"})}),"\n",(0,r.jsxs)(n.p,{children:['Anything (also called "Create Anything") builds web apps from a chat prompt. You\'ll add the AddressZen Address Lookup with our ',(0,r.jsx)(n.a,{href:"/docs/address-lookup/react",children:"React component"}),". Keep your API key in Anything's ",(0,r.jsx)(n.strong,{children:"Saved Secrets"}),", never pasted into the chat."]}),"\n",(0,r.jsx)(n.h2,{id:"what-youll-add",children:"What you'll add"}),"\n",(0,r.jsxs)(n.p,{children:["The ",(0,r.jsx)(n.a,{href:"/docs/address-lookup",children:"AddressZen Address Lookup"})," on any address form in your Anything app, via its ",(0,r.jsx)(n.a,{href:"/docs/address-lookup/react",children:"React component"}),"."]}),"\n",(0,r.jsx)(n.h2,{id:"1-get-an-api-key",children:"1. Get an API key"}),"\n",(0,r.jsxs)(n.ul,{children:["\n",(0,r.jsxs)(n.li,{children:["Quick test: paste ",(0,r.jsx)(n.code,{children:"ak_test"})," as your key. Capped at 5 lookups/day. Will break in production."]}),"\n",(0,r.jsxs)(n.li,{children:["Real key: ",(0,r.jsx)(n.a,{href:"https://account.addresszen.com/users/sign_up",children:"sign up"})," for a free trial balance."]}),"\n"]}),"\n",(0,r.jsx)(n.h2,{id:"2-store-the-key-in-anything",children:"2. Store the key in Anything"}),"\n",(0,r.jsx)(n.p,{children:"In your Anything project:"}),"\n",(0,r.jsxs)(n.ol,{children:["\n",(0,r.jsxs)(n.li,{children:["Open ",(0,r.jsx)(n.strong,{children:"Project Settings"})," \u2192 ",(0,r.jsx)(n.strong,{children:"Saved Secrets"}),"."]}),"\n",(0,r.jsxs)(n.li,{children:["Click ",(0,r.jsx)(n.strong,{children:"Add a new secret"}),"."]}),"\n",(0,r.jsxs)(n.li,{children:["Name it ",(0,r.jsx)(n.code,{children:"ADDRESSZEN_API_KEY"})," (use this exact name \u2014 the prompt below references it)."]}),"\n",(0,r.jsxs)(n.li,{children:["Paste your ",(0,r.jsx)(n.code,{children:"ak_\u2026"})," key and save."]}),"\n"]}),"\n",(0,r.jsx)(n.p,{children:"The Address Lookup widget runs in the browser, so the key needs to reach client code. The cleanest pattern on Anything is a thin backend function that reads the secret and returns it \u2014 the prompt below tells the agent to set that up."}),"\n",(0,r.jsx)(n.h2,{id:"3-starter-prompt",children:"3. Starter prompt"}),"\n",(0,r.jsxs)(n.p,{children:["Paste this into the builder. It points the agent at a ",(0,r.jsx)(n.a,{href:"/docs/integrations/anything-prompt",children:"reference page"})," carrying the React-specific integration rules, so the prompt itself stays short:"]}),"\n",(0,r.jsx)(n.pre,{children:(0,r.jsx)(n.code,{className:"language-text",children:"Find every address form in this app and list them, then ask me to\nconfirm which ones should get the AddressZen Address Lookup. Add it\nto the forms I confirm using the AddressZen React component\n(@addresszen/react).\n\nThis is a React app. Fetch and follow the integration rules at:\nhttps://docs.addresszen.com/docs/integrations/anything-prompt.md\n\nRead the API key from the ADDRESSZEN_API_KEY Saved Secret via a backend\nfunction. Do not hardcode it.\n"})}),"\n",(0,r.jsxs)(n.p,{children:["The full rule set lives at ",(0,r.jsx)(n.a,{href:"/docs/integrations/anything-prompt",children:"Anything integration rules"})," if you want to read it yourself."]}
1),"\n",(0,r.jsx)(n.h2,{id:"4-lock-down-your-api-key",children:"4. Lock down your API Key"}),"\n",(0,r.jsxs)(n.ol,{children:["\n",(0,r.jsxs)(n.li,{children:["When you're ready to go live, apply the appropriate ",(0,r.jsx)(n.a,{href:"/docs/guides/api-key-secure#allow-urls",children:"Allow URLs"})," setting to your key."]}),"\n",(0,r.jsxs)(n.li,{children:["Add the origins your app runs on, e.g. ",(0,r.jsx)(n.code,{children:"*.created.app"})," (preview), ",(0,r.jsx)(n.code,{children:"localhost"})," (development), and ",(0,r.jsx)(n.code,{children:"*.yourdomain.com"})," (production)."]}),"\n"]}),"\n",(0,r.jsx)(n.h2,{id:"need-help",children:"Need help?"}),"\n",(0,r.jsxs)(n.ul,{children:["\n",(0,r.jsxs)(n.li,{children:["File an issue: ",(0,r.jsx)(n.a,{href:"https://github.com/addresszen/feedback/issues",children:"github.com/addresszen/feedback"})]}),"\n",(0,r.jsxs)(n.li,{children:["Email: ",(0,r.jsx)(n.a,{href:"mailto:[email protected]",children:"[email protected]"})]}),"\n"]})]})}function c(e={}){const{wrapper:n}={...(0,i.R)(),...e.components};return n?(0,r.jsx)(n,{...e,children:(0,r.jsx)(h,{...e})}):h(e)}},4056(e,n,t){t.d(n,{R:()=>o,x:()=>a});var s=t(2155);const r={},i=s.createContext(r);function o(e){const n=s.useContext(i);return s.useMemo(function(){return"function"==typeof e?e(n):{...n,...e}},[n,e])}function a(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.components(r):e.components||r:o(e.components),s.createElement(i.Provider,{value:n},e.children)}}}]);
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.