[{"data":1,"prerenderedAt":2221},["ShallowReactive",2],{"wrun-open-editor-url":3,"indicators:sharing/access-keys-and-api":4},"https://openmarket.xyz/chart/#wrun-open=v1",{"slug":5,"filePath":6,"frontmatter":7,"rawMarkdown":12,"tree":13},"sharing/access-keys-and-api","sharing/access-keys-and-api.md",{"title":8,"description":9,"order":10,"section":11},"Access keys and the API","Let your own site keep the people list: an access key lets your server add and remove people on one Invite only indicator as they pay and cancel.",63,"sharing","---\ntitle: \"Access keys and the API\"\ndescription: \"Let your own site keep the people list: an access key lets your server add and remove people on one Invite only indicator as they pay and cancel.\"\norder: 63\nsection: \"sharing\"\n---\n\n\u003C!-- source: docs/indicators/sharing/access-keys-and-api.md; generated by packages/cli/scripts/gen-indicator-docs.ts, do not edit -->\n\n# Access keys and the API\n\nLet your own site keep the people list: an access key lets your server add and remove people on one Invite only indicator as they pay and cancel.\n\n## Make a key\n\nIn the People panel's corner menu, **Access key** opens the key sheet. Give\nthe key a label (where it lives: your site, a script) and press **Create\nkey**.\n\n- The key belongs to your account and to this one indicator. It can add,\n  remove and list people there, and nothing else.\n- It is shown once. Copy it into your server's secret store.\n- **Revoke** stops it at once: calls with it fail from then on.\n- Make as many as you need, one per system, so each can be revoked on its\n  own.\n\nKeep the key on your server. Never put it in a web page, an app or a\npublic repository.\n\n## The calls\n\nEvery call goes to your indicator's address on the registry and carries\nthe key as a bearer token:\n\n```text\nBase URL       https://registry.openmarket.xyz/v1/packages/@you/your-indicator\nAuthorization  Bearer \u003Caccess key>\n\nPUT     /access/\u003Cusername>     add someone, or change their end date\nDELETE  /access/\u003Cusername>     remove someone\nGET     /access/\u003Cusername>     check one person\nGET     /access                everyone with access, a page at a time\nPOST    /access/batch          up to 500 adds and removes in one call\nPOST    /access/links/batch    a personal link for each of your members\nGET     /access/links.csv      the personal links nobody has opened yet\n```\n\n`@you/your-indicator` is your indicator's full name: your username, then\nthe name you published it under. The key sheet shows the address under\n**Calls go to**.\n\n## Add someone\n\n```text\ncurl -X PUT \"https://registry.openmarket.xyz/v1/packages/@you/your-indicator/access/maya\" \\\n  -H \"Authorization: Bearer $ACCESS_KEY\" \\\n  -H \"Content-Type: application/json\" \\\n  -d '{\"until\": \"2027-01-01T00:00:00Z\"}'\n```\n\nThe body is optional: leave it out and access has no end date. A second\nPUT replaces the end date, so a renewal sends the new one. The answer is\n`200` with the person's row:\n\n```json\n{\n  \"username\": \"maya\",\n  \"account_id\": \"\u003Caccount id>\",\n  \"until\": \"2027-01-01T00:00:00Z\",\n  \"since\": \"2026-10-05T09:12:33Z\",\n  \"via\": \"api\"\n}\n```\n\nKeep the `account_id`. It still finds the person after they rename their\naccount.\n\n## Remove someone\n\n```text\ncurl -X DELETE \"https://registry.openmarket.xyz/v1/packages/@you/your-indicator/access/maya\" \\\n  -H \"Authorization: Bearer $ACCESS_KEY\"\n```\n\nThe answer is `204` whether or not they were on the list, so a\ncancellation that arrives twice does no harm.\n\n## Check and list\n\n`GET /access/\u003Cusername>` answers `200` with the person's row, or `404`\nwhen they are not on the list.\n\n`GET /access` reads everyone, 50 rows a page by default and up to 200 with\n`limit`. Pass a page's `next_cursor` back as `cursor` to read the next\none. `q` filters by name, and `view` picks `all`, `ending` (access ending\nsoon) or `waiting` (personal links nobody has opened yet).\n\n```text\ncurl \"https://registry.openmarket.xyz/v1/packages/@you/your-indicator/access?limit=200&view=all\" \\\n  -H \"Authorization: Bearer $ACCESS_KEY\"\n```\n\n## Many at once\n\n`POST /access/batch` takes up to 500 adds and removes in one call: the\nfirst import of your member list, or a nightly check that the list still\nmatches yours. Each `add` row works like a PUT (an `until` of `null` means\nno end date), and each `remove` like a DELETE.\n\n```text\ncurl -X POST \"https://registry.openmarket.xyz/v1/packages/@you/your-indicator/access/batch\" \\\n  -H \"Authorization: Bearer $ACCESS_KEY\" \\\n  -H \"Content-Type: application/json\" \\\n  -d '{\"add\":[{\"subject\":\"maya\",\"until\":null}],\"remove\":[\"sam\"]}'\n```\n\n## Personal links\n\nA member with no OpenMarket account yet gets a personal link instead. Ask\nfor one per member, keyed by your own id for them:\n\n```text\ncurl -X POST \"https://registry.openmarket.xyz/v1/packages/@you/your-indicator/access/links/batch\" \\\n  -H \"Authorization: Bearer $ACCESS_KEY\" \\\n  -H \"Content-Type: application/json\" \\\n  -d '{\"links\":[{\"ref\":\"member-1042\",\"until\":null}]}'\n```\n\nSend each member their link yourself. When they open it, they sign in or\nsign up and get access. `GET /access/links.csv` downloads the links nobody\nhas opened yet.\n\n## Naming a person\n\nWherever a call takes a username, it also takes two other forms. In a\nbatch they go in `subject`.\n\n| You write | Means |\n| --- | --- |\n| `maya` | an OpenMarket username |\n| `id:\u003Caccount id>` | the `account_id` a call returned; it still works after a rename |\n| `ref:\u003Cyour reference>` | your own id for a member you sent a personal link |\n\n## Errors\n\nAn error comes back as `{\"error\": {\"code\": \"...\", \"message\": \"...\"}}`:\n\n| Status | Code | What it means |\n| --- | --- | --- |\n| 404 | `user_not_found` | No one on OpenMarket has that username. |\n| 422 | `not_invite_only` | The indicator is not Invite only. |\n| 403 | `fair_use` | The Protected indicator is at 1,000 people ([Fair use](overview.md#fair-use)). |\n| 429 | `rate_limited` | More than 600 writes in a minute on this key. Wait the seconds the `retry-after` header names. |\n\n## Wire it to your billing\n\nTwo calls cover a membership, keyed by the OpenMarket username you collect\nat checkout:\n\n- **On signup**, `PUT /access/\u003Cusername>`, with `until` set to the date\n  they have paid through. Send it again on each renewal, and access lapses\n  on its own if a renewal never comes.\n- **On cancellation or refund**, `DELETE /access/\u003Cusername>`.\n\nNo username at checkout? Make each customer a personal link instead, and\nsend it with your welcome email.\n\nSelling through Whop, or behind a paid Discord role?\n[Connect Discord or Whop](connect-discord-or-whop.md) has a small script for\neach.\n\nSelling with Stripe, on Patreon or through a paid Telegram group?\n[Ready-made recipes](recipes.md) has a complete file for each, ready to run.\n\nWebhooks get missed now and then. A nightly batch that compares the list\nwith your own member table catches whatever slipped through.\n",{"type":14,"children":15,"data":2214,"position":2216},"root",[16,26,29,30,46,47,65,66,130,131,222,223,239,240,255,256,272,273,379,380,427,428,443,444,488,489,523,524,662,663,696,697,712,713,739,740,774,775,790,791,857,858,1038,1039,1064,1065,1080,1081,1184,1185,1227,1228,1243,1244,1259,1260,1302,1303,1337,1338,1353,1354,1387,1389,1580,1581,1596,1597,1630,1632,1953,1954,1969,1970,1985,1986,2106,2107,2123,2124,2161,2162,2198,2199],{"type":17,"value":18,"position":19},"comment"," source: docs/indicators/sharing/access-keys-and-api.md; generated by packages/cli/scripts/gen-indicator-docs.ts, do not edit ",{"start":20,"end":23},{"line":21,"column":21,"offset":22},1,0,{"line":21,"column":24,"offset":25},134,133,{"type":27,"value":28},"text","\n",{"type":27,"value":28},{"type":31,"tagName":32,"properties":33,"children":34,"position":43},"element","p",{},[35],{"type":27,"value":9,"position":36},{"start":37,"end":40},{"line":38,"column":21,"offset":39},5,162,{"line":38,"column":41,"offset":42},146,307,{"start":44,"end":45},{"line":38,"column":21,"offset":39},{"line":38,"column":41,"offset":42},{"type":27,"value":28},{"type":31,"tagName":48,"properties":49,"children":50,"position":61},"h2",{},[51],{"type":27,"value":52,"position":53},"Make a key",{"start":54,"end":58},{"line":55,"column":56,"offset":57},7,4,312,{"line":55,"column":59,"offset":60},14,322,{"start":62,"end":64},{"line":55,"column":21,"offset":63},309,{"line":55,"column":59,"offset":60},{"type":27,"value":28},{"type":31,"tagName":32,"properties":67,"children":68,"position":127},{},[69,78,96,104,121],{"type":27,"value":70,"position":71},"In the People panel's corner menu, ",{"start":72,"end":75},{"line":73,"column":21,"offset":74},9,324,{"line":73,"column":76,"offset":77},36,359,{"type":31,"tagName":79,"properties":80,"children":81,"position":91},"strong",{},[82],{"type":27,"value":83,"position":84},"Access key",{"start":85,"end":88},{"line":73,"column":86,"offset":87},38,361,{"line":73,"column":89,"offset":90},48,371,{"start":92,"end":93},{"line":73,"column":76,"offset":77},{"line":73,"column":94,"offset":95},50,373,{"type":27,"value":97,"position":98}," opens the key sheet. Give\nthe key a label (where it lives: your site, a script) and press ",{"start":99,"end":100},{"line":73,"column":94,"offset":95},{"line":101,"column":102,"offset":103},10,65,464,{"type":31,"tagName":79,"properties":105,"children":106,"position":116},{},[107],{"type":27,"value":108,"position":109},"Create\nkey",{"start":110,"end":113},{"line":101,"column":111,"offset":112},67,466,{"line":114,"column":56,"offset":115},11,476,{"start":117,"end":118},{"line":101,"column":102,"offset":103},{"line":114,"column":119,"offset":120},6,478,{"type":27,"value":122,"position":123},".",{"start":124,"end":125},{"line":114,"column":119,"offset":120},{"line":114,"column":55,"offset":126},479,{"start":128,"end":129},{"line":73,"column":21,"offset":74},{"line":114,"column":55,"offset":126},{"type":27,"value":28},{"type":31,"tagName":132,"properties":133,"children":134,"position":219},"ul",{},[135,136,153,154,170,171,201,202,218],{"type":27,"value":28},{"type":31,"tagName":137,"properties":138,"children":139,"position":149},"li",{},[140],{"type":27,"value":141,"position":142},"The key belongs to your account and to this one indicator. It can add,\nremove and list people there, and nothing else.",{"start":143,"end":147},{"line":144,"column":145,"offset":146},13,3,483,{"line":59,"column":94,"offset":148},603,{"start":150,"end":152},{"line":144,"column":21,"offset":151},481,{"line":59,"column":94,"offset":148},{"type":27,"value":28},{"type":31,"tagName":137,"properties":155,"children":156,"position":166},{},[157],{"type":27,"value":158,"position":159},"It is shown once. Copy it into your server's secret store.",{"start":160,"end":163},{"line":161,"column":145,"offset":162},15,606,{"line":161,"column":164,"offset":165},61,664,{"start":167,"end":169},{"line":161,"column":21,"offset":168},604,{"line":161,"column":164,"offset":165},{"type":27,"value":28},{"type":31,"tagName":137,"properties":172,"children":173,"position":197},{},[174,190],{"type":31,"tagName":79,"properties":175,"children":176,"position":185},{},[177],{"type":27,"value":178,"position":179},"Revoke",{"start":180,"end":183},{"line":181,"column":38,"offset":182},16,669,{"line":181,"column":114,"offset":184},675,{"start":186,"end":188},{"line":181,"column":145,"offset":187},667,{"line":181,"column":144,"offset":189},677,{"type":27,"value":191,"position":192}," stops it at once: calls with it fail from then on.",{"start":193,"end":194},{"line":181,"column":144,"offset":189},{"line":181,"column":195,"offset":196},64,728,{"start":198,"end":200},{"line":181,"column":21,"offset":199},665,{"line":181,"column":195,"offset":196},{"type":27,"value":28},{"type":31,"tagName":137,"properties":203,"children":204,"position":214},{},[205],{"type":27,"value":206,"position":207},"Make as many as you need, one per system, so each can be revoked on its\nown.",{"start":208,"end":211},{"line":209,"column":145,"offset":210},17,731,{"line":212,"column":55,"offset":213},18,809,{"start":215,"end":217},{"line":209,"column":21,"offset":216},729,{"line":212,"column":55,"offset":213},{"type":27,"value":28},{"start":220,"end":221},{"line":144,"column":21,"offset":151},{"line":212,"column":55,"offset":213},{"type":27,"value":28},{"type":31,"tagName":32,"properties":224,"children":225,"position":236},{},[226],{"type":27,"value":227,"position":228},"Keep the key on your server. Never put it in a web page, an app or a\npublic repository.",{"start":229,"end":232},{"line":230,"column":21,"offset":231},20,811,{"line":233,"column":234,"offset":235},21,19,898,{"start":237,"end":238},{"line":230,"column":21,"offset":231},{"line":233,"column":234,"offset":235},{"type":27,"value":28},{"type":31,"tagName":48,"properties":241,"children":242,"position":251},{},[243],{"type":27,"value":244,"position":245},"The calls",{"start":246,"end":249},{"line":247,"column":56,"offset":248},23,903,{"line":247,"column":144,"offset":250},912,{"start":252,"end":254},{"line":247,"column":21,"offset":253},900,{"line":247,"column":144,"offset":250},{"type":27,"value":28},{"type":31,"tagName":32,"properties":257,"children":258,"position":269},{},[259],{"type":27,"value":260,"position":261},"Every call goes to your indicator's address on the registry and carries\nthe key as a bearer token:",{"start":262,"end":265},{"line":263,"column":21,"offset":264},25,914,{"line":266,"column":267,"offset":268},26,27,1012,{"start":270,"end":271},{"line":263,"column":21,"offset":264},{"line":266,"column":267,"offset":268},{"type":27,"value":28},{"type":14,"children":274},[275],{"type":31,"tagName":276,"properties":277,"children":281,"data":-1},"pre",{"class":278,"style":279,"tabindex":280},"shiki shiki-themes github-dark github-light","--shiki-dark:#e1e4e8;--shiki-light:#24292e;--shiki-dark-bg:#24292e;--shiki-light-bg:#fff","0",[282],{"type":31,"tagName":283,"properties":284,"children":287},"code",{"class":285},[286],"language-text",[288,298,299,307,308,316,317,325,326,334,335,343,344,352,353,361,362,370,371],{"type":31,"tagName":289,"properties":290,"children":292},"span",{"class":291},"line",[293],{"type":31,"tagName":289,"properties":294,"children":295},{},[296],{"type":27,"value":297},"Base URL       https://registry.openmarket.xyz/v1/packages/@you/your-indicator",{"type":27,"value":28},{"type":31,"tagName":289,"properties":300,"children":301},{"class":291},[302],{"type":31,"tagName":289,"properties":303,"children":304},{},[305],{"type":27,"value":306},"Authorization  Bearer \u003Caccess key>",{"type":27,"value":28},{"type":31,"tagName":289,"properties":309,"children":310},{"class":291},[311],{"type":31,"tagName":289,"properties":312,"children":313},{},[314],{"type":27,"value":315},"",{"type":27,"value":28},{"type":31,"tagName":289,"properties":318,"children":319},{"class":291},[320],{"type":31,"tagName":289,"properties":321,"children":322},{},[323],{"type":27,"value":324},"PUT     /access/\u003Cusername>     add someone, or change their end date",{"type":27,"value":28},{"type":31,"tagName":289,"properties":327,"children":328},{"class":291},[329],{"type":31,"tagName":289,"properties":330,"children":331},{},[332],{"type":27,"value":333},"DELETE  /access/\u003Cusername>     remove someone",{"type":27,"value":28},{"type":31,"tagName":289,"properties":336,"children":337},{"class":291},[338],{"type":31,"tagName":289,"properties":339,"children":340},{},[341],{"type":27,"value":342},"GET     /access/\u003Cusername>     check one person",{"type":27,"value":28},{"type":31,"tagName":289,"properties":345,"children":346},{"class":291},[347],{"type":31,"tagName":289,"properties":348,"children":349},{},[350],{"type":27,"value":351},"GET     /access                everyone with access, a page at a time",{"type":27,"value":28},{"type":31,"tagName":289,"properties":354,"children":355},{"class":291},[356],{"type":31,"tagName":289,"properties":357,"children":358},{},[359],{"type":27,"value":360},"POST    /access/batch          up to 500 adds and removes in one call",{"type":27,"value":28},{"type":31,"tagName":289,"properties":363,"children":364},{"class":291},[365],{"type":31,"tagName":289,"properties":366,"children":367},{},[368],{"type":27,"value":369},"POST    /access/links/batch    a personal link for each of your members",{"type":27,"value":28},{"type":31,"tagName":289,"properties":372,"children":373},{"class":291},[374],{"type":31,"tagName":289,"properties":375,"children":376},{},[377],{"type":27,"value":378},"GET     /access/links.csv      the personal links nobody has opened yet",{"type":27,"value":28},{"type":31,"tagName":32,"properties":381,"children":382,"position":424},{},[383,398,405,419],{"type":31,"tagName":283,"properties":384,"children":385,"position":395},{},[386],{"type":27,"value":387,"position":388},"@you/your-indicator",{"start":389,"end":392},{"line":390,"column":21,"offset":391},41,1589,{"line":390,"column":393,"offset":394},22,1610,{"start":396,"end":397},{"line":390,"column":21,"offset":391},{"line":390,"column":393,"offset":394},{"type":27,"value":399,"position":400}," is your indicator's full name: your username, then\nthe name you published it under. The key sheet shows the address under\n",{"start":401,"end":402},{"line":390,"column":393,"offset":394},{"line":403,"column":21,"offset":404},43,1733,{"type":31,"tagName":79,"properties":406,"children":407,"position":415},{},[408],{"type":27,"value":409,"position":410},"Calls go to",{"start":411,"end":413},{"line":403,"column":145,"offset":412},1735,{"line":403,"column":59,"offset":414},1746,{"start":416,"end":417},{"line":403,"column":21,"offset":404},{"line":403,"column":181,"offset":418},1748,{"type":27,"value":122,"position":420},{"start":421,"end":422},{"line":403,"column":181,"offset":418},{"line":403,"column":209,"offset":423},1749,{"start":425,"end":426},{"line":390,"column":21,"offset":391},{"line":403,"column":209,"offset":423},{"type":27,"value":28},{"type":31,"tagName":48,"properties":429,"children":430,"position":439},{},[431],{"type":27,"value":432,"position":433},"Add someone",{"start":434,"end":437},{"line":435,"column":56,"offset":436},45,1754,{"line":435,"column":161,"offset":438},1765,{"start":440,"end":442},{"line":435,"column":21,"offset":441},1751,{"line":435,"column":161,"offset":438},{"type":27,"value":28},{"type":14,"children":445},[446],{"type":31,"tagName":276,"properties":447,"children":448,"data":-1},{"class":278,"style":279,"tabindex":280},[449],{"type":31,"tagName":283,"properties":450,"children":452},{"class":451},[286],[453,461,462,470,471,479,480],{"type":31,"tagName":289,"properties":454,"children":455},{"class":291},[456],{"type":31,"tagName":289,"properties":457,"children":458},{},[459],{"type":27,"value":460},"curl -X PUT \"https://registry.openmarket.xyz/v1/packages/@you/your-indicator/access/maya\" \\",{"type":27,"value":28},{"type":31,"tagName":289,"properties":463,"children":464},{"class":291},[465],{"type":31,"tagName":289,"properties":466,"children":467},{},[468],{"type":27,"value":469},"  -H \"Authorization: Bearer $ACCESS_KEY\" \\",{"type":27,"value":28},{"type":31,"tagName":289,"properties":472,"children":473},{"class":291},[474],{"type":31,"tagName":289,"properties":475,"children":476},{},[477],{"type":27,"value":478},"  -H \"Content-Type: application/json\" \\",{"type":27,"value":28},{"type":31,"tagName":289,"properties":481,"children":482},{"class":291},[483],{"type":31,"tagName":289,"properties":484,"children":485},{},[486],{"type":27,"value":487},"  -d '{\"until\": \"2027-01-01T00:00:00Z\"}'",{"type":27,"value":28},{"type":31,"tagName":32,"properties":490,"children":491,"position":520},{},[492,501,513],{"type":27,"value":493,"position":494},"The body is optional: leave it out and access has no end date. A second\nPUT replaces the end date, so a renewal sends the new one. The answer is\n",{"start":495,"end":498},{"line":496,"column":21,"offset":497},54,1996,{"line":499,"column":21,"offset":500},56,2141,{"type":31,"tagName":283,"properties":502,"children":503,"position":510},{},[504],{"type":27,"value":505,"position":506},"200",{"start":507,"end":508},{"line":499,"column":21,"offset":500},{"line":499,"column":119,"offset":509},2146,{"start":511,"end":512},{"line":499,"column":21,"offset":500},{"line":499,"column":119,"offset":509},{"type":27,"value":514,"position":515}," with the person's row:",{"start":516,"end":517},{"line":499,"column":119,"offset":509},{"line":499,"column":518,"offset":519},29,2169,{"start":521,"end":522},{"line":496,"column":21,"offset":497},{"line":499,"column":518,"offset":519},{"type":27,"value":28},{"type":14,"children":525},[526],{"type":31,"tagName":276,"properties":527,"children":528,"data":-1},{"class":278,"style":279,"tabindex":280},[529],{"type":31,"tagName":283,"properties":530,"children":533},{"class":531},[532],"language-json",[534,543,544,569,570,591,592,613,614,635,636,653,654],{"type":31,"tagName":289,"properties":535,"children":536},{"class":291},[537],{"type":31,"tagName":289,"properties":538,"children":540},{"style":539},"--shiki-dark:#E1E4E8;--shiki-light:#24292E",[541],{"type":27,"value":542},"{",{"type":27,"value":28},{"type":31,"tagName":289,"properties":545,"children":546},{"class":291},[547,553,558,564],{"type":31,"tagName":289,"properties":548,"children":550},{"style":549},"--shiki-dark:#79B8FF;--shiki-light:#005CC5",[551],{"type":27,"value":552},"  \"username\"",{"type":31,"tagName":289,"properties":554,"children":555},{"style":539},[556],{"type":27,"value":557},": ",{"type":31,"tagName":289,"properties":559,"children":561},{"style":560},"--shiki-dark:#9ECBFF;--shiki-light:#032F62",[562],{"type":27,"value":563},"\"maya\"",{"type":31,"tagName":289,"properties":565,"children":566},{"style":539},[567],{"type":27,"value":568},",",{"type":27,"value":28},{"type":31,"tagName":289,"properties":571,"children":572},{"class":291},[573,578,582,587],{"type":31,"tagName":289,"properties":574,"children":575},{"style":549},[576],{"type":27,"value":577},"  \"account_id\"",{"type":31,"tagName":289,"properties":579,"children":580},{"style":539},[581],{"type":27,"value":557},{"type":31,"tagName":289,"properties":583,"children":584},{"style":560},[585],{"type":27,"value":586},"\"\u003Caccount id>\"",{"type":31,"tagName":289,"properties":588,"children":589},{"style":539},[590],{"type":27,"value":568},{"type":27,"value":28},{"type":31,"tagName":289,"properties":593,"children":594},{"class":291},[595,600,604,609],{"type":31,"tagName":289,"properties":596,"children":597},{"style":549},[598],{"type":27,"value":599},"  \"until\"",{"type":31,"tagName":289,"properties":601,"children":602},{"style":539},[603],{"type":27,"value":557},{"type":31,"tagName":289,"properties":605,"children":606},{"style":560},[607],{"type":27,"value":608},"\"2027-01-01T00:00:00Z\"",{"type":31,"tagName":289,"properties":610,"children":611},{"style":539},[612],{"type":27,"value":568},{"type":27,"value":28},{"type":31,"tagName":289,"properties":615,"children":616},{"class":291},[617,622,626,631],{"type":31,"tagName":289,"properties":618,"children":619},{"style":549},[620],{"type":27,"value":621},"  \"since\"",{"type":31,"tagName":289,"properties":623,"children":624},{"style":539},[625],{"type":27,"value":557},{"type":31,"tagName":289,"properties":627,"children":628},{"style":560},[629],{"type":27,"value":630},"\"2026-10-05T09:12:33Z\"",{"type":31,"tagName":289,"properties":632,"children":633},{"style":539},[634],{"type":27,"value":568},{"type":27,"value":28},{"type":31,"tagName":289,"properties":637,"children":638},{"class":291},[639,644,648],{"type":31,"tagName":289,"properties":640,"children":641},{"style":549},[642],{"type":27,"value":643},"  \"via\"",{"type":31,"tagName":289,"properties":645,"children":646},{"style":539},[647],{"type":27,"value":557},{"type":31,"tagName":289,"properties":649,"children":650},{"style":560},[651],{"type":27,"value":652},"\"api\"",{"type":27,"value":28},{"type":31,"tagName":289,"properties":655,"children":656},{"class":291},[657],{"type":31,"tagName":289,"properties":658,"children":659},{"style":539},[660],{"type":27,"value":661},"}",{"type":27,"value":28},{"type":31,"tagName":32,"properties":664,"children":665,"position":693},{},[666,674,686],{"type":27,"value":667,"position":668},"Keep the ",{"start":669,"end":672},{"line":670,"column":21,"offset":671},68,2327,{"line":670,"column":101,"offset":673},2336,{"type":31,"tagName":283,"properties":675,"children":676,"position":683},{},[677],{"type":27,"value":678,"position":679},"account_id",{"start":680,"end":681},{"line":670,"column":101,"offset":673},{"line":670,"column":393,"offset":682},2348,{"start":684,"end":685},{"line":670,"column":101,"offset":673},{"line":670,"column":393,"offset":682},{"type":27,"value":687,"position":688},". It still finds the person after they rename their\naccount.",{"start":689,"end":690},{"line":670,"column":393,"offset":682},{"line":691,"column":73,"offset":692},69,2408,{"start":694,"end":695},{"line":670,"column":21,"offset":671},{"line":691,"column":73,"offset":692},{"type":27,"value":28},{"type":31,"tagName":48,"properties":698,"children":699,"position":708},{},[700],{"type":27,"value":701,"position":702},"Remove someone",{"start":703,"end":706},{"line":704,"column":56,"offset":705},71,2413,{"line":704,"column":212,"offset":707},2427,{"start":709,"end":711},{"line":704,"column":21,"offset":710},2410,{"line":704,"column":212,"offset":707},{"type":27,"value":28},{"type":14,"children":714},[715],{"type":31,"tagName":276,"properties":716,"children":717,"data":-1},{"class":278,"style":279,"tabindex":280},[718],{"type":31,"tagName":283,"properties":719,"children":721},{"class":720},[286],[722,730,731],{"type":31,"tagName":289,"properties":723,"children":724},{"class":291},[725],{"type":31,"tagName":289,"properties":726,"children":727},{},[728],{"type":27,"value":729},"curl -X DELETE \"https://registry.openmarket.xyz/v1/packages/@you/your-indicator/access/maya\" \\",{"type":27,"value":28},{"type":31,"tagName":289,"properties":732,"children":733},{"class":291},[734],{"type":31,"tagName":289,"properties":735,"children":736},{},[737],{"type":27,"value":738},"  -H \"Authorization: Bearer $ACCESS_KEY\"",{"type":27,"value":28},{"type":31,"tagName":32,"properties":741,"children":742,"position":771},{},[743,751,763],{"type":27,"value":744,"position":745},"The answer is ",{"start":746,"end":749},{"line":747,"column":21,"offset":748},78,2578,{"line":747,"column":161,"offset":750},2592,{"type":31,"tagName":283,"properties":752,"children":753,"position":760},{},[754],{"type":27,"value":755,"position":756},"204",{"start":757,"end":758},{"line":747,"column":161,"offset":750},{"line":747,"column":230,"offset":759},2597,{"start":761,"end":762},{"line":747,"column":161,"offset":750},{"line":747,"column":230,"offset":759},{"type":27,"value":764,"position":765}," whether or not they were on the list, so a\ncancellation that arrives twice does no harm.",{"start":766,"end":767},{"line":747,"column":230,"offset":759},{"line":768,"column":769,"offset":770},79,46,2686,{"start":772,"end":773},{"line":747,"column":21,"offset":748},{"line":768,"column":769,"offset":770},{"type":27,"value":28},{"type":31,"tagName":48,"properties":776,"children":777,"position":786},{},[778],{"type":27,"value":779,"position":780},"Check and list",{"start":781,"end":784},{"line":782,"column":56,"offset":783},81,2691,{"line":782,"column":212,"offset":785},2705,{"start":787,"end":789},{"line":782,"column":21,"offset":788},2688,{"line":782,"column":212,"offset":785},{"type":27,"value":28},{"type":31,"tagName":32,"properties":792,"children":793,"position":854},{},[794,808,815,827,834,846],{"type":31,"tagName":283,"properties":795,"children":796,"position":805},{},[797],{"type":27,"value":798,"position":799},"GET /access/\u003Cusername>",{"start":800,"end":803},{"line":801,"column":21,"offset":802},83,2707,{"line":801,"column":263,"offset":804},2731,{"start":806,"end":807},{"line":801,"column":21,"offset":802},{"line":801,"column":263,"offset":804},{"type":27,"value":809,"position":810}," answers ",{"start":811,"end":812},{"line":801,"column":263,"offset":804},{"line":801,"column":813,"offset":814},34,2740,{"type":31,"tagName":283,"properties":816,"children":817,"position":824},{},[818],{"type":27,"value":505,"position":819},{"start":820,"end":821},{"line":801,"column":813,"offset":814},{"line":801,"column":822,"offset":823},39,2745,{"start":825,"end":826},{"line":801,"column":813,"offset":814},{"line":801,"column":822,"offset":823},{"type":27,"value":828,"position":829}," with the person's row, or ",{"start":830,"end":831},{"line":801,"column":822,"offset":823},{"line":801,"column":832,"offset":833},66,2772,{"type":31,"tagName":283,"properties":835,"children":836,"position":843},{},[837],{"type":27,"value":838,"position":839},"404",{"start":840,"end":841},{"line":801,"column":832,"offset":833},{"line":801,"column":704,"offset":842},2777,{"start":844,"end":845},{"line":801,"column":832,"offset":833},{"line":801,"column":704,"offset":842},{"type":27,"value":847,"position":848},"\nwhen they are not on the list.",{"start":849,"end":850},{"line":801,"column":704,"offset":842},{"line":851,"column":852,"offset":853},84,31,2808,{"start":855,"end":856},{"line":801,"column":21,"offset":802},{"line":851,"column":852,"offset":853},{"type":27,"value":28},{"type":31,"tagName":32,"properties":859,"children":860,"position":1035},{},[861,875,882,895,902,915,921,933,940,952,958,970,977,990,997,1010,1017,1029],{"type":31,"tagName":283,"properties":862,"children":863,"position":872},{},[864],{"type":27,"value":865,"position":866},"GET /access",{"start":867,"end":870},{"line":868,"column":21,"offset":869},86,2810,{"line":868,"column":59,"offset":871},2823,{"start":873,"end":874},{"line":868,"column":21,"offset":869},{"line":868,"column":59,"offset":871},{"type":27,"value":876,"position":877}," reads everyone, 50 rows a page by default and up to 200 with\n",{"start":878,"end":879},{"line":868,"column":59,"offset":871},{"line":880,"column":21,"offset":881},87,2885,{"type":31,"tagName":283,"properties":883,"children":884,"position":892},{},[885],{"type":27,"value":886,"position":887},"limit",{"start":888,"end":889},{"line":880,"column":21,"offset":881},{"line":880,"column":890,"offset":891},8,2892,{"start":893,"end":894},{"line":880,"column":21,"offset":881},{"line":880,"column":890,"offset":891},{"type":27,"value":896,"position":897},". Pass a page's ",{"start":898,"end":899},{"line":880,"column":890,"offset":891},{"line":880,"column":900,"offset":901},24,2908,{"type":31,"tagName":283,"properties":903,"children":904,"position":912},{},[905],{"type":27,"value":906,"position":907},"next_cursor",{"start":908,"end":909},{"line":880,"column":900,"offset":901},{"line":880,"column":910,"offset":911},37,2921,{"start":913,"end":914},{"line":880,"column":900,"offset":901},{"line":880,"column":910,"offset":911},{"type":27,"value":916,"position":917}," back as ",{"start":918,"end":919},{"line":880,"column":910,"offset":911},{"line":880,"column":769,"offset":920},2930,{"type":31,"tagName":283,"properties":922,"children":923,"position":930},{},[924],{"type":27,"value":925,"position":926},"cursor",{"start":927,"end":928},{"line":880,"column":769,"offset":920},{"line":880,"column":496,"offset":929},2938,{"start":931,"end":932},{"line":880,"column":769,"offset":920},{"line":880,"column":496,"offset":929},{"type":27,"value":934,"position":935}," to read the next\none. ",{"start":936,"end":937},{"line":880,"column":496,"offset":929},{"line":938,"column":119,"offset":939},88,2961,{"type":31,"tagName":283,"properties":941,"children":942,"position":949},{},[943],{"type":27,"value":944,"position":945},"q",{"start":946,"end":947},{"line":938,"column":119,"offset":939},{"line":938,"column":73,"offset":948},2964,{"start":950,"end":951},{"line":938,"column":119,"offset":939},{"line":938,"column":73,"offset":948},{"type":27,"value":953,"position":954}," filters by name, and ",{"start":955,"end":956},{"line":938,"column":73,"offset":948},{"line":938,"column":852,"offset":957},2986,{"type":31,"tagName":283,"properties":959,"children":960,"position":967},{},[961],{"type":27,"value":962,"position":963},"view",{"start":964,"end":965},{"line":938,"column":852,"offset":957},{"line":938,"column":910,"offset":966},2992,{"start":968,"end":969},{"line":938,"column":852,"offset":957},{"line":938,"column":910,"offset":966},{"type":27,"value":971,"position":972}," picks ",{"start":973,"end":974},{"line":938,"column":910,"offset":966},{"line":938,"column":975,"offset":976},44,2999,{"type":31,"tagName":283,"properties":978,"children":979,"position":987},{},[980],{"type":27,"value":981,"position":982},"all",{"start":983,"end":984},{"line":938,"column":975,"offset":976},{"line":938,"column":985,"offset":986},49,3004,{"start":988,"end":989},{"line":938,"column":975,"offset":976},{"line":938,"column":985,"offset":986},{"type":27,"value":991,"position":992},", ",{"start":993,"end":994},{"line":938,"column":985,"offset":986},{"line":938,"column":995,"offset":996},51,3006,{"type":31,"tagName":283,"properties":998,"children":999,"position":1007},{},[1000],{"type":27,"value":1001,"position":1002},"ending",{"start":1003,"end":1004},{"line":938,"column":995,"offset":996},{"line":938,"column":1005,"offset":1006},59,3014,{"start":1008,"end":1009},{"line":938,"column":995,"offset":996},{"line":938,"column":1005,"offset":1006},{"type":27,"value":1011,"position":1012}," (access ending\nsoon) or ",{"start":1013,"end":1014},{"line":938,"column":1005,"offset":1006},{"line":1015,"column":101,"offset":1016},89,3039,{"type":31,"tagName":283,"properties":1018,"children":1019,"position":1026},{},[1020],{"type":27,"value":1021,"position":1022},"waiting",{"start":1023,"end":1024},{"line":1015,"column":101,"offset":1016},{"line":1015,"column":234,"offset":1025},3048,{"start":1027,"end":1028},{"line":1015,"column":101,"offset":1016},{"line":1015,"column":234,"offset":1025},{"type":27,"value":1030,"position":1031}," (personal links nobody has opened yet).",{"start":1032,"end":1033},{"line":1015,"column":234,"offset":1025},{"line":1015,"column":1005,"offset":1034},3088,{"start":1036,"end":1037},{"line":868,"column":21,"offset":869},{"line":1015,"column":1005,"offset":1034},{"type":27,"value":28},{"type":14,"children":1040},[1041],{"type":31,"tagName":276,"properties":1042,"children":1043,"data":-1},{"class":278,"style":279,"tabindex":280},[1044],{"type":31,"tagName":283,"properties":1045,"children":1047},{"class":1046},[286],[1048,1056,1057],{"type":31,"tagName":289,"properties":1049,"children":1050},{"class":291},[1051],{"type":31,"tagName":289,"properties":1052,"children":1053},{},[1054],{"type":27,"value":1055},"curl \"https://registry.openmarket.xyz/v1/packages/@you/your-indicator/access?limit=200&view=all\" \\",{"type":27,"value":28},{"type":31,"tagName":289,"properties":1058,"children":1059},{"class":291},[1060],{"type":31,"tagName":289,"properties":1061,"children":1062},{},[1063],{"type":27,"value":738},{"type":27,"value":28},{"type":31,"tagName":48,"properties":1066,"children":1067,"position":1076},{},[1068],{"type":27,"value":1069,"position":1070},"Many at once",{"start":1071,"end":1074},{"line":1072,"column":56,"offset":1073},96,3246,{"line":1072,"column":181,"offset":1075},3258,{"start":1077,"end":1079},{"line":1072,"column":21,"offset":1078},3243,{"line":1072,"column":181,"offset":1075},{"type":27,"value":28},{"type":31,"tagName":32,"properties":1082,"children":1083,"position":1181},{},[1084,1098,1105,1117,1124,1136,1142,1154,1161,1174],{"type":31,"tagName":283,"properties":1085,"children":1086,"position":1095},{},[1087],{"type":27,"value":1088,"position":1089},"POST /access/batch",{"start":1090,"end":1093},{"line":1091,"column":21,"offset":1092},98,3260,{"line":1091,"column":233,"offset":1094},3280,{"start":1096,"end":1097},{"line":1091,"column":21,"offset":1092},{"line":1091,"column":233,"offset":1094},{"type":27,"value":1099,"position":1100}," takes up to 500 adds and removes in one call: the\nfirst import of your member list, or a nightly check that the list still\nmatches yours. Each ",{"start":1101,"end":1102},{"line":1091,"column":233,"offset":1094},{"line":1103,"column":233,"offset":1104},100,3424,{"type":31,"tagName":283,"properties":1106,"children":1107,"position":1114},{},[1108],{"type":27,"value":1109,"position":1110},"add",{"start":1111,"end":1112},{"line":1103,"column":233,"offset":1104},{"line":1103,"column":266,"offset":1113},3429,{"start":1115,"end":1116},{"line":1103,"column":233,"offset":1104},{"line":1103,"column":266,"offset":1113},{"type":27,"value":1118,"position":1119}," row works like a PUT (an ",{"start":1120,"end":1121},{"line":1103,"column":266,"offset":1113},{"line":1103,"column":1122,"offset":1123},52,3455,{"type":31,"tagName":283,"properties":1125,"children":1126,"position":1133},{},[1127],{"type":27,"value":1128,"position":1129},"until",{"start":1130,"end":1131},{"line":1103,"column":1122,"offset":1123},{"line":1103,"column":1005,"offset":1132},3462,{"start":1134,"end":1135},{"line":1103,"column":1122,"offset":1123},{"line":1103,"column":1005,"offset":1132},{"type":27,"value":1137,"position":1138}," of ",{"start":1139,"end":1140},{"line":1103,"column":1005,"offset":1132},{"line":1103,"column":10,"offset":1141},3466,{"type":31,"tagName":283,"properties":1143,"children":1144,"position":1151},{},[1145],{"type":27,"value":1146,"position":1147},"null",{"start":1148,"end":1149},{"line":1103,"column":10,"offset":1141},{"line":1103,"column":691,"offset":1150},3472,{"start":1152,"end":1153},{"line":1103,"column":10,"offset":1141},{"line":1103,"column":691,"offset":1150},{"type":27,"value":1155,"position":1156}," means\nno end date), and each ",{"start":1157,"end":1158},{"line":1103,"column":691,"offset":1150},{"line":1159,"column":900,"offset":1160},101,3502,{"type":31,"tagName":283,"properties":1162,"children":1163,"position":1171},{},[1164],{"type":27,"value":1165,"position":1166},"remove",{"start":1167,"end":1168},{"line":1159,"column":900,"offset":1160},{"line":1159,"column":1169,"offset":1170},32,3510,{"start":1172,"end":1173},{"line":1159,"column":900,"offset":1160},{"line":1159,"column":1169,"offset":1170},{"type":27,"value":1175,"position":1176}," like a DELETE.",{"start":1177,"end":1178},{"line":1159,"column":1169,"offset":1170},{"line":1159,"column":1179,"offset":1180},47,3525,{"start":1182,"end":1183},{"line":1091,"column":21,"offset":1092},{"line":1159,"column":1179,"offset":1180},{"type":27,"value":28},{"type":14,"children":1186},[1187],{"type":31,"tagName":276,"properties":1188,"children":1189,"data":-1},{"class":278,"style":279,"tabindex":280},[1190],{"type":31,"tagName":283,"properties":1191,"children":1193},{"class":1192},[286],[1194,1202,1203,1210,1211,1218,1219],{"type":31,"tagName":289,"properties":1195,"children":1196},{"class":291},[1197],{"type":31,"tagName":289,"properties":1198,"children":1199},{},[1200],{"type":27,"value":1201},"curl -X POST \"https://registry.openmarket.xyz/v1/packages/@you/your-indicator/access/batch\" \\",{"type":27,"value":28},{"type":31,"tagName":289,"properties":1204,"children":1205},{"class":291},[1206],{"type":31,"tagName":289,"properties":1207,"children":1208},{},[1209],{"type":27,"value":469},{"type":27,"value":28},{"type":31,"tagName":289,"properties":1212,"children":1213},{"class":291},[1214],{"type":31,"tagName":289,"properties":1215,"children":1216},{},[1217],{"type":27,"value":478},{"type":27,"value":28},{"type":31,"tagName":289,"properties":1220,"children":1221},{"class":291},[1222],{"type":31,"tagName":289,"properties":1223,"children":1224},{},[1225],{"type":27,"value":1226},"  -d '{\"add\":[{\"subject\":\"maya\",\"until\":null}],\"remove\":[\"sam\"]}'",{"type":27,"value":28},{"type":31,"tagName":48,"properties":1229,"children":1230,"position":1239},{},[1231],{"type":27,"value":1232,"position":1233},"Personal links",{"start":1234,"end":1237},{"line":1235,"column":56,"offset":1236},110,3786,{"line":1235,"column":212,"offset":1238},3800,{"start":1240,"end":1242},{"line":1235,"column":21,"offset":1241},3783,{"line":1235,"column":212,"offset":1238},{"type":27,"value":28},{"type":31,"tagName":32,"properties":1245,"children":1246,"position":1256},{},[1247],{"type":27,"value":1248,"position":1249},"A member with no OpenMarket account yet gets a personal link instead. Ask\nfor one per member, keyed by your own id for them:",{"start":1250,"end":1253},{"line":1251,"column":21,"offset":1252},112,3802,{"line":1254,"column":995,"offset":1255},113,3926,{"start":1257,"end":1258},{"line":1251,"column":21,"offset":1252},{"line":1254,"column":995,"offset":1255},{"type":27,"value":28},{"type":14,"children":1261},[1262],{"type":31,"tagName":276,"properties":1263,"children":1264,"data":-1},{"class":278,"style":279,"tabindex":280},[1265],{"type":31,"tagName":283,"properties":1266,"children":1268},{"class":1267},[286],[1269,1277,1278,1285,1286,1293,1294],{"type":31,"tagName":289,"properties":1270,"children":1271},{"class":291},[1272],{"type":31,"tagName":289,"properties":1273,"children":1274},{},[1275],{"type":27,"value":1276},"curl -X POST \"https://registry.openmarket.xyz/v1/packages/@you/your-indicator/access/links/batch\" \\",{"type":27,"value":28},{"type":31,"tagName":289,"properties":1279,"children":1280},{"class":291},[1281],{"type":31,"tagName":289,"properties":1282,"children":1283},{},[1284],{"type":27,"value":469},{"type":27,"value":28},{"type":31,"tagName":289,"properties":1287,"children":1288},{"class":291},[1289],{"type":31,"tagName":289,"properties":1290,"children":1291},{},[1292],{"type":27,"value":478},{"type":27,"value":28},{"type":31,"tagName":289,"properties":1295,"children":1296},{"class":291},[1297],{"type":31,"tagName":289,"properties":1298,"children":1299},{},[1300],{"type":27,"value":1301},"  -d '{\"links\":[{\"ref\":\"member-1042\",\"until\":null}]}'",{"type":27,"value":28},{"type":31,"tagName":32,"properties":1304,"children":1305,"position":1334},{},[1306,1315,1327],{"type":27,"value":1307,"position":1308},"Send each member their link yourself. When they open it, they sign in or\nsign up and get access. ",{"start":1309,"end":1312},{"line":1310,"column":21,"offset":1311},122,4178,{"line":1313,"column":263,"offset":1314},123,4275,{"type":31,"tagName":283,"properties":1316,"children":1317,"position":1324},{},[1318],{"type":27,"value":1319,"position":1320},"GET /access/links.csv",{"start":1321,"end":1322},{"line":1313,"column":263,"offset":1314},{"line":1313,"column":89,"offset":1323},4298,{"start":1325,"end":1326},{"line":1313,"column":263,"offset":1314},{"line":1313,"column":89,"offset":1323},{"type":27,"value":1328,"position":1329}," downloads the links nobody\nhas opened yet.",{"start":1330,"end":1331},{"line":1313,"column":89,"offset":1323},{"line":1332,"column":181,"offset":1333},124,4341,{"start":1335,"end":1336},{"line":1310,"column":21,"offset":1311},{"line":1332,"column":181,"offset":1333},{"type":27,"value":28},{"type":31,"tagName":48,"properties":1339,"children":1340,"position":1349},{},[1341],{"type":27,"value":1342,"position":1343},"Naming a person",{"start":1344,"end":1347},{"line":1345,"column":56,"offset":1346},126,4346,{"line":1345,"column":234,"offset":1348},4361,{"start":1350,"end":1352},{"line":1345,"column":21,"offset":1351},4343,{"line":1345,"column":234,"offset":1348},{"type":27,"value":28},{"type":31,"tagName":32,"properties":1355,"children":1356,"position":1384},{},[1357,1366,1378],{"type":27,"value":1358,"position":1359},"Wherever a call takes a username, it also takes two other forms. In a\nbatch they go in ",{"start":1360,"end":1363},{"line":1361,"column":21,"offset":1362},128,4363,{"line":1364,"column":212,"offset":1365},129,4450,{"type":31,"tagName":283,"properties":1367,"children":1368,"position":1375},{},[1369],{"type":27,"value":1370,"position":1371},"subject",{"start":1372,"end":1373},{"line":1364,"column":212,"offset":1365},{"line":1364,"column":267,"offset":1374},4459,{"start":1376,"end":1377},{"line":1364,"column":212,"offset":1365},{"line":1364,"column":267,"offset":1374},{"type":27,"value":122,"position":1379},{"start":1380,"end":1381},{"line":1364,"column":267,"offset":1374},{"line":1364,"column":1382,"offset":1383},28,4460,{"start":1385,"end":1386},{"line":1361,"column":21,"offset":1362},{"line":1364,"column":1382,"offset":1383},{"type":27,"value":1388},"\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n",{"type":31,"tagName":1390,"properties":1391,"children":1392,"position":1577},"table",{},[1393,1439],{"type":31,"tagName":1394,"properties":1395,"children":1396,"position":1436},"thead",{},[1397],{"type":31,"tagName":1398,"properties":1399,"children":1400,"position":1433},"tr",{},[1401,1419],{"type":31,"tagName":1402,"properties":1403,"children":1404,"position":1414},"th",{},[1405],{"type":27,"value":1406,"position":1407},"You write",{"start":1408,"end":1411},{"line":1409,"column":145,"offset":1410},131,4464,{"line":1409,"column":1412,"offset":1413},12,4473,{"start":1415,"end":1417},{"line":1409,"column":21,"offset":1416},4462,{"line":1409,"column":144,"offset":1418},4474,{"type":31,"tagName":1402,"properties":1420,"children":1421,"position":1429},{},[1422],{"type":27,"value":1423,"position":1424},"Means",{"start":1425,"end":1427},{"line":1409,"column":161,"offset":1426},4476,{"line":1409,"column":230,"offset":1428},4481,{"start":1430,"end":1431},{"line":1409,"column":144,"offset":1418},{"line":1409,"column":393,"offset":1432},4483,{"start":1434,"end":1435},{"line":1409,"column":21,"offset":1416},{"line":1409,"column":393,"offset":1432},{"start":1437,"end":1438},{"line":1409,"column":21,"offset":1416},{"line":1409,"column":393,"offset":1432},{"type":31,"tagName":1440,"properties":1441,"children":1442,"position":1574},"tbody",{},[1443,1482,1534],{"type":31,"tagName":1398,"properties":1444,"children":1445,"position":1479},{},[1446,1465],{"type":31,"tagName":1447,"properties":1448,"children":1449,"position":1460},"td",{},[1450],{"type":31,"tagName":283,"properties":1451,"children":1452,"position":1455},{},[1453],{"type":27,"value":1454},"maya",{"start":1456,"end":1458},{"line":25,"column":145,"offset":1457},4500,{"line":25,"column":73,"offset":1459},4506,{"start":1461,"end":1463},{"line":25,"column":21,"offset":1462},4498,{"line":25,"column":101,"offset":1464},4507,{"type":31,"tagName":1447,"properties":1466,"children":1467,"position":1475},{},[1468],{"type":27,"value":1469,"position":1470},"an OpenMarket username",{"start":1471,"end":1473},{"line":25,"column":1412,"offset":1472},4509,{"line":25,"column":813,"offset":1474},4531,{"start":1476,"end":1477},{"line":25,"column":101,"offset":1464},{"line":25,"column":76,"offset":1478},4533,{"start":1480,"end":1481},{"line":25,"column":21,"offset":1462},{"line":25,"column":76,"offset":1478},{"type":31,"tagName":1398,"properties":1483,"children":1484,"position":1531},{},[1485,1503],{"type":31,"tagName":1447,"properties":1486,"children":1487,"position":1498},{},[1488],{"type":31,"tagName":283,"properties":1489,"children":1490,"position":1493},{},[1491],{"type":27,"value":1492},"id:\u003Caccount id>",{"start":1494,"end":1496},{"line":24,"column":145,"offset":1495},4536,{"line":24,"column":230,"offset":1497},4553,{"start":1499,"end":1501},{"line":24,"column":21,"offset":1500},4534,{"line":24,"column":233,"offset":1502},4554,{"type":31,"tagName":1447,"properties":1504,"children":1505,"position":1527},{},[1506,1513,1521],{"type":27,"value":1507,"position":1508},"the ",{"start":1509,"end":1511},{"line":24,"column":247,"offset":1510},4556,{"line":24,"column":267,"offset":1512},4560,{"type":31,"tagName":283,"properties":1514,"children":1515,"position":1517},{},[1516],{"type":27,"value":678},{"start":1518,"end":1519},{"line":24,"column":267,"offset":1512},{"line":24,"column":822,"offset":1520},4572,{"type":27,"value":1522,"position":1523}," a call returned; it still works after a rename",{"start":1524,"end":1525},{"line":24,"column":822,"offset":1520},{"line":24,"column":868,"offset":1526},4619,{"start":1528,"end":1529},{"line":24,"column":233,"offset":1502},{"line":24,"column":938,"offset":1530},4621,{"start":1532,"end":1533},{"line":24,"column":21,"offset":1500},{"line":24,"column":938,"offset":1530},{"type":31,"tagName":1398,"properties":1535,"children":1536,"position":1571},{},[1537,1556],{"type":31,"tagName":1447,"properties":1538,"children":1539,"position":1551},{},[1540],{"type":31,"tagName":283,"properties":1541,"children":1542,"position":1545},{},[1543],{"type":27,"value":1544},"ref:\u003Cyour reference>",{"start":1546,"end":1549},{"line":1547,"column":145,"offset":1548},135,4624,{"line":1547,"column":263,"offset":1550},4646,{"start":1552,"end":1554},{"line":1547,"column":21,"offset":1553},4622,{"line":1547,"column":266,"offset":1555},4647,{"type":31,"tagName":1447,"properties":1557,"children":1558,"position":1567},{},[1559],{"type":27,"value":1560,"position":1561},"your own id for a member you sent a personal link",{"start":1562,"end":1564},{"line":1547,"column":1382,"offset":1563},4649,{"line":1547,"column":1565,"offset":1566},77,4698,{"start":1568,"end":1569},{"line":1547,"column":266,"offset":1555},{"line":1547,"column":768,"offset":1570},4700,{"start":1572,"end":1573},{"line":1547,"column":21,"offset":1553},{"line":1547,"column":768,"offset":1570},{"start":1575,"end":1576},{"line":25,"column":21,"offset":1462},{"line":1547,"column":768,"offset":1570},{"start":1578,"end":1579},{"line":1409,"column":21,"offset":1416},{"line":1547,"column":768,"offset":1570},{"type":27,"value":28},{"type":31,"tagName":48,"properties":1582,"children":1583,"position":1592},{},[1584],{"type":27,"value":1585,"position":1586},"Errors",{"start":1587,"end":1590},{"line":1588,"column":56,"offset":1589},137,4705,{"line":1588,"column":101,"offset":1591},4711,{"start":1593,"end":1595},{"line":1588,"column":21,"offset":1594},4702,{"line":1588,"column":101,"offset":1591},{"type":27,"value":28},{"type":31,"tagName":32,"properties":1598,"children":1599,"position":1627},{},[1600,1608,1621],{"type":27,"value":1601,"position":1602},"An error comes back as ",{"start":1603,"end":1606},{"line":1604,"column":21,"offset":1605},139,4713,{"line":1604,"column":900,"offset":1607},4736,{"type":31,"tagName":283,"properties":1609,"children":1610,"position":1618},{},[1611],{"type":27,"value":1612,"position":1613},"{\"error\": {\"code\": \"...\", \"message\": \"...\"}}",{"start":1614,"end":1615},{"line":1604,"column":900,"offset":1607},{"line":1604,"column":1616,"offset":1617},70,4782,{"start":1619,"end":1620},{"line":1604,"column":900,"offset":1607},{"line":1604,"column":1616,"offset":1617},{"type":27,"value":1622,"position":1623},":",{"start":1624,"end":1625},{"line":1604,"column":1616,"offset":1617},{"line":1604,"column":704,"offset":1626},4783,{"start":1628,"end":1629},{"line":1604,"column":21,"offset":1605},{"line":1604,"column":704,"offset":1626},{"type":27,"value":1631},"\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n",{"type":31,"tagName":1390,"properties":1633,"children":1634,"position":1950},{},[1635,1691],{"type":31,"tagName":1394,"properties":1636,"children":1637,"position":1688},{},[1638],{"type":31,"tagName":1398,"properties":1639,"children":1640,"position":1685},{},[1641,1657,1671],{"type":31,"tagName":1402,"properties":1642,"children":1643,"position":1652},{},[1644],{"type":27,"value":1645,"position":1646},"Status",{"start":1647,"end":1650},{"line":1648,"column":145,"offset":1649},141,4787,{"line":1648,"column":73,"offset":1651},4793,{"start":1653,"end":1655},{"line":1648,"column":21,"offset":1654},4785,{"line":1648,"column":101,"offset":1656},4794,{"type":31,"tagName":1402,"properties":1658,"children":1659,"position":1667},{},[1660],{"type":27,"value":1661,"position":1662},"Code",{"start":1663,"end":1665},{"line":1648,"column":1412,"offset":1664},4796,{"line":1648,"column":181,"offset":1666},4800,{"start":1668,"end":1669},{"line":1648,"column":101,"offset":1656},{"line":1648,"column":209,"offset":1670},4801,{"type":31,"tagName":1402,"properties":1672,"children":1673,"position":1681},{},[1674],{"type":27,"value":1675,"position":1676},"What it means",{"start":1677,"end":1679},{"line":1648,"column":234,"offset":1678},4803,{"line":1648,"column":1169,"offset":1680},4816,{"start":1682,"end":1683},{"line":1648,"column":209,"offset":1670},{"line":1648,"column":813,"offset":1684},4818,{"start":1686,"end":1687},{"line":1648,"column":21,"offset":1654},{"line":1648,"column":813,"offset":1684},{"start":1689,"end":1690},{"line":1648,"column":21,"offset":1654},{"line":1648,"column":813,"offset":1684},{"type":31,"tagName":1440,"properties":1692,"children":1693,"position":1947},{},[1694,1746,1800,1877],{"type":31,"tagName":1398,"properties":1695,"children":1696,"position":1743},{},[1697,1712,1729],{"type":31,"tagName":1447,"properties":1698,"children":1699,"position":1707},{},[1700],{"type":27,"value":838,"position":1701},{"start":1702,"end":1705},{"line":1703,"column":145,"offset":1704},143,4841,{"line":1703,"column":119,"offset":1706},4844,{"start":1708,"end":1710},{"line":1703,"column":21,"offset":1709},4839,{"line":1703,"column":55,"offset":1711},4845,{"type":31,"tagName":1447,"properties":1713,"children":1714,"position":1725},{},[1715],{"type":31,"tagName":283,"properties":1716,"children":1717,"position":1720},{},[1718],{"type":27,"value":1719},"user_not_found",{"start":1721,"end":1723},{"line":1703,"column":73,"offset":1722},4847,{"line":1703,"column":263,"offset":1724},4863,{"start":1726,"end":1727},{"line":1703,"column":55,"offset":1711},{"line":1703,"column":266,"offset":1728},4864,{"type":31,"tagName":1447,"properties":1730,"children":1731,"position":1739},{},[1732],{"type":27,"value":1733,"position":1734},"No one on OpenMarket has that username.",{"start":1735,"end":1737},{"line":1703,"column":1382,"offset":1736},4866,{"line":1703,"column":111,"offset":1738},4905,{"start":1740,"end":1741},{"line":1703,"column":266,"offset":1728},{"line":1703,"column":691,"offset":1742},4907,{"start":1744,"end":1745},{"line":1703,"column":21,"offset":1709},{"line":1703,"column":691,"offset":1742},{"type":31,"tagName":1398,"properties":1747,"children":1748,"position":1797},{},[1749,1765,1782],{"type":31,"tagName":1447,"properties":1750,"children":1751,"position":1760},{},[1752],{"type":27,"value":1753,"position":1754},"422",{"start":1755,"end":1758},{"line":1756,"column":145,"offset":1757},144,4910,{"line":1756,"column":119,"offset":1759},4913,{"start":1761,"end":1763},{"line":1756,"column":21,"offset":1762},4908,{"line":1756,"column":55,"offset":1764},4914,{"type":31,"tagName":1447,"properties":1766,"children":1767,"position":1778},{},[1768],{"type":31,"tagName":283,"properties":1769,"children":1770,"position":1773},{},[1771],{"type":27,"value":1772},"not_invite_only",{"start":1774,"end":1776},{"line":1756,"column":73,"offset":1775},4916,{"line":1756,"column":266,"offset":1777},4933,{"start":1779,"end":1780},{"line":1756,"column":55,"offset":1764},{"line":1756,"column":267,"offset":1781},4934,{"type":31,"tagName":1447,"properties":1783,"children":1784,"position":1793},{},[1785],{"type":27,"value":1786,"position":1787},"The indicator is not Invite only.",{"start":1788,"end":1790},{"line":1756,"column":518,"offset":1789},4936,{"line":1756,"column":1791,"offset":1792},62,4969,{"start":1794,"end":1795},{"line":1756,"column":267,"offset":1781},{"line":1756,"column":195,"offset":1796},4971,{"start":1798,"end":1799},{"line":1756,"column":21,"offset":1762},{"line":1756,"column":195,"offset":1796},{"type":31,"tagName":1398,"properties":1801,"children":1802,"position":1874},{},[1803,1819,1836],{"type":31,"tagName":1447,"properties":1804,"children":1805,"position":1814},{},[1806],{"type":27,"value":1807,"position":1808},"403",{"start":1809,"end":1812},{"line":1810,"column":145,"offset":1811},145,4974,{"line":1810,"column":119,"offset":1813},4977,{"start":1815,"end":1817},{"line":1810,"column":21,"offset":1816},4972,{"line":1810,"column":55,"offset":1818},4978,{"type":31,"tagName":1447,"properties":1820,"children":1821,"position":1832},{},[1822],{"type":31,"tagName":283,"properties":1823,"children":1824,"position":1827},{},[1825],{"type":27,"value":1826},"fair_use",{"start":1828,"end":1830},{"line":1810,"column":73,"offset":1829},4980,{"line":1810,"column":234,"offset":1831},4990,{"start":1833,"end":1834},{"line":1810,"column":55,"offset":1818},{"line":1810,"column":230,"offset":1835},4991,{"type":31,"tagName":1447,"properties":1837,"children":1838,"position":1869},{},[1839,1846,1863],{"type":27,"value":1840,"position":1841},"The Protected indicator is at 1,000 people (",{"start":1842,"end":1844},{"line":1810,"column":393,"offset":1843},4993,{"line":1810,"column":832,"offset":1845},5037,{"type":31,"tagName":1847,"properties":1848,"children":1850,"position":1859},"a",{"href":1849},"overview.md#fair-use",[1851],{"type":27,"value":1852,"position":1853},"Fair use",{"start":1854,"end":1856},{"line":1810,"column":111,"offset":1855},5038,{"line":1810,"column":1857,"offset":1858},75,5046,{"start":1860,"end":1861},{"line":1810,"column":832,"offset":1845},{"line":1810,"column":1091,"offset":1862},5069,{"type":27,"value":1864,"position":1865},").",{"start":1866,"end":1867},{"line":1810,"column":1091,"offset":1862},{"line":1810,"column":1103,"offset":1868},5071,{"start":1870,"end":1871},{"line":1810,"column":230,"offset":1835},{"line":1810,"column":1872,"offset":1873},102,5073,{"start":1875,"end":1876},{"line":1810,"column":21,"offset":1816},{"line":1810,"column":1872,"offset":1873},{"type":31,"tagName":1398,"properties":1878,"children":1879,"position":1944},{},[1880,1895,1912],{"type":31,"tagName":1447,"properties":1881,"children":1882,"position":1890},{},[1883],{"type":27,"value":1884,"position":1885},"429",{"start":1886,"end":1888},{"line":41,"column":145,"offset":1887},5076,{"line":41,"column":119,"offset":1889},5079,{"start":1891,"end":1893},{"line":41,"column":21,"offset":1892},5074,{"line":41,"column":55,"offset":1894},5080,{"type":31,"tagName":1447,"properties":1896,"children":1897,"position":1908},{},[1898],{"type":31,"tagName":283,"properties":1899,"children":1900,"position":1903},{},[1901],{"type":27,"value":1902},"rate_limited",{"start":1904,"end":1906},{"line":41,"column":73,"offset":1905},5082,{"line":41,"column":247,"offset":1907},5096,{"start":1909,"end":1910},{"line":41,"column":55,"offset":1894},{"line":41,"column":900,"offset":1911},5097,{"type":31,"tagName":1447,"properties":1913,"children":1914,"position":1940},{},[1915,1923,1933],{"type":27,"value":1916,"position":1917},"More than 600 writes in a minute on this key. Wait the seconds the ",{"start":1918,"end":1920},{"line":41,"column":266,"offset":1919},5099,{"line":41,"column":1921,"offset":1922},93,5166,{"type":31,"tagName":283,"properties":1924,"children":1925,"position":1928},{},[1926],{"type":27,"value":1927},"retry-after",{"start":1929,"end":1930},{"line":41,"column":1921,"offset":1922},{"line":41,"column":1931,"offset":1932},106,5179,{"type":27,"value":1934,"position":1935}," header names.",{"start":1936,"end":1937},{"line":41,"column":1931,"offset":1932},{"line":41,"column":1938,"offset":1939},120,5193,{"start":1941,"end":1942},{"line":41,"column":900,"offset":1911},{"line":41,"column":1310,"offset":1943},5195,{"start":1945,"end":1946},{"line":41,"column":21,"offset":1892},{"line":41,"column":1310,"offset":1943},{"start":1948,"end":1949},{"line":1703,"column":21,"offset":1709},{"line":41,"column":1310,"offset":1943},{"start":1951,"end":1952},{"line":1648,"column":21,"offset":1654},{"line":41,"column":1310,"offset":1943},{"type":27,"value":28},{"type":31,"tagName":48,"properties":1955,"children":1956,"position":1965},{},[1957],{"type":27,"value":1958,"position":1959},"Wire it to your billing",{"start":1960,"end":1963},{"line":1961,"column":56,"offset":1962},148,5200,{"line":1961,"column":267,"offset":1964},5223,{"start":1966,"end":1968},{"line":1961,"column":21,"offset":1967},5197,{"line":1961,"column":267,"offset":1964},{"type":27,"value":28},{"type":31,"tagName":32,"properties":1971,"children":1972,"position":1982},{},[1973],{"type":27,"value":1974,"position":1975},"Two calls cover a membership, keyed by the OpenMarket username you collect\nat checkout:",{"start":1976,"end":1979},{"line":1977,"column":21,"offset":1978},150,5225,{"line":1980,"column":144,"offset":1981},151,5312,{"start":1983,"end":1984},{"line":1977,"column":21,"offset":1978},{"line":1980,"column":144,"offset":1981},{"type":27,"value":28},{"type":31,"tagName":132,"properties":1987,"children":1988,"position":2103},{},[1989,1990,2055,2056,2102],{"type":27,"value":28},{"type":31,"tagName":137,"properties":1991,"children":1992,"position":2051},{},[1993,2009,2014,2027,2033,2044],{"type":31,"tagName":79,"properties":1994,"children":1995,"position":2004},{},[1996],{"type":27,"value":1997,"position":1998},"On signup",{"start":1999,"end":2002},{"line":2000,"column":38,"offset":2001},153,5318,{"line":2000,"column":59,"offset":2003},5327,{"start":2005,"end":2007},{"line":2000,"column":145,"offset":2006},5316,{"line":2000,"column":181,"offset":2008},5329,{"type":27,"value":991,"position":2010},{"start":2011,"end":2012},{"line":2000,"column":181,"offset":2008},{"line":2000,"column":212,"offset":2013},5331,{"type":31,"tagName":283,"properties":2015,"children":2016,"position":2024},{},[2017],{"type":27,"value":2018,"position":2019},"PUT /access/\u003Cusername>",{"start":2020,"end":2021},{"line":2000,"column":212,"offset":2013},{"line":2000,"column":2022,"offset":2023},42,5355,{"start":2025,"end":2026},{"line":2000,"column":212,"offset":2013},{"line":2000,"column":2022,"offset":2023},{"type":27,"value":2028,"position":2029},", with ",{"start":2030,"end":2031},{"line":2000,"column":2022,"offset":2023},{"line":2000,"column":985,"offset":2032},5362,{"type":31,"tagName":283,"properties":2034,"children":2035,"position":2041},{},[2036],{"type":27,"value":1128,"position":2037},{"start":2038,"end":2039},{"line":2000,"column":985,"offset":2032},{"line":2000,"column":499,"offset":2040},5369,{"start":2042,"end":2043},{"line":2000,"column":985,"offset":2032},{"line":2000,"column":499,"offset":2040},{"type":27,"value":2045,"position":2046}," set to the date\nthey have paid through. Send it again on each renewal, and access lapses\non its own if a renewal never comes.",{"start":2047,"end":2048},{"line":2000,"column":499,"offset":2040},{"line":2049,"column":822,"offset":2050},155,5499,{"start":2052,"end":2054},{"line":2000,"column":21,"offset":2053},5314,{"line":2049,"column":822,"offset":2050},{"type":27,"value":28},{"type":31,"tagName":137,"properties":2057,"children":2058,"position":2098},{},[2059,2076,2081,2093],{"type":31,"tagName":79,"properties":2060,"children":2061,"position":2071},{},[2062],{"type":27,"value":2063,"position":2064},"On cancellation or refund",{"start":2065,"end":2068},{"line":2066,"column":38,"offset":2067},156,5504,{"line":2066,"column":2069,"offset":2070},30,5529,{"start":2072,"end":2074},{"line":2066,"column":145,"offset":2073},5502,{"line":2066,"column":1169,"offset":2075},5531,{"type":27,"value":991,"position":2077},{"start":2078,"end":2079},{"line":2066,"column":1169,"offset":2075},{"line":2066,"column":813,"offset":2080},5533,{"type":31,"tagName":283,"properties":2082,"children":2083,"position":2090},{},[2084],{"type":27,"value":2085,"position":2086},"DELETE /access/\u003Cusername>",{"start":2087,"end":2088},{"line":2066,"column":813,"offset":2080},{"line":2066,"column":164,"offset":2089},5560,{"start":2091,"end":2092},{"line":2066,"column":813,"offset":2080},{"line":2066,"column":164,"offset":2089},{"type":27,"value":122,"position":2094},{"start":2095,"end":2096},{"line":2066,"column":164,"offset":2089},{"line":2066,"column":1791,"offset":2097},5561,{"start":2099,"end":2101},{"line":2066,"column":21,"offset":2100},5500,{"line":2066,"column":1791,"offset":2097},{"type":27,"value":28},{"start":2104,"end":2105},{"line":2000,"column":21,"offset":2053},{"line":2066,"column":1791,"offset":2097},{"type":27,"value":28},{"type":31,"tagName":32,"properties":2108,"children":2109,"position":2120},{},[2110],{"type":27,"value":2111,"position":2112},"No username at checkout? Make each customer a personal link instead, and\nsend it with your welcome email.",{"start":2113,"end":2116},{"line":2114,"column":21,"offset":2115},158,5563,{"line":2117,"column":2118,"offset":2119},159,33,5668,{"start":2121,"end":2122},{"line":2114,"column":21,"offset":2115},{"line":2117,"column":2118,"offset":2119},{"type":27,"value":28},{"type":31,"tagName":32,"properties":2125,"children":2126,"position":2158},{},[2127,2135,2151],{"type":27,"value":2128,"position":2129},"Selling through Whop, or behind a paid Discord role?\n",{"start":2130,"end":2133},{"line":2131,"column":21,"offset":2132},161,5670,{"line":39,"column":21,"offset":2134},5723,{"type":31,"tagName":1847,"properties":2136,"children":2138,"position":2147},{"href":2137},"connect-discord-or-whop.md",[2139],{"type":27,"value":2140,"position":2141},"Connect Discord or Whop",{"start":2142,"end":2145},{"line":39,"column":2143,"offset":2144},2,5724,{"line":39,"column":263,"offset":2146},5747,{"start":2148,"end":2149},{"line":39,"column":21,"offset":2134},{"line":39,"column":496,"offset":2150},5776,{"type":27,"value":2152,"position":2153}," has a small script for\neach.",{"start":2154,"end":2155},{"line":39,"column":496,"offset":2150},{"line":2156,"column":119,"offset":2157},163,5805,{"start":2159,"end":2160},{"line":2131,"column":21,"offset":2132},{"line":2156,"column":119,"offset":2157},{"type":27,"value":28},{"type":31,"tagName":32,"properties":2163,"children":2164,"position":2195},{},[2165,2174,2189],{"type":27,"value":2166,"position":2167},"Selling with Stripe, on Patreon or through a paid Telegram group?\n",{"start":2168,"end":2171},{"line":2169,"column":21,"offset":2170},165,5807,{"line":2172,"column":21,"offset":2173},166,5873,{"type":31,"tagName":1847,"properties":2175,"children":2177,"position":2185},{"href":2176},"recipes.md",[2178],{"type":27,"value":2179,"position":2180},"Ready-made recipes",{"start":2181,"end":2183},{"line":2172,"column":2143,"offset":2182},5874,{"line":2172,"column":230,"offset":2184},5892,{"start":2186,"end":2187},{"line":2172,"column":21,"offset":2173},{"line":2172,"column":2118,"offset":2188},5905,{"type":27,"value":2190,"position":2191}," has a complete file for each, ready to run.",{"start":2192,"end":2193},{"line":2172,"column":2118,"offset":2188},{"line":2172,"column":1565,"offset":2194},5949,{"start":2196,"end":2197},{"line":2169,"column":21,"offset":2170},{"line":2172,"column":1565,"offset":2194},{"type":27,"value":28},{"type":31,"tagName":32,"properties":2200,"children":2201,"position":2211},{},[2202],{"type":27,"value":2203,"position":2204},"Webhooks get missed now and then. A nightly batch that compares the list\nwith your own member table catches whatever slipped through.",{"start":2205,"end":2208},{"line":2206,"column":21,"offset":2207},168,5951,{"line":2209,"column":164,"offset":2210},169,6084,{"start":2212,"end":2213},{"line":2206,"column":21,"offset":2207},{"line":2209,"column":164,"offset":2210},{"quirksMode":2215},false,{"start":2217,"end":2218},{"line":21,"column":21,"offset":22},{"line":2219,"column":21,"offset":2220},170,6085,1791265209101]