[{"data":1,"prerenderedAt":2200},["ShallowReactive",2],{"navigation_docs_en":3,"-en-integration-api-consuming-content":427,"-en-integration-api-consuming-content-surround":2195},[4,31,117,188,238,271,310,369,378],{"title":5,"icon":6,"path":7,"stem":8,"children":9,"page":30},"Getting started","i-hugeicons-rocket-01","\u002Fen\u002Fgetting-started","en\u002F01.getting-started",[10,15,20,25],{"title":11,"path":12,"stem":13,"icon":14},"What is DDM?","\u002Fen\u002Fgetting-started\u002Fwhat-is-ddm","en\u002F01.getting-started\u002F01.what-is-ddm","i-hugeicons-information-circle",{"title":16,"path":17,"stem":18,"icon":19},"Account and sign-in","\u002Fen\u002Fgetting-started\u002Fsign-in","en\u002F01.getting-started\u002F02.sign-in","i-hugeicons-key-01",{"title":21,"path":22,"stem":23,"icon":24},"AI in DDM","\u002Fen\u002Fgetting-started\u002Fai-in-ddm","en\u002F01.getting-started\u002F03.ai-in-ddm","i-hugeicons-ai-magic",{"title":26,"path":27,"stem":28,"icon":29},"System status","\u002Fen\u002Fgetting-started\u002Fsystem-status","en\u002F01.getting-started\u002F04.system-status","i-hugeicons-activity-03",false,{"title":32,"icon":33,"path":34,"stem":35,"children":36,"page":30},"CMS","i-hugeicons-dashboard-square-01","\u002Fen\u002Fcms","en\u002F02.cms",[37,42,47,52,57,62,67,72,77,82,87,92,97,102,107,112],{"title":38,"path":39,"stem":40,"icon":41},"The CMS at a glance","\u002Fen\u002Fcms\u002Foverview","en\u002F02.cms\u002F01.overview","i-hugeicons-compass-01",{"title":43,"path":44,"stem":45,"icon":46},"Uploading documents","\u002Fen\u002Fcms\u002Fupload","en\u002F02.cms\u002F02.upload","i-hugeicons-upload-01",{"title":48,"path":49,"stem":50,"icon":51},"Categories","\u002Fen\u002Fcms\u002Fcategories","en\u002F02.cms\u002F03.categories","i-hugeicons-folder-tree",{"title":53,"path":54,"stem":55,"icon":56},"Editing documents","\u002Fen\u002Fcms\u002Fdocuments","en\u002F02.cms\u002F04.documents","i-hugeicons-file-edit",{"title":58,"path":59,"stem":60,"icon":61},"Searching and filtering","\u002Fen\u002Fcms\u002Fsearch-and-filters","en\u002F02.cms\u002F05.search-and-filters","i-hugeicons-search-01",{"title":63,"path":64,"stem":65,"icon":66},"Groups and permissions","\u002Fen\u002Fcms\u002Fgroups-and-permissions","en\u002F02.cms\u002F06.groups-and-permissions","i-hugeicons-user-multiple",{"title":68,"path":69,"stem":70,"icon":71},"Users","\u002Fen\u002Fcms\u002Fusers","en\u002F02.cms\u002F07.users","i-hugeicons-user-add-01",{"title":73,"path":74,"stem":75,"icon":76},"Approvals","\u002Fen\u002Fcms\u002Fapprovals","en\u002F02.cms\u002F08.approvals","i-hugeicons-checkmark-badge-01",{"title":78,"path":79,"stem":80,"icon":81},"Markets and translations","\u002Fen\u002Fcms\u002Fmarkets-and-translations","en\u002F02.cms\u002F09.markets-and-translations","i-hugeicons-globe-02",{"title":83,"path":84,"stem":85,"icon":86},"Note templates","\u002Fen\u002Fcms\u002Fnote-templates","en\u002F02.cms\u002F10.note-templates","i-hugeicons-layout-01",{"title":88,"path":89,"stem":90,"icon":91},"Usage and audit log","\u002Fen\u002Fcms\u002Fusage-and-audit","en\u002F02.cms\u002F11.usage-and-audit","i-hugeicons-chart-column",{"title":93,"path":94,"stem":95,"icon":96},"AI assistant","\u002Fen\u002Fcms\u002Fassistant","en\u002F02.cms\u002F12.assistant","i-hugeicons-sparkles",{"title":98,"path":99,"stem":100,"icon":101},"Settings","\u002Fen\u002Fcms\u002Fsettings","en\u002F02.cms\u002F13.settings","i-hugeicons-settings-02",{"title":103,"path":104,"stem":105,"icon":106},"Plans","\u002Fen\u002Fcms\u002Fplans","en\u002F02.cms\u002F14.plans","i-hugeicons-package",{"title":108,"path":109,"stem":110,"icon":111},"Feature requests","\u002Fen\u002Fcms\u002Ffeature-requests","en\u002F02.cms\u002F15.feature-requests","i-hugeicons-idea-01",{"title":113,"path":114,"stem":115,"icon":116},"Report a bug","\u002Fen\u002Fcms\u002Fbug-reports","en\u002F02.cms\u002F16.bug-reports","i-hugeicons-bug-01",{"title":118,"icon":119,"path":120,"stem":121,"children":122,"page":30},"App","i-hugeicons-smart-phone-01","\u002Fen\u002Fapp","en\u002F03.app",[123,128,133,138,143,147,152,157,162,167,170,173,176,179,184],{"title":124,"path":125,"stem":126,"icon":127},"Signing in and finding your way","\u002Fen\u002Fapp\u002Foverview","en\u002F03.app\u002F01.overview","i-hugeicons-login-03",{"title":129,"path":130,"stem":131,"icon":132},"Tabs and split view","\u002Fen\u002Fapp\u002Ftabs","en\u002F03.app\u002F02.tabs","i-hugeicons-layout-2-column",{"title":134,"path":135,"stem":136,"icon":137},"Finding and reading documents","\u002Fen\u002Fapp\u002Fdocuments","en\u002F03.app\u002F03.documents","i-hugeicons-file-01",{"title":139,"path":140,"stem":141,"icon":142},"Favorites","\u002Fen\u002Fapp\u002Ffavorites","en\u002F03.app\u002F04.favorites","i-hugeicons-favourite",{"title":144,"path":145,"stem":146,"icon":61},"Searching","\u002Fen\u002Fapp\u002Fsearch","en\u002F03.app\u002F05.search",{"title":148,"path":149,"stem":150,"icon":151},"Notes","\u002Fen\u002Fapp\u002Fnotes","en\u002F03.app\u002F06.notes","i-hugeicons-note-edit",{"title":153,"path":154,"stem":155,"icon":156},"Calendar and appointments","\u002Fen\u002Fapp\u002Fcalendar","en\u002F03.app\u002F07.calendar","i-hugeicons-calendar-03",{"title":158,"path":159,"stem":160,"icon":161},"Sending to customers","\u002Fen\u002Fapp\u002Foutbox","en\u002F03.app\u002F08.outbox","i-hugeicons-sent",{"title":163,"path":164,"stem":165,"icon":166},"Working offline","\u002Fen\u002Fapp\u002Foffline","en\u002F03.app\u002F09.offline","i-hugeicons-wifi-off-01",{"title":93,"path":168,"stem":169,"icon":96},"\u002Fen\u002Fapp\u002Fassistant","en\u002F03.app\u002F10.assistant",{"title":98,"path":171,"stem":172,"icon":101},"\u002Fen\u002Fapp\u002Fsettings","en\u002F03.app\u002F11.settings",{"title":108,"path":174,"stem":175,"icon":111},"\u002Fen\u002Fapp\u002Ffeature-requests","en\u002F03.app\u002F12.feature-requests",{"title":113,"path":177,"stem":178,"icon":116},"\u002Fen\u002Fapp\u002Fbug-reports","en\u002F03.app\u002F13.bug-reports",{"title":180,"path":181,"stem":182,"icon":183},"Desktop app","\u002Fen\u002Fapp\u002Fdesktop-app","en\u002F03.app\u002F14.desktop-app","i-hugeicons-computer",{"title":185,"path":186,"stem":187,"icon":119},"Mobile app","\u002Fen\u002Fapp\u002Fmobile-app","en\u002F03.app\u002F15.mobile-app",{"title":189,"icon":190,"path":191,"stem":192,"children":193,"page":30},"Sign-in & directories","i-hugeicons-security-check","\u002Fen\u002Fsign-in-and-directories","en\u002F04.sign-in-and-directories",[194,198,202,207,212,217,222,226,230,234],{"title":195,"path":196,"stem":197,"icon":19},"Sign-in methods","\u002Fen\u002Fsign-in-and-directories\u002Fsign-in-methods","en\u002F04.sign-in-and-directories\u002F01.sign-in-methods",{"title":199,"path":200,"stem":201,"icon":190},"Single sign-on","\u002Fen\u002Fsign-in-and-directories\u002Fsingle-sign-on","en\u002F04.sign-in-and-directories\u002F02.single-sign-on",{"title":203,"path":204,"stem":205,"icon":206},"Directory services (LDAP)","\u002Fen\u002Fsign-in-and-directories\u002Fdirectory-services","en\u002F04.sign-in-and-directories\u002F03.directory-services","i-hugeicons-hierarchy",{"title":208,"path":209,"stem":210,"icon":211},"Synchronisation and sign-in","\u002Fen\u002Fsign-in-and-directories\u002Fdirectory-sync","en\u002F04.sign-in-and-directories\u002F04.directory-sync","i-hugeicons-refresh",{"title":213,"path":214,"stem":215,"icon":216},"Microsoft Entra ID","\u002Fen\u002Fsign-in-and-directories\u002Fmicrosoft-entra-id","en\u002F04.sign-in-and-directories\u002F05.microsoft-entra-id","i-hugeicons-building-03",{"title":218,"path":219,"stem":220,"icon":221},"Okta","\u002Fen\u002Fsign-in-and-directories\u002Fokta","en\u002F04.sign-in-and-directories\u002F06.okta","i-hugeicons-finger-print",{"title":223,"path":224,"stem":225,"icon":81},"Google Workspace","\u002Fen\u002Fsign-in-and-directories\u002Fgoogle-workspace","en\u002F04.sign-in-and-directories\u002F07.google-workspace",{"title":227,"path":228,"stem":229,"icon":119},"Two-factor authentication","\u002Fen\u002Fsign-in-and-directories\u002Ftwo-factor-authentication","en\u002F04.sign-in-and-directories\u002F08.two-factor-authentication",{"title":231,"path":232,"stem":233,"icon":221},"Passkeys","\u002Fen\u002Fsign-in-and-directories\u002Fpasskeys","en\u002F04.sign-in-and-directories\u002F09.passkeys",{"title":235,"path":236,"stem":237,"icon":156},"Calendar access","\u002Fen\u002Fsign-in-and-directories\u002Fcalendar-access","en\u002F04.sign-in-and-directories\u002F10.calendar-access",{"title":239,"icon":240,"path":241,"stem":242,"children":243,"page":30},"MCP server","i-hugeicons-ai-network","\u002Fen\u002Fmcp-server","en\u002F05.mcp-server",[244,248,253,257,262,266],{"title":245,"path":246,"stem":247,"icon":240},"Overview","\u002Fen\u002Fmcp-server\u002Foverview","en\u002F05.mcp-server\u002F01.overview",{"title":249,"path":250,"stem":251,"icon":252},"Setup","\u002Fen\u002Fmcp-server\u002Fsetup","en\u002F05.mcp-server\u002F02.setup","i-hugeicons-plug-socket",{"title":254,"path":255,"stem":256,"icon":111},"What you can do with it","\u002Fen\u002Fmcp-server\u002Fuse-cases","en\u002F05.mcp-server\u002F03.use-cases",{"title":258,"path":259,"stem":260,"icon":261},"Tools","\u002Fen\u002Fmcp-server\u002Ftools","en\u002F05.mcp-server\u002F04.tools","i-hugeicons-wrench-01",{"title":263,"path":264,"stem":265,"icon":76},"Approving changes","\u002Fen\u002Fmcp-server\u002Fapproving-changes","en\u002F05.mcp-server\u002F05.approving-changes",{"title":267,"path":268,"stem":269,"icon":270},"Administration & security","\u002Fen\u002Fmcp-server\u002Fadmin-and-security","en\u002F05.mcp-server\u002F06.admin-and-security","i-hugeicons-shield-key",{"title":272,"icon":273,"path":274,"stem":275,"children":276,"page":30},"External sources","i-hugeicons-database-sync","\u002Fen\u002Fexternal-sources","en\u002F06.external-sources",[277,280,285,290,295,300,305],{"title":245,"path":278,"stem":279,"icon":273},"\u002Fen\u002Fexternal-sources\u002Foverview","en\u002F06.external-sources\u002F01.overview",{"title":281,"path":282,"stem":283,"icon":284},"SharePoint","\u002Fen\u002Fexternal-sources\u002Fsharepoint","en\u002F06.external-sources\u002F02.sharepoint","i-hugeicons-microsoft",{"title":286,"path":287,"stem":288,"icon":289},"OneDrive","\u002Fen\u002Fexternal-sources\u002Fonedrive","en\u002F06.external-sources\u002F03.onedrive","i-hugeicons-folder-cloud",{"title":291,"path":292,"stem":293,"icon":294},"Google Drive","\u002Fen\u002Fexternal-sources\u002Fgoogle-drive","en\u002F06.external-sources\u002F04.google-drive","i-hugeicons-google-drive",{"title":296,"path":297,"stem":298,"icon":299},"FTP \u002F SFTP","\u002Fen\u002Fexternal-sources\u002Fftp-sftp","en\u002F06.external-sources\u002F05.ftp-sftp","i-hugeicons-server-stack-01",{"title":301,"path":302,"stem":303,"icon":304},"REST interface","\u002Fen\u002Fexternal-sources\u002Frest","en\u002F06.external-sources\u002F06.rest","i-hugeicons-api",{"title":306,"path":307,"stem":308,"icon":309},"SOAP interface","\u002Fen\u002Fexternal-sources\u002Fsoap","en\u002F06.external-sources\u002F07.soap","i-hugeicons-source-code",{"title":311,"icon":304,"path":312,"stem":313,"children":314,"page":30},"Integration API","\u002Fen\u002Fintegration-api","en\u002F07.integration-api",[315,318,322,327,332,337,341,346,350,354,359,364],{"title":245,"path":316,"stem":317,"icon":14},"\u002Fen\u002Fintegration-api\u002Foverview","en\u002F07.integration-api\u002F01.overview",{"title":319,"path":320,"stem":321,"icon":19},"Authentication","\u002Fen\u002Fintegration-api\u002Fauthentication","en\u002F07.integration-api\u002F02.authentication",{"title":323,"path":324,"stem":325,"icon":326},"Conventions","\u002Fen\u002Fintegration-api\u002Fconventions","en\u002F07.integration-api\u002F03.conventions","i-hugeicons-book-open-01",{"title":328,"path":329,"stem":330,"icon":331},"Pushing documents","\u002Fen\u002Fintegration-api\u002Fpushing-documents","en\u002F07.integration-api\u002F04.pushing-documents","i-hugeicons-upload-02",{"title":333,"path":334,"stem":335,"icon":336},"Consuming content","\u002Fen\u002Fintegration-api\u002Fconsuming-content","en\u002F07.integration-api\u002F05.consuming-content","i-hugeicons-download-02",{"title":338,"path":339,"stem":340,"icon":137},"Reference: documents","\u002Fen\u002Fintegration-api\u002Freference-documents","en\u002F07.integration-api\u002F06.reference-documents",{"title":342,"path":343,"stem":344,"icon":345},"Reference: categories, tags, markets","\u002Fen\u002Fintegration-api\u002Freference-categories-tags","en\u002F07.integration-api\u002F07.reference-categories-tags","i-hugeicons-folder-01",{"title":347,"path":348,"stem":349,"icon":211},"Reference: sync manifest","\u002Fen\u002Fintegration-api\u002Freference-sync","en\u002F07.integration-api\u002F08.reference-sync",{"title":351,"path":352,"stem":353,"icon":309},"OpenAPI","\u002Fen\u002Fintegration-api\u002Fopenapi","en\u002F07.integration-api\u002F09.openapi",{"title":355,"path":356,"stem":357,"icon":358},"Changelog","\u002Fen\u002Fintegration-api\u002Fchangelog","en\u002F07.integration-api\u002F10.changelog","i-hugeicons-time-schedule",{"title":360,"path":361,"stem":362,"icon":363},"Reference: groups, markets, access","\u002Fen\u002Fintegration-api\u002Freference-groups-access","en\u002F07.integration-api\u002F11.reference-groups-access","i-hugeicons-user-lock-01",{"title":365,"path":366,"stem":367,"icon":368},"Moving from CMWS","\u002Fen\u002Fintegration-api\u002Fcmws","en\u002F07.integration-api\u002F12.cmws","i-hugeicons-arrow-reload-horizontal",{"title":370,"icon":371,"path":372,"stem":373,"children":374,"page":30},"What's new","i-hugeicons-gift","\u002Fen\u002Fwhats-new","en\u002F08.whats-new",[375],{"title":355,"path":376,"stem":377,"icon":358},"\u002Fen\u002Fwhats-new\u002Fchangelog","en\u002F08.whats-new\u002F01.changelog",{"title":379,"icon":299,"path":380,"stem":381,"children":382,"page":30},"Self-hosting","\u002Fen\u002Fself-hosting","en\u002F09.self-hosting",[383,386,390,395,399,404,408,413,418,422],{"title":245,"path":384,"stem":385,"icon":14},"\u002Fen\u002Fself-hosting\u002Foverview","en\u002F09.self-hosting\u002F01.overview",{"title":387,"path":388,"stem":389,"icon":106},"Docker Compose","\u002Fen\u002Fself-hosting\u002Fdocker-compose","en\u002F09.self-hosting\u002F02.docker-compose",{"title":391,"path":392,"stem":393,"icon":394},"Kubernetes","\u002Fen\u002Fself-hosting\u002Fkubernetes","en\u002F09.self-hosting\u002F03.kubernetes","i-hugeicons-cloud",{"title":396,"path":397,"stem":398,"icon":101},"Configuration","\u002Fen\u002Fself-hosting\u002Fconfiguration","en\u002F09.self-hosting\u002F04.configuration",{"title":400,"path":401,"stem":402,"icon":403},"Licence","\u002Fen\u002Fself-hosting\u002Flicence","en\u002F09.self-hosting\u002F05.licence","i-hugeicons-license",{"title":405,"path":406,"stem":407,"icon":211},"Updates","\u002Fen\u002Fself-hosting\u002Fupdates","en\u002F09.self-hosting\u002F06.updates",{"title":409,"path":410,"stem":411,"icon":412},"Postgres","\u002Fen\u002Fself-hosting\u002Fpostgres","en\u002F09.self-hosting\u002F07.postgres","i-hugeicons-database",{"title":414,"path":415,"stem":416,"icon":417},"Backups","\u002Fen\u002Fself-hosting\u002Fbackups","en\u002F09.self-hosting\u002F08.backups","i-hugeicons-database-restore",{"title":419,"path":420,"stem":421,"icon":261},"Troubleshooting","\u002Fen\u002Fself-hosting\u002Ftroubleshooting","en\u002F09.self-hosting\u002F09.troubleshooting",{"title":423,"path":424,"stem":425,"icon":426},"Firewall","\u002Fen\u002Fself-hosting\u002Ffirewall","en\u002F09.self-hosting\u002F10.firewall","i-hugeicons-firewall",{"id":428,"title":333,"body":429,"description":2188,"extension":2189,"links":2190,"meta":2191,"navigation":2192,"path":334,"seo":2193,"stem":335,"__hash__":2194},"docs_en\u002Fen\u002F07.integration-api\u002F05.consuming-content.md",{"type":430,"value":431,"toc":2180},"minimark",[432,445,450,461,482,485,489,492,579,601,605,611,643,649,653,660,682,702,706,709,2113,2117,2176],[433,434,435,436,440,441,444],"p",{},"Another system can ",[437,438,439],"strong",{},"take content out"," of DDM: a website showing the current price lists, a shop attaching data sheets to products, a search index, an archive. All it needs is a ",[437,442,443],{},"read-only key",".",[446,447,449],"h2",{"id":448},"_1-create-a-read-only-key","1. Create a read-only key",[433,451,452,453,456,457,460],{},"Under ",[437,454,455],{},"Settings › API access",", create a key with only ",[437,458,459],{},"Read",". Choose what it sees:",[462,463,464,476],"ul",{},[465,466,467,470,471,475],"li",{},[437,468,469],{},"Released content only"," is right for anything public. It sees what readers see in the app: nothing archived, and with ",[472,473,474],"em",{},"Distribute only after approval"," nothing unapproved. It can only download files that may leave the app.",[465,477,478,481],{},[437,479,480],{},"Everything in Documents"," includes drafts, for an internal archive or a migration.",[433,483,484],{},"Let it act as a person who sees exactly the categories the other system should receive.",[446,486,488],{"id":487},"_2-the-first-full-load","2. The first full load",[433,490,491],{},"Fetch the categories, then page through every document and download the files:",[493,494,499],"pre",{"className":495,"code":496,"language":497,"meta":498,"style":498},"language-bash shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","curl https:\u002F\u002Fddm.example.com\u002Fapi\u002Fext\u002Fv1\u002Fcategories -H \"Authorization: Bearer $DDM_API_KEY\"\ncurl \"https:\u002F\u002Fddm.example.com\u002Fapi\u002Fext\u002Fv1\u002Fdocuments?limit=500\" -H \"Authorization: Bearer $DDM_API_KEY\"\ncurl -o Preisliste.pdf https:\u002F\u002Fddm.example.com\u002Fapi\u002Fext\u002Fv1\u002Fdocuments\u002F8d0c1f5e-…\u002Fcontent -H \"Authorization: Bearer $DDM_API_KEY\"\n","bash","",[500,501,502,532,555],"code",{"__ignoreMap":498},[503,504,507,511,515,518,522,525,529],"span",{"class":505,"line":506},"line",1,[503,508,510],{"class":509},"sBMFI","curl",[503,512,514],{"class":513},"sfazB"," https:\u002F\u002Fddm.example.com\u002Fapi\u002Fext\u002Fv1\u002Fcategories",[503,516,517],{"class":513}," -H",[503,519,521],{"class":520},"sMK4o"," \"",[503,523,524],{"class":513},"Authorization: Bearer ",[503,526,528],{"class":527},"sTEyZ","$DDM_API_KEY",[503,530,531],{"class":520},"\"\n",[503,533,535,537,539,542,545,547,549,551,553],{"class":505,"line":534},2,[503,536,510],{"class":509},[503,538,521],{"class":520},[503,540,541],{"class":513},"https:\u002F\u002Fddm.example.com\u002Fapi\u002Fext\u002Fv1\u002Fdocuments?limit=500",[503,543,544],{"class":520},"\"",[503,546,517],{"class":513},[503,548,521],{"class":520},[503,550,524],{"class":513},[503,552,528],{"class":527},[503,554,531],{"class":520},[503,556,558,560,563,566,569,571,573,575,577],{"class":505,"line":557},3,[503,559,510],{"class":509},[503,561,562],{"class":513}," -o",[503,564,565],{"class":513}," Preisliste.pdf",[503,567,568],{"class":513}," https:\u002F\u002Fddm.example.com\u002Fapi\u002Fext\u002Fv1\u002Fdocuments\u002F8d0c1f5e-…\u002Fcontent",[503,570,517],{"class":513},[503,572,521],{"class":520},[503,574,524],{"class":513},[503,576,528],{"class":527},[503,578,531],{"class":520},[433,580,581,582,585,586,589,590,593,594,597,598,444],{},"Follow ",[500,583,584],{},"nextCursor"," until it is ",[500,587,588],{},"null",". Store, for each document, its ",[500,591,592],{},"id",", ",[500,595,596],{},"updatedAt"," and ",[500,599,600],{},"currentVersion.checksum",[446,602,604],{"id":603},"_3-each-later-run-what-changed","3. Each later run: what changed",[433,606,607,608,610],{},"Ask only for what changed since the newest ",[500,609,596],{}," you have:",[493,612,614],{"className":495,"code":613,"language":497,"meta":498,"style":498},"curl \"https:\u002F\u002Fddm.example.com\u002Fapi\u002Fext\u002Fv1\u002Fdocuments?updatedSince=2026-10-27T03:00:00Z&limit=500\" \\\n  -H \"Authorization: Bearer $DDM_API_KEY\"\n",[500,615,616,630],{"__ignoreMap":498},[503,617,618,620,622,625,627],{"class":505,"line":506},[503,619,510],{"class":509},[503,621,521],{"class":520},[503,623,624],{"class":513},"https:\u002F\u002Fddm.example.com\u002Fapi\u002Fext\u002Fv1\u002Fdocuments?updatedSince=2026-10-27T03:00:00Z&limit=500",[503,626,544],{"class":520},[503,628,629],{"class":527}," \\\n",[503,631,632,635,637,639,641],{"class":505,"line":534},[503,633,634],{"class":513},"  -H",[503,636,521],{"class":520},[503,638,524],{"class":513},[503,640,528],{"class":527},[503,642,531],{"class":520},[433,644,645,646,648],{},"For each document returned, compare ",[500,647,600],{}," with yours. Download the file only if it differs, and update the details (name, titles, tags, categories) either way.",[446,650,652],{"id":651},"_4-each-later-run-what-is-gone","4. Each later run: what is gone",[433,654,655,656,659],{},"A deleted document is not in any list, because it no longer exists. Neither is one that was archived out of the released view, or moved where the key's person cannot see it. To find these, fetch the ",[437,657,658],{},"manifest",":",[493,661,663],{"className":495,"code":662,"language":497,"meta":498,"style":498},"curl https:\u002F\u002Fddm.example.com\u002Fapi\u002Fext\u002Fv1\u002Fsync -H \"Authorization: Bearer $DDM_API_KEY\"\n",[500,664,665],{"__ignoreMap":498},[503,666,667,669,672,674,676,678,680],{"class":505,"line":506},[503,668,510],{"class":509},[503,670,671],{"class":513}," https:\u002F\u002Fddm.example.com\u002Fapi\u002Fext\u002Fv1\u002Fsync",[503,673,517],{"class":513},[503,675,521],{"class":520},[503,677,524],{"class":513},[503,679,528],{"class":527},[503,681,531],{"class":520},[433,683,684,685,688,689,692,693,696,697,444],{},"It lists every document the key can see, in a few fields each. Delete from your system whatever you have that is ",[437,686,687],{},"not in the manifest"," – but only if ",[500,690,691],{},"complete"," is ",[500,694,695],{},"true",". Above 50,000 documents the manifest is cut off, and then it cannot tell you what is gone. A worked example in four languages is in ",[698,699,701],"a",{"href":700},"\u002Fen\u002Fintegration-api\u002Freference-sync#example-finding-deleted-documents","Finding deleted documents",[446,703,705],{"id":704},"a-complete-example","A complete example",[433,707,708],{},"A sync script in JavaScript (Node 20+). It runs as often as you like, and keeps its state in a JSON file:",[493,710,714],{"className":711,"code":712,"language":713,"meta":498,"style":498},"language-js shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","import { readFile, writeFile, mkdir, rm } from 'node:fs\u002Fpromises'\n\nconst BASE = 'https:\u002F\u002Fddm.example.com\u002Fapi\u002Fext\u002Fv1'\nconst headers = { Authorization: `Bearer ${process.env.DDM_API_KEY}` }\nconst STATE = '.\u002Fddm-state.json'\nconst FILES = '.\u002Ffiles'\n\nconst state = JSON.parse(await readFile(STATE, 'utf8').catch(() => '{\"since\":null,\"documents\":{}}'))\nawait mkdir(FILES, { recursive: true })\n\nasync function get(path, params = {}) {\n  for (let attempt = 0; ; attempt++) {\n    const response = await fetch(`${BASE}${path}?${new URLSearchParams(params)}`, { headers })\n\n    if (response.ok) return response\n    if ((response.status === 429 || response.status >= 500) && attempt \u003C 5) {\n      await new Promise(resolve => setTimeout(resolve, 1000 * (Number(response.headers.get('retry-after')) || 2 ** attempt)))\n      continue\n    }\n    throw new Error(`${response.status} ${path}: ${await response.text()}`)\n  }\n}\n\n\u002F\u002F What changed — everything, on the first run.\nlet cursor\ndo {\n  const page = await (await get('\u002Fdocuments', {\n    limit: '500',\n    ...(state.since ? { updatedSince: state.since } : {}),\n    ...(cursor ? { cursor } : {})\n  })).json()\n\n  for (const document of page.data) {\n    const known = state.documents[document.id]\n\n    if (document.currentVersion && known?.checksum !== document.currentVersion.checksum) {\n      const file = await get(`\u002Fdocuments\u002F${document.id}\u002Fcontent`)\n      await writeFile(`${FILES}\u002F${document.id}`, Buffer.from(await file.arrayBuffer()))\n    }\n\n    state.documents[document.id] = { name: document.name, checksum: document.currentVersion?.checksum, titles: document.titles }\n    state.since = document.updatedAt\n  }\n\n  cursor = page.nextCursor\n} while (cursor)\n\n\u002F\u002F What is gone.\nconst manifest = await (await get('\u002Fsync')).json()\n\nif (manifest.complete) {\n  const present = new Set(manifest.documents.map(document => document.id))\n\n  for (const id of Object.keys(state.documents)) {\n    if (!present.has(id)) {\n      await rm(`${FILES}\u002F${id}`, { force: true })\n      delete state.documents[id]\n    }\n  }\n}\n\nawait writeFile(STATE, JSON.stringify(state, null, 2))\n","js",[500,715,716,759,765,784,830,847,864,869,935,963,968,1000,1038,1098,1103,1127,1180,1259,1265,1271,1321,1327,1333,1338,1345,1353,1361,1393,1411,1456,1481,1498,1503,1529,1559,1564,1606,1646,1699,1704,1709,1779,1797,1802,1807,1822,1833,1838,1844,1879,1884,1900,1942,1947,1981,2007,2045,2063,2068,2073,2078,2083],{"__ignoreMap":498},[503,717,718,722,725,728,731,734,736,739,741,744,747,750,753,756],{"class":505,"line":506},[503,719,721],{"class":720},"s7zQu","import",[503,723,724],{"class":520}," {",[503,726,727],{"class":527}," readFile",[503,729,730],{"class":520},",",[503,732,733],{"class":527}," writeFile",[503,735,730],{"class":520},[503,737,738],{"class":527}," mkdir",[503,740,730],{"class":520},[503,742,743],{"class":527}," rm",[503,745,746],{"class":520}," }",[503,748,749],{"class":720}," from",[503,751,752],{"class":520}," '",[503,754,755],{"class":513},"node:fs\u002Fpromises",[503,757,758],{"class":520},"'\n",[503,760,761],{"class":505,"line":534},[503,762,764],{"emptyLinePlaceholder":763},true,"\n",[503,766,767,771,774,777,779,782],{"class":505,"line":557},[503,768,770],{"class":769},"spNyl","const",[503,772,773],{"class":527}," BASE ",[503,775,776],{"class":520},"=",[503,778,752],{"class":520},[503,780,781],{"class":513},"https:\u002F\u002Fddm.example.com\u002Fapi\u002Fext\u002Fv1",[503,783,758],{"class":520},[503,785,787,789,792,794,796,800,802,805,808,811,814,816,819,821,824,827],{"class":505,"line":786},4,[503,788,770],{"class":769},[503,790,791],{"class":527}," headers ",[503,793,776],{"class":520},[503,795,724],{"class":520},[503,797,799],{"class":798},"swJcz"," Authorization",[503,801,659],{"class":520},[503,803,804],{"class":520}," `",[503,806,807],{"class":513},"Bearer ",[503,809,810],{"class":520},"${",[503,812,813],{"class":527},"process",[503,815,444],{"class":520},[503,817,818],{"class":527},"env",[503,820,444],{"class":520},[503,822,823],{"class":527},"DDM_API_KEY",[503,825,826],{"class":520},"}`",[503,828,829],{"class":520}," }\n",[503,831,833,835,838,840,842,845],{"class":505,"line":832},5,[503,834,770],{"class":769},[503,836,837],{"class":527}," STATE ",[503,839,776],{"class":520},[503,841,752],{"class":520},[503,843,844],{"class":513},".\u002Fddm-state.json",[503,846,758],{"class":520},[503,848,850,852,855,857,859,862],{"class":505,"line":849},6,[503,851,770],{"class":769},[503,853,854],{"class":527}," FILES ",[503,856,776],{"class":520},[503,858,752],{"class":520},[503,860,861],{"class":513},".\u002Ffiles",[503,863,758],{"class":520},[503,865,867],{"class":505,"line":866},7,[503,868,764],{"emptyLinePlaceholder":763},[503,870,872,874,877,879,882,884,888,891,894,896,899,901,903,906,909,912,914,917,919,922,925,927,930,932],{"class":505,"line":871},8,[503,873,770],{"class":769},[503,875,876],{"class":527}," state ",[503,878,776],{"class":520},[503,880,881],{"class":527}," JSON",[503,883,444],{"class":520},[503,885,887],{"class":886},"s2Zo4","parse",[503,889,890],{"class":527},"(",[503,892,893],{"class":720},"await",[503,895,727],{"class":886},[503,897,898],{"class":527},"(STATE",[503,900,730],{"class":520},[503,902,752],{"class":520},[503,904,905],{"class":513},"utf8",[503,907,908],{"class":520},"'",[503,910,911],{"class":527},")",[503,913,444],{"class":520},[503,915,916],{"class":886},"catch",[503,918,890],{"class":527},[503,920,921],{"class":520},"()",[503,923,924],{"class":769}," =>",[503,926,752],{"class":520},[503,928,929],{"class":513},"{\"since\":null,\"documents\":{}}",[503,931,908],{"class":520},[503,933,934],{"class":527},"))\n",[503,936,938,940,942,945,947,949,952,954,958,960],{"class":505,"line":937},9,[503,939,893],{"class":720},[503,941,738],{"class":886},[503,943,944],{"class":527},"(FILES",[503,946,730],{"class":520},[503,948,724],{"class":520},[503,950,951],{"class":798}," recursive",[503,953,659],{"class":520},[503,955,957],{"class":956},"sfNiH"," true",[503,959,746],{"class":520},[503,961,962],{"class":527},")\n",[503,964,966],{"class":505,"line":965},10,[503,967,764],{"emptyLinePlaceholder":763},[503,969,971,974,977,980,982,986,988,991,994,997],{"class":505,"line":970},11,[503,972,973],{"class":769},"async",[503,975,976],{"class":769}," function",[503,978,979],{"class":886}," get",[503,981,890],{"class":520},[503,983,985],{"class":984},"sHdIc","path",[503,987,730],{"class":520},[503,989,990],{"class":984}," params",[503,992,993],{"class":520}," =",[503,995,996],{"class":520}," {})",[503,998,999],{"class":520}," {\n",[503,1001,1003,1006,1009,1012,1015,1017,1021,1024,1027,1029,1032,1035],{"class":505,"line":1002},12,[503,1004,1005],{"class":720},"  for",[503,1007,1008],{"class":798}," (",[503,1010,1011],{"class":769},"let",[503,1013,1014],{"class":527}," attempt",[503,1016,993],{"class":520},[503,1018,1020],{"class":1019},"sbssI"," 0",[503,1022,1023],{"class":520},";",[503,1025,1026],{"class":520}," ;",[503,1028,1014],{"class":527},[503,1030,1031],{"class":520},"++",[503,1033,1034],{"class":798},") ",[503,1036,1037],{"class":520},"{\n",[503,1039,1041,1044,1047,1049,1052,1055,1057,1060,1063,1066,1068,1071,1074,1076,1079,1082,1085,1087,1089,1091,1094,1096],{"class":505,"line":1040},13,[503,1042,1043],{"class":769},"    const",[503,1045,1046],{"class":527}," response",[503,1048,993],{"class":520},[503,1050,1051],{"class":720}," await",[503,1053,1054],{"class":886}," fetch",[503,1056,890],{"class":798},[503,1058,1059],{"class":520},"`${",[503,1061,1062],{"class":527},"BASE",[503,1064,1065],{"class":520},"}${",[503,1067,985],{"class":527},[503,1069,1070],{"class":520},"}",[503,1072,1073],{"class":513},"?",[503,1075,810],{"class":520},[503,1077,1078],{"class":520},"new",[503,1080,1081],{"class":886}," URLSearchParams",[503,1083,1084],{"class":527},"(params)",[503,1086,826],{"class":520},[503,1088,730],{"class":520},[503,1090,724],{"class":520},[503,1092,1093],{"class":527}," headers",[503,1095,746],{"class":520},[503,1097,962],{"class":798},[503,1099,1101],{"class":505,"line":1100},14,[503,1102,764],{"emptyLinePlaceholder":763},[503,1104,1106,1109,1111,1114,1116,1119,1121,1124],{"class":505,"line":1105},15,[503,1107,1108],{"class":720},"    if",[503,1110,1008],{"class":798},[503,1112,1113],{"class":527},"response",[503,1115,444],{"class":520},[503,1117,1118],{"class":527},"ok",[503,1120,1034],{"class":798},[503,1122,1123],{"class":720},"return",[503,1125,1126],{"class":527}," response\n",[503,1128,1130,1132,1135,1137,1139,1142,1145,1148,1151,1153,1155,1157,1160,1163,1165,1168,1170,1173,1176,1178],{"class":505,"line":1129},16,[503,1131,1108],{"class":720},[503,1133,1134],{"class":798}," ((",[503,1136,1113],{"class":527},[503,1138,444],{"class":520},[503,1140,1141],{"class":527},"status",[503,1143,1144],{"class":520}," ===",[503,1146,1147],{"class":1019}," 429",[503,1149,1150],{"class":520}," ||",[503,1152,1046],{"class":527},[503,1154,444],{"class":520},[503,1156,1141],{"class":527},[503,1158,1159],{"class":520}," >=",[503,1161,1162],{"class":1019}," 500",[503,1164,1034],{"class":798},[503,1166,1167],{"class":520},"&&",[503,1169,1014],{"class":527},[503,1171,1172],{"class":520}," \u003C",[503,1174,1175],{"class":1019}," 5",[503,1177,1034],{"class":798},[503,1179,1037],{"class":520},[503,1181,1183,1186,1189,1192,1194,1197,1199,1202,1204,1206,1208,1211,1214,1216,1219,1221,1223,1225,1228,1230,1233,1235,1237,1240,1242,1245,1248,1251,1254,1256],{"class":505,"line":1182},17,[503,1184,1185],{"class":720},"      await",[503,1187,1188],{"class":520}," new",[503,1190,1191],{"class":509}," Promise",[503,1193,890],{"class":798},[503,1195,1196],{"class":984},"resolve",[503,1198,924],{"class":769},[503,1200,1201],{"class":886}," setTimeout",[503,1203,890],{"class":798},[503,1205,1196],{"class":527},[503,1207,730],{"class":520},[503,1209,1210],{"class":1019}," 1000",[503,1212,1213],{"class":520}," *",[503,1215,1008],{"class":798},[503,1217,1218],{"class":886},"Number",[503,1220,890],{"class":798},[503,1222,1113],{"class":527},[503,1224,444],{"class":520},[503,1226,1227],{"class":527},"headers",[503,1229,444],{"class":520},[503,1231,1232],{"class":886},"get",[503,1234,890],{"class":798},[503,1236,908],{"class":520},[503,1238,1239],{"class":513},"retry-after",[503,1241,908],{"class":520},[503,1243,1244],{"class":798},")) ",[503,1246,1247],{"class":520},"||",[503,1249,1250],{"class":1019}," 2",[503,1252,1253],{"class":520}," **",[503,1255,1014],{"class":527},[503,1257,1258],{"class":798},")))\n",[503,1260,1262],{"class":505,"line":1261},18,[503,1263,1264],{"class":720},"      continue\n",[503,1266,1268],{"class":505,"line":1267},19,[503,1269,1270],{"class":520},"    }\n",[503,1272,1274,1277,1279,1282,1284,1286,1288,1290,1292,1294,1297,1299,1301,1304,1306,1308,1310,1312,1315,1317,1319],{"class":505,"line":1273},20,[503,1275,1276],{"class":720},"    throw",[503,1278,1188],{"class":520},[503,1280,1281],{"class":886}," Error",[503,1283,890],{"class":798},[503,1285,1059],{"class":520},[503,1287,1113],{"class":527},[503,1289,444],{"class":520},[503,1291,1141],{"class":527},[503,1293,1070],{"class":520},[503,1295,1296],{"class":520}," ${",[503,1298,985],{"class":527},[503,1300,1070],{"class":520},[503,1302,1303],{"class":513},": ",[503,1305,810],{"class":520},[503,1307,893],{"class":720},[503,1309,1046],{"class":527},[503,1311,444],{"class":520},[503,1313,1314],{"class":886},"text",[503,1316,921],{"class":527},[503,1318,826],{"class":520},[503,1320,962],{"class":798},[503,1322,1324],{"class":505,"line":1323},21,[503,1325,1326],{"class":520},"  }\n",[503,1328,1330],{"class":505,"line":1329},22,[503,1331,1332],{"class":520},"}\n",[503,1334,1336],{"class":505,"line":1335},23,[503,1337,764],{"emptyLinePlaceholder":763},[503,1339,1341],{"class":505,"line":1340},24,[503,1342,1344],{"class":1343},"sHwdD","\u002F\u002F What changed — everything, on the first run.\n",[503,1346,1348,1350],{"class":505,"line":1347},25,[503,1349,1011],{"class":769},[503,1351,1352],{"class":527}," cursor\n",[503,1354,1356,1359],{"class":505,"line":1355},26,[503,1357,1358],{"class":720},"do",[503,1360,999],{"class":520},[503,1362,1364,1367,1370,1372,1374,1376,1378,1380,1382,1384,1387,1389,1391],{"class":505,"line":1363},27,[503,1365,1366],{"class":769},"  const",[503,1368,1369],{"class":527}," page",[503,1371,993],{"class":520},[503,1373,1051],{"class":720},[503,1375,1008],{"class":798},[503,1377,893],{"class":720},[503,1379,979],{"class":886},[503,1381,890],{"class":798},[503,1383,908],{"class":520},[503,1385,1386],{"class":513},"\u002Fdocuments",[503,1388,908],{"class":520},[503,1390,730],{"class":520},[503,1392,999],{"class":520},[503,1394,1396,1399,1401,1403,1406,1408],{"class":505,"line":1395},28,[503,1397,1398],{"class":798},"    limit",[503,1400,659],{"class":520},[503,1402,752],{"class":520},[503,1404,1405],{"class":513},"500",[503,1407,908],{"class":520},[503,1409,1410],{"class":520},",\n",[503,1412,1414,1417,1419,1422,1424,1427,1430,1432,1435,1437,1440,1442,1444,1446,1449,1452,1454],{"class":505,"line":1413},29,[503,1415,1416],{"class":520},"    ...",[503,1418,890],{"class":798},[503,1420,1421],{"class":527},"state",[503,1423,444],{"class":520},[503,1425,1426],{"class":527},"since",[503,1428,1429],{"class":520}," ?",[503,1431,724],{"class":520},[503,1433,1434],{"class":798}," updatedSince",[503,1436,659],{"class":520},[503,1438,1439],{"class":527}," state",[503,1441,444],{"class":520},[503,1443,1426],{"class":527},[503,1445,746],{"class":520},[503,1447,1448],{"class":520}," :",[503,1450,1451],{"class":520}," {}",[503,1453,911],{"class":798},[503,1455,1410],{"class":520},[503,1457,1459,1461,1463,1466,1468,1470,1473,1475,1477,1479],{"class":505,"line":1458},30,[503,1460,1416],{"class":520},[503,1462,890],{"class":798},[503,1464,1465],{"class":527},"cursor",[503,1467,1429],{"class":520},[503,1469,724],{"class":520},[503,1471,1472],{"class":527}," cursor",[503,1474,746],{"class":520},[503,1476,1448],{"class":520},[503,1478,1451],{"class":520},[503,1480,962],{"class":798},[503,1482,1484,1487,1490,1492,1495],{"class":505,"line":1483},31,[503,1485,1486],{"class":520},"  }",[503,1488,1489],{"class":798},"))",[503,1491,444],{"class":520},[503,1493,1494],{"class":886},"json",[503,1496,1497],{"class":798},"()\n",[503,1499,1501],{"class":505,"line":1500},32,[503,1502,764],{"emptyLinePlaceholder":763},[503,1504,1506,1508,1510,1512,1515,1518,1520,1522,1525,1527],{"class":505,"line":1505},33,[503,1507,1005],{"class":720},[503,1509,1008],{"class":798},[503,1511,770],{"class":769},[503,1513,1514],{"class":527}," document",[503,1516,1517],{"class":520}," of",[503,1519,1369],{"class":527},[503,1521,444],{"class":520},[503,1523,1524],{"class":527},"data",[503,1526,1034],{"class":798},[503,1528,1037],{"class":520},[503,1530,1532,1534,1537,1539,1541,1543,1546,1549,1552,1554,1556],{"class":505,"line":1531},34,[503,1533,1043],{"class":769},[503,1535,1536],{"class":527}," known",[503,1538,993],{"class":520},[503,1540,1439],{"class":527},[503,1542,444],{"class":520},[503,1544,1545],{"class":527},"documents",[503,1547,1548],{"class":798},"[",[503,1550,1551],{"class":527},"document",[503,1553,444],{"class":520},[503,1555,592],{"class":527},[503,1557,1558],{"class":798},"]\n",[503,1560,1562],{"class":505,"line":1561},35,[503,1563,764],{"emptyLinePlaceholder":763},[503,1565,1567,1569,1571,1573,1575,1578,1581,1583,1586,1589,1592,1594,1596,1598,1600,1602,1604],{"class":505,"line":1566},36,[503,1568,1108],{"class":720},[503,1570,1008],{"class":798},[503,1572,1551],{"class":527},[503,1574,444],{"class":520},[503,1576,1577],{"class":527},"currentVersion",[503,1579,1580],{"class":520}," &&",[503,1582,1536],{"class":527},[503,1584,1585],{"class":520},"?.",[503,1587,1588],{"class":527},"checksum",[503,1590,1591],{"class":520}," !==",[503,1593,1514],{"class":527},[503,1595,444],{"class":520},[503,1597,1577],{"class":527},[503,1599,444],{"class":520},[503,1601,1588],{"class":527},[503,1603,1034],{"class":798},[503,1605,1037],{"class":520},[503,1607,1609,1612,1615,1617,1619,1621,1623,1626,1629,1631,1633,1635,1637,1639,1642,1644],{"class":505,"line":1608},37,[503,1610,1611],{"class":769},"      const",[503,1613,1614],{"class":527}," file",[503,1616,993],{"class":520},[503,1618,1051],{"class":720},[503,1620,979],{"class":886},[503,1622,890],{"class":798},[503,1624,1625],{"class":520},"`",[503,1627,1628],{"class":513},"\u002Fdocuments\u002F",[503,1630,810],{"class":520},[503,1632,1551],{"class":527},[503,1634,444],{"class":520},[503,1636,592],{"class":527},[503,1638,1070],{"class":520},[503,1640,1641],{"class":513},"\u002Fcontent",[503,1643,1625],{"class":520},[503,1645,962],{"class":798},[503,1647,1649,1651,1653,1655,1657,1660,1662,1665,1667,1669,1671,1673,1675,1677,1680,1682,1685,1687,1689,1691,1693,1696],{"class":505,"line":1648},38,[503,1650,1185],{"class":720},[503,1652,733],{"class":886},[503,1654,890],{"class":798},[503,1656,1059],{"class":520},[503,1658,1659],{"class":527},"FILES",[503,1661,1070],{"class":520},[503,1663,1664],{"class":513},"\u002F",[503,1666,810],{"class":520},[503,1668,1551],{"class":527},[503,1670,444],{"class":520},[503,1672,592],{"class":527},[503,1674,826],{"class":520},[503,1676,730],{"class":520},[503,1678,1679],{"class":527}," Buffer",[503,1681,444],{"class":520},[503,1683,1684],{"class":886},"from",[503,1686,890],{"class":798},[503,1688,893],{"class":720},[503,1690,1614],{"class":527},[503,1692,444],{"class":520},[503,1694,1695],{"class":886},"arrayBuffer",[503,1697,1698],{"class":798},"()))\n",[503,1700,1702],{"class":505,"line":1701},39,[503,1703,1270],{"class":520},[503,1705,1707],{"class":505,"line":1706},40,[503,1708,764],{"emptyLinePlaceholder":763},[503,1710,1712,1715,1717,1719,1721,1723,1725,1727,1730,1732,1734,1737,1739,1741,1743,1746,1748,1751,1753,1755,1757,1759,1761,1763,1765,1768,1770,1772,1774,1777],{"class":505,"line":1711},41,[503,1713,1714],{"class":527},"    state",[503,1716,444],{"class":520},[503,1718,1545],{"class":527},[503,1720,1548],{"class":798},[503,1722,1551],{"class":527},[503,1724,444],{"class":520},[503,1726,592],{"class":527},[503,1728,1729],{"class":798},"] ",[503,1731,776],{"class":520},[503,1733,724],{"class":520},[503,1735,1736],{"class":798}," name",[503,1738,659],{"class":520},[503,1740,1514],{"class":527},[503,1742,444],{"class":520},[503,1744,1745],{"class":527},"name",[503,1747,730],{"class":520},[503,1749,1750],{"class":798}," checksum",[503,1752,659],{"class":520},[503,1754,1514],{"class":527},[503,1756,444],{"class":520},[503,1758,1577],{"class":527},[503,1760,1585],{"class":520},[503,1762,1588],{"class":527},[503,1764,730],{"class":520},[503,1766,1767],{"class":798}," titles",[503,1769,659],{"class":520},[503,1771,1514],{"class":527},[503,1773,444],{"class":520},[503,1775,1776],{"class":527},"titles",[503,1778,829],{"class":520},[503,1780,1782,1784,1786,1788,1790,1792,1794],{"class":505,"line":1781},42,[503,1783,1714],{"class":527},[503,1785,444],{"class":520},[503,1787,1426],{"class":527},[503,1789,993],{"class":520},[503,1791,1514],{"class":527},[503,1793,444],{"class":520},[503,1795,1796],{"class":527},"updatedAt\n",[503,1798,1800],{"class":505,"line":1799},43,[503,1801,1326],{"class":520},[503,1803,1805],{"class":505,"line":1804},44,[503,1806,764],{"emptyLinePlaceholder":763},[503,1808,1810,1813,1815,1817,1819],{"class":505,"line":1809},45,[503,1811,1812],{"class":527},"  cursor",[503,1814,993],{"class":520},[503,1816,1369],{"class":527},[503,1818,444],{"class":520},[503,1820,1821],{"class":527},"nextCursor\n",[503,1823,1825,1827,1830],{"class":505,"line":1824},46,[503,1826,1070],{"class":520},[503,1828,1829],{"class":720}," while",[503,1831,1832],{"class":527}," (cursor)\n",[503,1834,1836],{"class":505,"line":1835},47,[503,1837,764],{"emptyLinePlaceholder":763},[503,1839,1841],{"class":505,"line":1840},48,[503,1842,1843],{"class":1343},"\u002F\u002F What is gone.\n",[503,1845,1847,1849,1852,1854,1856,1858,1860,1862,1864,1866,1869,1871,1873,1875,1877],{"class":505,"line":1846},49,[503,1848,770],{"class":769},[503,1850,1851],{"class":527}," manifest ",[503,1853,776],{"class":520},[503,1855,1051],{"class":720},[503,1857,1008],{"class":527},[503,1859,893],{"class":720},[503,1861,979],{"class":886},[503,1863,890],{"class":527},[503,1865,908],{"class":520},[503,1867,1868],{"class":513},"\u002Fsync",[503,1870,908],{"class":520},[503,1872,1489],{"class":527},[503,1874,444],{"class":520},[503,1876,1494],{"class":886},[503,1878,1497],{"class":527},[503,1880,1882],{"class":505,"line":1881},50,[503,1883,764],{"emptyLinePlaceholder":763},[503,1885,1887,1890,1893,1895,1898],{"class":505,"line":1886},51,[503,1888,1889],{"class":720},"if",[503,1891,1892],{"class":527}," (manifest",[503,1894,444],{"class":520},[503,1896,1897],{"class":527},"complete) ",[503,1899,1037],{"class":520},[503,1901,1903,1905,1908,1910,1912,1915,1917,1919,1921,1923,1925,1928,1930,1932,1934,1936,1938,1940],{"class":505,"line":1902},52,[503,1904,1366],{"class":769},[503,1906,1907],{"class":527}," present",[503,1909,993],{"class":520},[503,1911,1188],{"class":520},[503,1913,1914],{"class":886}," Set",[503,1916,890],{"class":798},[503,1918,658],{"class":527},[503,1920,444],{"class":520},[503,1922,1545],{"class":527},[503,1924,444],{"class":520},[503,1926,1927],{"class":886},"map",[503,1929,890],{"class":798},[503,1931,1551],{"class":984},[503,1933,924],{"class":769},[503,1935,1514],{"class":527},[503,1937,444],{"class":520},[503,1939,592],{"class":527},[503,1941,934],{"class":798},[503,1943,1945],{"class":505,"line":1944},53,[503,1946,764],{"emptyLinePlaceholder":763},[503,1948,1950,1952,1954,1956,1959,1961,1964,1966,1969,1971,1973,1975,1977,1979],{"class":505,"line":1949},54,[503,1951,1005],{"class":720},[503,1953,1008],{"class":798},[503,1955,770],{"class":769},[503,1957,1958],{"class":527}," id",[503,1960,1517],{"class":520},[503,1962,1963],{"class":527}," Object",[503,1965,444],{"class":520},[503,1967,1968],{"class":886},"keys",[503,1970,890],{"class":798},[503,1972,1421],{"class":527},[503,1974,444],{"class":520},[503,1976,1545],{"class":527},[503,1978,1244],{"class":798},[503,1980,1037],{"class":520},[503,1982,1984,1986,1988,1991,1994,1996,1999,2001,2003,2005],{"class":505,"line":1983},55,[503,1985,1108],{"class":720},[503,1987,1008],{"class":798},[503,1989,1990],{"class":520},"!",[503,1992,1993],{"class":527},"present",[503,1995,444],{"class":520},[503,1997,1998],{"class":886},"has",[503,2000,890],{"class":798},[503,2002,592],{"class":527},[503,2004,1244],{"class":798},[503,2006,1037],{"class":520},[503,2008,2010,2012,2014,2016,2018,2020,2022,2024,2026,2028,2030,2032,2034,2037,2039,2041,2043],{"class":505,"line":2009},56,[503,2011,1185],{"class":720},[503,2013,743],{"class":886},[503,2015,890],{"class":798},[503,2017,1059],{"class":520},[503,2019,1659],{"class":527},[503,2021,1070],{"class":520},[503,2023,1664],{"class":513},[503,2025,810],{"class":520},[503,2027,592],{"class":527},[503,2029,826],{"class":520},[503,2031,730],{"class":520},[503,2033,724],{"class":520},[503,2035,2036],{"class":798}," force",[503,2038,659],{"class":520},[503,2040,957],{"class":956},[503,2042,746],{"class":520},[503,2044,962],{"class":798},[503,2046,2048,2051,2053,2055,2057,2059,2061],{"class":505,"line":2047},57,[503,2049,2050],{"class":520},"      delete",[503,2052,1439],{"class":527},[503,2054,444],{"class":520},[503,2056,1545],{"class":527},[503,2058,1548],{"class":798},[503,2060,592],{"class":527},[503,2062,1558],{"class":798},[503,2064,2066],{"class":505,"line":2065},58,[503,2067,1270],{"class":520},[503,2069,2071],{"class":505,"line":2070},59,[503,2072,1326],{"class":520},[503,2074,2076],{"class":505,"line":2075},60,[503,2077,1332],{"class":520},[503,2079,2081],{"class":505,"line":2080},61,[503,2082,764],{"emptyLinePlaceholder":763},[503,2084,2086,2088,2090,2092,2094,2096,2098,2101,2104,2106,2109,2111],{"class":505,"line":2085},62,[503,2087,893],{"class":720},[503,2089,733],{"class":886},[503,2091,898],{"class":527},[503,2093,730],{"class":520},[503,2095,881],{"class":527},[503,2097,444],{"class":520},[503,2099,2100],{"class":886},"stringify",[503,2102,2103],{"class":527},"(state",[503,2105,730],{"class":520},[503,2107,2108],{"class":520}," null,",[503,2110,1250],{"class":1019},[503,2112,934],{"class":527},[446,2114,2116],{"id":2115},"tips","Tips",[462,2118,2119,2135,2144,2153,2170],{},[465,2120,2121,2124,2125,2127,2128,2131,2132,444],{},[437,2122,2123],{},"Titles per market:"," ",[500,2126,1776],{}," holds a title per market code (",[500,2129,2130],{},"GET \u002Fmarkets"," lists them). Show ",[500,2133,2134],{},"titles[code] ?? name",[465,2136,2137,2124,2140,2143],{},[437,2138,2139],{},"Text for a search index:",[500,2141,2142],{},"GET \u002Fdocuments\u002F{id}\u002Ftext"," gives the text DDM read from the file.",[465,2145,2146,2124,2149,2152],{},[437,2147,2148],{},"Previews:",[500,2150,2151],{},"GET \u002Fdocuments\u002F{id}\u002Fthumbnail"," gives the preview image of the first page.",[465,2154,2155,2158,2159,2162,2163,2166,2167,444],{},[437,2156,2157],{},"Downloading again for nothing:"," send the last ",[500,2160,2161],{},"ETag"," as ",[500,2164,2165],{},"If-None-Match",", and an unchanged file answers ",[500,2168,2169],{},"304",[465,2171,2172,2175],{},[437,2173,2174],{},"How often:"," every few minutes is fine. Each request counts against the key's 600 per minute.",[2177,2178,2179],"style",{},"html pre.shiki code .sBMFI, html code.shiki .sBMFI{--shiki-light:#E2931D;--shiki-default:#FFCB6B;--shiki-dark:#FFCB6B}html pre.shiki code .sfazB, html code.shiki .sfazB{--shiki-light:#91B859;--shiki-default:#C3E88D;--shiki-dark:#C3E88D}html pre.shiki code .sMK4o, html code.shiki .sMK4o{--shiki-light:#39ADB5;--shiki-default:#89DDFF;--shiki-dark:#89DDFF}html pre.shiki code .sTEyZ, html code.shiki .sTEyZ{--shiki-light:#90A4AE;--shiki-default:#EEFFFF;--shiki-dark:#BABED8}html .light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html.light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html .default .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html.dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html pre.shiki code .s7zQu, html code.shiki .s7zQu{--shiki-light:#39ADB5;--shiki-light-font-style:italic;--shiki-default:#89DDFF;--shiki-default-font-style:italic;--shiki-dark:#89DDFF;--shiki-dark-font-style:italic}html pre.shiki code .spNyl, html code.shiki .spNyl{--shiki-light:#9C3EDA;--shiki-default:#C792EA;--shiki-dark:#C792EA}html pre.shiki code .swJcz, html code.shiki .swJcz{--shiki-light:#E53935;--shiki-default:#F07178;--shiki-dark:#F07178}html pre.shiki code .s2Zo4, html code.shiki .s2Zo4{--shiki-light:#6182B8;--shiki-default:#82AAFF;--shiki-dark:#82AAFF}html pre.shiki code .sfNiH, html code.shiki .sfNiH{--shiki-light:#FF5370;--shiki-default:#FF9CAC;--shiki-dark:#FF9CAC}html pre.shiki code .sHdIc, html code.shiki .sHdIc{--shiki-light:#90A4AE;--shiki-light-font-style:italic;--shiki-default:#EEFFFF;--shiki-default-font-style:italic;--shiki-dark:#BABED8;--shiki-dark-font-style:italic}html pre.shiki code .sbssI, html code.shiki .sbssI{--shiki-light:#F76D47;--shiki-default:#F78C6C;--shiki-dark:#F78C6C}html pre.shiki code .sHwdD, html code.shiki .sHwdD{--shiki-light:#90A4AE;--shiki-light-font-style:italic;--shiki-default:#546E7A;--shiki-default-font-style:italic;--shiki-dark:#676E95;--shiki-dark-font-style:italic}",{"title":498,"searchDepth":534,"depth":534,"links":2181},[2182,2183,2184,2185,2186,2187],{"id":448,"depth":534,"text":449},{"id":487,"depth":534,"text":488},{"id":603,"depth":534,"text":604},{"id":651,"depth":534,"text":652},{"id":704,"depth":534,"text":705},{"id":2115,"depth":534,"text":2116},"Step by step – an export script that copies DDM's documents to another system and keeps it in step.","md",null,{},{"icon":336},{"title":333,"description":2188},"rpvs-TcIBcoOEwGUyUMvGAYHMA73QDU_PW1zYa-nqiY",[2196,2198],{"title":328,"path":329,"stem":330,"description":2197,"icon":331,"children":-1},"Step by step – a push source, a key, and documents sent by your own references, as uploads or from a URL.",{"title":338,"path":339,"stem":340,"description":2199,"icon":137,"children":-1},"Every document endpoint – parameters, fields, examples and errors.",1793617722125]