Why can’t my content find the SCORM API?

This question comes up several times a month. From time to time, when you launch a piece of content, you may see a message box like this:

In order for communication to occur between the LMS and content, the LMS is obligated to provide an API. When you launch a piece of content, the first thing the content has to do is look for that API, in order to establish communication with the LMS. In some cases, that piece of content has what we call a ‘poor API discovery algorithm’. While this can mean many things, it often means that the content will just search the frames in the current window for the API and if it does not find it, it will just quit and throw that error. There are a few ways around this.

1. Instead of having the content launch in a new window, launch it in the frameset. This way, we know that the content is in the same window as the API. In many cases, this eliminates the discovery problem.

2. If the content needs to be launched in a new window, you could re-code the API discovery algorithm to not only look in the current window, but look at its parent window and keep searching parent windows until it finds it (as the specification requires!) For more detailed code level information on this option, check out this article.

Since this is a pretty common mistake, we created a package property to help combat the behavior for our SCORM Engine users. Package Properties control how the SCORM Engine delivers a particular piece of content. You can specify how the content is launched, the navigation options available to the user, and the behavior and appearance of the content being delivered. SCORM Engine Package Properties can be controlled in a number of ways. Each implementation has defaults, some have an exposed UI, and others simply offer this control via imsmanifest extensions. (Controlling package properties via the manifest extensions is a post for another time.)

If you have any questions about how this works, please feel free to contact me at 615-550-9530 or you can email me with any questions at support@scorm.com

Thank you,


  • alnoor

    Hi, I am working on my first Scorm project and I am still debating why I have to use a pop up window or frameset? I have a single sco file and I looked in the example RuntimeBasicCalls_SCORM12. It has player.html and all the API Discovery Algorithm are on the same html. So getting confuse do I really need a popup or frameset.

    Can you clear this.


  • The basic runtime call example is a sound one… But when played in an LMS, it is running in either a frameset or a popup. The LMS makes that choice, though. You can work from a single html file (like player.html) or you could have your own hierarchy of frames and windows. Either way is fine.

  • Krisalyn

    Wonderful expalinaton of facts available here.