EndNote XML is what EndNote exports, and the least portable of the five. CSL JSON is the shape citation processors read, and the only one a program likes. pandoc sits between the two, and this page says exactly what happens to an EndNote XML file on the way to becoming a CSL JSON one.
What runs when an EndNote XML file becomes CSL JSON
pandoc 3.1.3, on a machine we rent and watch. Your EndNote XML file is uploaded once, pandoc runs once, the CSL JSON comes back, and neither file is kept. EndNote XML to CSL JSON is one of the 3649 pairs that engine was probed on with a real file, which is why it has a page here and why the pairs the probe could not prove do not.
What survives from the EndNote XML into the CSL JSON
Every reference, and every field CSL JSON has a place for. The engine counts the entries on the way in and on the way out and refuses the result if the number moved, because a bibliography that comes back with half its references passes every format check and is still wrong.
Authors in the order you had them, with the family name still separated from the given name. That separation is what lets a citation style print "Durand, M." in one journal and "Marie Durand" in the next, and it is the first thing a naive converter flattens into one string.
A citation key on every entry, which your EndNote XML file does not have. An EndNote XML carries the reference and not the name you cite it by, so the key has to be made. It is built the way a reference manager builds one, family name plus year, with a, b, c when two entries would collide.
Every field you sent, and this is the one target with nothing to report. We put one entry carrying eleven fields through all three writers and read the output field by field: CSL JSON dropped none of them, because CSL JSON is the shape the other four are read into, so there is nothing to squeeze on the way out.
What EndNote XML to CSL JSON costs you
Nothing, and something is ADDED instead, which is the unusual part. Your EndNote XML file has no citation keys, so they are made. They are a reasonable guess at what you would have typed, and they are still a guess: if a LaTeX document of yours already cites these references under other names, the new keys will not match it.
The LaTeX in your fields, if you had any. `{\LaTeX}` and `\emph{...}` are instructions to a typesetter, and CSL JSON is read by programs that do not run one. What arrives is the text.
Where EndNote XML and CSL JSON files come from
EndNote XML. EndNote's own XML export, verbose and specific to it. Like RIS it has no citation key, and unlike RIS it has no writer here: it is read and never written, because pandoc has none either.
CSL JSON. The data format of the Citation Style Language, which is what Zotero, pandoc's own citeproc and most reference software speak when they format a bibliography by style rather than by typesetting it. It is JSON, so it has no fixed list of fields and nothing has to be squeezed to fit.
If a model is going to read the CSL JSON
A bibliography is a list of claims a model can check rather than prose it has to interpret: each entry names an author, a year, a journal and often a DOI. EndNote XML in, CSL JSON out, with every field the target has room for, which is what lets a model answer "which of these are after 2019" without reading a single abstract.
EndNote XML to CSL JSON, measured rather than promised
Running EndNote XML to CSL JSON against the real engine with a real file, pandoc wrote 724 bytes of CSL JSON in under a tenth of a second, machine otherwise idle. That is one EndNote XML file on one day and not an average, which is why the number is given together with the file that produced it.
The EndNote XML to CSL JSON verdict was reached by counting the references back out and checking every citation key, meaning every reference was counted back out of the output, and every citation key in it was checked for being non-empty, unique, and made only of characters LaTeX accepts in a cite command. Which check was used matters, because they do not all prove the same thing, and a status code of 200 proves nothing whatsoever about whether the CSL JSON file has anything inside it.
What we will not pretend about EndNote XML to CSL JSON
An EndNote XML file over 5 MB is refused before the upload finishes rather than after it, so you do not wait for a rejection.
An EndNote XML to CSL JSON run that passes 30 seconds is killed, and the pandoc process is killed with it. A run left behind would sit on one of the machine's two cores until somebody noticed.
RIS and EndNote XML can be read here and not written: pandoc has no writer for either. Asking for one returns 415 with the three targets that do work, rather than a failure you would have to interpret. It is the asymmetry of this family and it is not an oversight. Your EndNote XML file came out of a reference manager, and the way back to it is that manager's own import, not this page.
The citation keys in your CSL JSON were not in the EndNote XML file and could not have been: the format has no field for them. They are ours. A response header says how many were made. Saying it here rather than letting you find it when a `\cite` fails to resolve is the whole point of this section.
This does not deduplicate, merge or check anything. Two copies of the same paper come out as two references, a wrong year comes out wrong, and a DOI that points nowhere is carried across unchanged. It converts one bibliography into another shape of the same bibliography.
One EndNote XML file at a time, chosen in the browser. There is nothing else to set up and nothing else on offer.
EndNote XML to CSL JSON: what people ask
What actually converts my EndNote XML file to CSL JSON?
pandoc does it, 3.1.3, on a machine we rent and watch. Not a browser trick and not somebody else service: the EndNote XML file is uploaded once, pandoc runs once, the CSL JSON comes back, and neither file is kept afterwards.
How long does EndNote XML to CSL JSON take?
On the file the probe used, pandoc took under a tenth of a second and wrote 724 bytes of CSL JSON. That is one real measurement on one real EndNote XML file, not an average and not a promise about yours: a larger EndNote XML takes longer, and past 30 seconds the run is stopped.
What do I lose going from EndNote XML to CSL JSON?
The one to know about first: Nothing, and something is ADDED instead, which is the unusual part. Your EndNote XML file has no citation keys, so they are made. They are a reasonable guess at what you would have typed, and they are still a guess: if a LaTeX document of yours already cites these references under other names, the new keys will not match it.
Will my citation keys still work?
Your EndNote XML file has none, so they are made here: family name plus year, with a, b, c when two would collide. If a document of yours already cites these references under other names, it will not match, and that is worth checking before you run it.
What is CSL JSON for?
It is what citation processors read: Zotero, Pandoc's own citeproc, and anything that formats references by style rather than by typesetting them. It is also the shape the other four formats are read into here, which is why nothing is lost on the way to it.
Is EndNote XML to CSL JSON free?
There is a free allowance every month, and one EndNote XML to CSL JSON conversion costs half a credit against it. When the allowance runs out the tool says so and stops, rather than quietly handing you a worse CSL JSON.