[{"data":1,"prerenderedAt":334},["ShallowReactive",2],{"\u002Ftools\u002Fid_manager\u002Fdocs\u002Fakwikstart\u002F":3},{"id":4,"title":5,"body":6,"description":49,"extension":322,"isRevision":323,"lastUpdated":324,"meta":325,"navigation":326,"path":327,"revision":328,"seo":329,"slug":330,"stem":331,"subtitle":332,"__hash__":333},"docs\u002Fdocs\u002Fid_manager\u002Fquickstart\u002Findex.md","ID Management Service",{"type":7,"value":8,"toc":314},"minimark",[9,14,18,23,34,40,43,95,102,110,114,117,138,141,240,251,259,267,271,290,296,300,303,310],[10,11,13],"h2",{"id":12},"quickstart-to-the-api","Quickstart to the API",[15,16,17],"p",{},"The ID Manager stores links between URIs with metadata, allows you to query and filter the set of links, and manages a unique number system.",[19,20,22],"h3",{"id":21},"authentication-token","Authentication token",[15,24,25,26,33],{},"To access the API calls that allow you to write and change data within the system, you first need to autheticate to it to get a (",[27,28,32],"a",{"href":29,"rel":30},"https:\u002F\u002Fjwt.io\u002F",[31],"nofollow","JWT",") token. Fundamentally, you will authenticate with a username and password, and the service will respond with a token that should be used in all future requests:",[15,35,36],{},[37,38,39],"code",{},"POST \u002Fauth",[15,41,42],{},"JSON data",[44,45,50],"pre",{"className":46,"code":47,"language":48,"meta":49,"style":49},"language-json shiki shiki-themes github-light github-dark","{\n    \"username\": \"...\",\n    \"password\": \"...\"\n}\n","json","",[37,51,52,61,78,89],{"__ignoreMap":49},[53,54,57],"span",{"class":55,"line":56},"line",1,[53,58,60],{"class":59},"sVt8B","{\n",[53,62,64,68,71,75],{"class":55,"line":63},2,[53,65,67],{"class":66},"sj4cs","    \"username\"",[53,69,70],{"class":59},": ",[53,72,74],{"class":73},"sZZnC","\"...\"",[53,76,77],{"class":59},",\n",[53,79,81,84,86],{"class":55,"line":80},3,[53,82,83],{"class":66},"    \"password\"",[53,85,70],{"class":59},[53,87,88],{"class":73},"\"...\"\n",[53,90,92],{"class":55,"line":91},4,[53,93,94],{"class":59},"}\n",[15,96,97,98,101],{},"The response will be a JSON object, with an ",[37,99,100],{},"access_token"," key. The value for that should be included as an HTTP authorization header in future requests. If say the access_token was \"TOKEN\", then the HTTP header will be:",[44,103,108],{"className":104,"code":106,"language":107},[105],"language-text","Authorization: Bearer TOKEN\n","text",[37,109,106],{"__ignoreMap":49},[19,111,113],{"id":112},"create-a-link","Create a link",[15,115,116],{},"If you are going to add links, you will need to know five bits of information at the least:",[118,119,120,124,132],"ul",{},[121,122,123],"li",{},"The motivation - the reason or purpose or cause of the link. This will be represented by a URI. If it is a very specific purpose, then you may wish to add a motivation to represent it. It is a compromise; The more specific a motivation, the easier it is to manage and find these specific links. If the motivation is a more general purpose one, a more broad range of links (including links you have not added) would be returned from a query using it, which can be useful or not.",[121,125,126,127,131],{},"the ",[128,129,130],"em",{},"body"," - this will be the URI for one of the resources being linked, along with its 'generator' (the URI representing the system or organization managing its URI)",[121,133,126,134,137],{},[128,135,136],{},"target"," - the URI and generator of the other resource being linked. The motivation should infer which one is the body and which should be the target, but if in doubt, the body contains the information leading to the link, and the target is the thing being linked to. (ie a description (body) of a museum piece (target), a paper (body) citing another (target) and so on.)",[15,139,140],{},"If this is structured as a link as follows, it can be added to the service:",[44,142,144],{"className":46,"code":143,"language":48,"meta":49,"style":49},"{\n    \"motivation\": \"https:\u002F\u002F... (motivation URI)\",\n    \"body\": {\n        \"id\": \"URI TO BODY\",\n        \"generator\": \"https:\u002F\u002F... (generator URI for the body)\"\n    },\n    \"target\": {\n        \"id\": \"URI TO TARGET\",\n        \"generator\": \"https:\u002F\u002F... (generator URI for the target)\"\n    }\n}\n",[37,145,146,150,162,170,182,193,199,207,219,229,235],{"__ignoreMap":49},[53,147,148],{"class":55,"line":56},[53,149,60],{"class":59},[53,151,152,155,157,160],{"class":55,"line":63},[53,153,154],{"class":66},"    \"motivation\"",[53,156,70],{"class":59},[53,158,159],{"class":73},"\"https:\u002F\u002F... (motivation URI)\"",[53,161,77],{"class":59},[53,163,164,167],{"class":55,"line":80},[53,165,166],{"class":66},"    \"body\"",[53,168,169],{"class":59},": {\n",[53,171,172,175,177,180],{"class":55,"line":91},[53,173,174],{"class":66},"        \"id\"",[53,176,70],{"class":59},[53,178,179],{"class":73},"\"URI TO BODY\"",[53,181,77],{"class":59},[53,183,185,188,190],{"class":55,"line":184},5,[53,186,187],{"class":66},"        \"generator\"",[53,189,70],{"class":59},[53,191,192],{"class":73},"\"https:\u002F\u002F... (generator URI for the body)\"\n",[53,194,196],{"class":55,"line":195},6,[53,197,198],{"class":59},"    },\n",[53,200,202,205],{"class":55,"line":201},7,[53,203,204],{"class":66},"    \"target\"",[53,206,169],{"class":59},[53,208,210,212,214,217],{"class":55,"line":209},8,[53,211,174],{"class":66},[53,213,70],{"class":59},[53,215,216],{"class":73},"\"URI TO TARGET\"",[53,218,77],{"class":59},[53,220,222,224,226],{"class":55,"line":221},9,[53,223,187],{"class":66},[53,225,70],{"class":59},[53,227,228],{"class":73},"\"https:\u002F\u002F... (generator URI for the target)\"\n",[53,230,232],{"class":55,"line":231},10,[53,233,234],{"class":59},"    }\n",[53,236,238],{"class":55,"line":237},11,[53,239,94],{"class":59},[15,241,242,243,246,247,250],{},"Using ",[37,244,245],{},"HTTP POST",", this JSON data can be sent to the ",[37,248,249],{},"\u002Flinks\u002F"," endpoint, and will create the link providing the following is true:",[118,252,253,256],{},[121,254,255],{},"the motivation and generator URIs are registered in the system, and",[121,257,258],{},"this exact combination of five things is not already in the system.",[15,260,261,262,266],{},"More detail can be found in the API description for Creating links in the ",[27,263,265],{"href":264},"\u002Ftools\u002Fid_manager\u002Fdocs\u002Flinksendpoints\u002F","Links API"," documentation",[19,268,270],{"id":269},"motivations-and-generators","Motivations and Generators",[15,272,273,274,277,278,281,282,285,286,289],{},"What motivations and Generators are registered can be retrieved from an ",[37,275,276],{},"HTTP GET"," request to ",[37,279,280],{},"\u002Fmotivations\u002F"," and ",[37,283,284],{},"\u002Fgenerators"," respectively. These reply with a list of each one registered in the system, and the full ",[37,287,288],{},"uri"," value should be used when creating or querying the service.",[15,291,292],{},[27,293,295],{"href":294},"\u002Ftools\u002Fid_manager\u002Fdocs\u002Fm-and-g\u002F","More information about the API for Motivations and Generators",[19,297,299],{"id":298},"querying-links","Querying links",[15,301,302],{},"The easiest way to explore what is in the service is through the web interface. Open it in a browser and you will be redirected to the query links screen. Click the blue button to reveal the full query form. If you have the URI of a thing you would like to find links for, paste it into the 'Either body or target' field and click Submit. This will return all the links that the URI features in as either the body or the target of the link. This can be a very useful way to see crosswalks between representations in other systems and services.",[15,304,305],{},[306,307],"img",{"alt":308,"src":309},"query interface","img\u002Fquerylinksform.png",[311,312,313],"style",{},"html pre.shiki code .sVt8B, html code.shiki .sVt8B{--shiki-default:#24292E;--shiki-dark:#E1E4E8}html pre.shiki code .sj4cs, html code.shiki .sj4cs{--shiki-default:#005CC5;--shiki-dark:#79B8FF}html pre.shiki code .sZZnC, html code.shiki .sZZnC{--shiki-default:#032F62;--shiki-dark:#9ECBFF}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);}",{"title":49,"searchDepth":63,"depth":63,"links":315},[316],{"id":12,"depth":63,"text":13,"children":317},[318,319,320,321],{"id":21,"depth":80,"text":22},{"id":112,"depth":80,"text":113},{"id":269,"depth":80,"text":270},{"id":298,"depth":80,"text":299},"md",false,"2026-03-30",{},true,"\u002Fdocs\u002Fid_manager\u002Fquickstart","\u002Ftools\u002Fid_manager\u002Fdocs\u002Frevision\u002F",{"title":5,"description":49},"\u002Ftools\u002Fid_manager\u002Fdocs\u002Fakwikstart\u002F","docs\u002Fid_manager\u002Fquickstart\u002Findex","Service for creating, updating and managing links between identifiers.","uppqFB54Amwna1qrt1vstip7o4gisS8V4o77Xg81AD8",1782833579824]