Skip to main content

Accessible Portable Item Protocol® (APIP®)

The Accessible Portable Item Protocol (APIP) Standard provides assessment programs and question item developers with a data model for standardizing the interchange file format for digital test items. When applied properly, the APIP standard accomplishes two important goals. First, the standard allows digital Tests and Items to be ported across APIP compliant test item banks. Second, it provides a test delivery interface with all the information and resources required to make a Test and an Item accessible for students with a variety of disabilities and special needs. Read the APIP Frequently Asked Questions.

APIP Version 1.0 focuses is on:

  • Enabling the exchange of question Items and Tests;
  • Adopting, wherever possible, established learning technology interoperability standards and specifications, and only extending these when required;
  • Ensuring that the solution can be readily expanded, at a later date, to support the exchange of other related assessment information;
  • Ensuring the solution can be combined with other 1EdTech and non-1EdTech specifications to support new functionality, e.g., the reporting of assessment scores and outcomes;
  • Ensuring that further profiling can be undertaken to tailor the approach to meet the needs of specific state assessment activities without compromising the baseline interoperability requirement and capability;
  • Enabling vendors to adopt the solution without constraining their ability to create market-differentiated products and services.
APIP basic flow

 

APIP is based on the  Question and Test Interoperability® (QTI®) specification. The APIP Standard expands the QTI model into a comprehensive framework that encompasses the requirements for creating accessible tests. The Access For All Personal Needs & Preferences (AfA PNP) v2.0 specification is also adopted as the basis for supplying the user preferences when using an APIP-enabled system. It is these accessibility preferences that are used by an assessment system to tailor, in real-time, the presentation of the question items to fit the accessibility needs of the user.

 

Conformance

A conformance certification program and online validation tool have also been developed and deployed. The QTI Evolution & Certification Committee maintains the QTI and APIP conformance tests. While conformance certification provides a "seal" for passing prescribed tests it is much more than that. It is a commitment by a supplier to the 1EdTech community for ongoing support for achieving "plug and play" integration. Therefore, certification implies ongoing community commitment to resolve problems, revise implementations and retest as need. Therefore, only 1EdTech Contributing Members, Affiliate Members and eAssessment Alliance participants are eligible to apply for conformance certification.

Organizations procuring QTI or APIP products are strongly encouraged to require 1EdTech conformance certification for all such products to ensure the highest levels of interoperability are achieved across the educational community. Products that have achieved conformance certification are listed and updated at Conformance Certification Status.

The following document is a primer on conformance and the relationship between QTIv2.x and APIP. It is highly recommended that this document be read prior to reading the other specifications:
/apip/IMSAssessmentPrimerv1p0.html

QTI/APIP Conformance Matrix

 

Version 1.0 Final Specification

The APIP v1.0 Final specification was approved by the Technical Advisory Board in May 2014. This replaces the 2012 Candidate Final specification and includes minor additions that are elective/optional in terms of conformance. A further update to include these corresponding changes in the base QTI specification will result in a QTI v2.2 update in 2015. 1EdTech strongly encourages suppliers to certify their content and systems against one of the available conformance profiles, details in the Alliance. To see a list of current APIP or QTI certified products, check out Conformance Certification Status.

The accommodations of APIP were fully integrated within the QTI 3.0 standard (released May 2022), and new programs are strongly encouraged to adopt the QTI 3 standard instead of the APIP specification.

Accessible Portable Item Protocol Specification - Version 1.0 Final Specification - HTML (28 May 2014)

APIP Overview

APIP Terms and Definitions

APIP Use Cases

APIP Best Practice and Implementation Guide

APIP Technical Specification for Access for All PNPv2.0 Features

APIP Technical Specification for QTIv2.2 Features

APIP Conformance and Certification

APIP Technical Specification

 

 

Version 1.0 XSDs and Namspaces:

This is the set of Final Release XSDs developed to support validation of instances that conform to the APIP Entry and Core Profiles. The namespace and schema location details for the APIP Profiles XSDs are provided in the tables below.

  1. Entry Profile XSDs - the XSDs for the APIP Entry Profile;
    1. Packaging XSDs - the XSDs for the APIP Package in the Entry Profile;
    2. PNP XSDs - the XSDs for the APIP PNP instance in the Entry Profile;
  2. Core Profile XSDs - the XSDs for the APIP Core Profile;
    1. Packaging XSDs - the XSDs for the APIP Package in the Core Profile;
    2. PNP XSDs - the XSDs for the APIP PNP instance in the Core Profile;

The key for the tables is:

  • "Namespace" - the namespace for the XSD (must be supplied in any XML instance referring to the corresponding XSD);
  • "XSD File Name" - the filename for the XSD;
  • "Schema Location" - the schema location for the XSD (must be supplied in any XML instance referring to the corresponding XSD);
  • '*' denotes that all of the files are held in the directory located at: "/profile/apip/apipv1p0/entry";
  • '**' denotes that all of the files are held in the directory located at: "/profile/apip/apipv1p0/".

top


A.   APIP Entry Profile

The set of XSDs to be used for instances to be validated against the APIP Entry Profile.

A1.   APIP Packaging XSDs

The set of XSDs to be used for APIP Package instances to be validated against the APIP Entry Profile. The following set of XSDs are used for the validation of:

  • Pe1 - used to validate the "imsmanifest.xml" file that must be present in the zipped package;
  • Pe2 - used to validate the resource variants used within the "imsmanifest.xml" file (the "M1" metadata validation is used with variants);
  • Qe1 - used to validate a QTI Item (uses "Q2" to validate the accessibility content);
  • Qe2 - used to validate the alternative accessibility content for the QTI object;
  • Qe3 - used to validate a QTI Section (uses "Q2" to validate the accessibility content);
  • Qe4 - used to validate a QTI Test (uses "Q2" to validate the accessibility content);
  • Qe5 - used to validate a QTI Response Processing (uses "Q2" to validate the accessibility content);
  • Qe6 - used to validate a QTI Outcomes (uses "Q2" to validate the accessibility content);
  • Qe7 - used to validate a QTI Shared Stimulus (uses "Q2" to validate the accessibility content);
  • Me1 - used to validate the Access for All Digital Resource Description (AfA DRD) metadata that is used with variant resources;
  • Me2 - used to validate the learning standards annotations, at the manifest and resource level, defined using the Curriculum Standards Metadata (CSM);
  • Me3 - used to validate the manifest-level metadata, in the "imsmanifest.xml" file, defined using IEEE LOM;
  • Me4 - used to validate the resource-level metadata, in the "imsmanifest.xml" file, defined using IEEE LOM;
  • Me5 - used to validate the QTI metadata that is associated with a QTI-based resource;
  • Le1 - used to validate the LTI block that is inserted inside the APIP Package;
  • Le2 - used to validate the Basic LTI link description;
  • Le3 - used to validate the common message features used in LTI;
  • Le4 - used to validate the common profile features usied in LTI;
  • Le5 - used to validate the the POX messaing used for the outcomes reporting;
  • Xe1 - used to validate the xml-specific attributes;
  • Xe2 - used to validate the XInclude features;
  • Xe3 - used to validate the Xlink features;
  • Xe4 - used to validate the MathML 2 features;
  • Xe5 - used to validate the SSML features (in Q2).

top


A1.1   Packaging-Related XSDs

ID Namespace XSD File Name Schema Location*
Pe1

/xsd/apip/apipv1p0/imscp_v1p1

apipv1p0_imscpv1p2_v1p0.xsd /profile/apip/apipv1p0/entry/apipv1p0_imscpv1p2_v1p0.xsd
Pe2

/xsd/apip/apipv1p0/imscp_extensionv1p2

apipv1p0_cpextv1p2_v1p0.xsd /profile/apip/apipv1p0/entry/apipv1p0_cpextv1p2_v1p0.xsd

 

top


A1.2   Accessible QTI-Related XSDs

ID Namespace XSD File Name Schema Location**
Qe1

/xsd/apip/apipv1p0/qtiitem/imsqti_v2p2

apipv1p0_qtiitemv2p2_v1p0.xsd /profile/apip/apipv1p0/entry/apipv1p0_qtiitemv2p2_v1p0.xsd
Qe2

/xsd/apip/apipv1p0/imsapip_qtiv1p0

apipv1p0_qtiextv2p2_v1p0.xsd /profile/apip/apipv1p0/entry/apipv1p0_qtiextv2p2_v1p0.xsd
Qe3

/xsd/apip/apipv1p0/qtisection/imsqti_v2p2

apipv1p0_qtisectionv2p2_v1p0.xsd /profile/apip/apipv1p0/entry/apipv1p0_qtisectionv2p2_v1p0.xsd
Qe4

/xsd/apip/apipv1p0/qtitest/imsqti_v2p2

apipv1p0_qtiitemv2p2_v1p0.xsd /profile/apip/apipv1p0/entry/apipv1p0_qtitestv2p2_v1p0.xsd
Qe5

/xsd/apip/apipv1p0/qtiresproc/imsqti_v2p2

apipv1p0_qtiresprocessingv2p2_v1p0.xsd /profile/apip/apipv1p0/entry/apipv1p0_qtiresprocessingv2p2_v1p0.xsd
Qe6

/xsd/apip/apipv1p0/qtioutcomes/imsqti_v2p2

apipv1p0_qtioutcomesv2p2_v1p0.xsd /profile/apip/apipv1p0/entry/apipv1p0_qtioutcomesv2p2_v1p0.xsd
Qe7

/xsd/apip/apipv1p0/qtistimulus/imsqti_v2p2

apipv1p0_qtistimulusv2p2_v1p0.xsd /profile/apip/apipv1p0/entry/apipv1p0_qtistimulusv2p2_v1p0.xsd

 

top


A1.3   Metadata-Related XSDs

ID Namespace XSD File Name Schema Location**
Me1

/xsd/apip/apipv1p0/imsafa_drdv2p0

apipv1p0_afadrdv2p0_v1p0.xsd /profile/apip/apipv1p0/entry/apipv1p0_afadrdv2p0_v1p0.xsd
Me2

/xsd/apip/apipv1p0/imscsmd_v1p0

apipv1p0_imscsmd_v1p0.xsd /profile/apip/apipv1p0/entry/apipv1p0_imscsmdv1p0_v1p0.xsd
Me3

http://ltsc.ieee.org/xsd/apipv1p0/LOM/manifest

apipv1p0_lommanifestv1p0_v1p0.xsd /profile/apip/apipv1p0/entry/apipv1p0_lommanifestv1p0_v1p0.xsd
Me4

http://ltsc.ieee.org/xsd/apipv1p0/LOM/resource

apipv1p0_lomresourcev1p0_v1p0.xsd /profile/apip/apipv1p0/entry/apipv1p0_lomresourcev1p0_v1p0.xsd
Me5

/xsd/apip/apipv1p0/qtimetadata/imsqti_v2p2

apipv1p0_qtimetadatav2p2_v1p0.xsd /profile/apip/apipv1p0/entry/apipv1p0_qtimetadatav2p2_v1p0.xsd

 

top


A1.4   LTI-Related XSDs

ID Namespace XSD File Name Schema Location
Le1

/xsd/imslticc_v1p0

imslticc_v1p0p1.xsd /xsd/lti/ltiv1p0/imslticc_v1p0p1.xsd
Le2

/xsd/imsbasiclti_v1p0

imsbasiclti_v1p0p1.xsd /xsd/lti/ltiv1p0/imsbasiclti_v1p0p1.xsd
Le3

/xsd/imslticp_v1p0

imslticp_v1p0.xsd /xsd/lti/ltiv1p0/imslticp_v1p0.xsd
Le4

/xsd/imslticm_v1p0

imslticm_v1p0.xsd /xsd/lti/ltiv1p0/imslticm_v1p0.xsd
Le5

/services/ltiv1p1/xsd/imsoms_v1p0

OMSv1p0_LTIv1p1Profile_SyncXSD_v1p0.xsd /xsd/lti/ltiv1p1/OMSv1p0_LTIv1p1Profile_SyncXSD_v1p0.xsd

 

top


A1.5   Other-Related XSDs

ID Namespace XSD File Name Schema Location
Xe1

http://www.w3.org/XML/1998/namespace

xml.xsd /xsd/w3/2001/xml.xsd
Xe2

http://www.w3.org/2001/XInclude

XInclude.xsd /xsd/w3/2001/XInclude.xsd
Xe3

http://www.w3.org/1999/xlink

Xlink.xsd /xsd/w3/1999/xlink.xsd
Xe4

http://www.w3.org/1998/Math/MathML

mathml2.xsd http://www.w3.org/Math/XMLSchema/mathml2/mathml2.xsd
Xe5

http://www.w3.org/2001/10/synthesis

ssmlv1p0.xsd /xsd/w3/2001/ssmlv1p0.xsd

 

top


A2.   APIP Personal Needs and Preferences XSDs

The set of XSDs to be used for APIP PNP instances to be validated against the APIP Entry Profile. The following set of XSDs are used for the validation of:

  • Ae1 - used to validate a APIP AFA PNP instance (uses "A2" to validate the APIP extensions to the AfA DRDv2.0);
  • Ae2 - used to validate the APIP accessibility extensions;
  • Ae3 - used to validate the instance that contains a set of API AFA PNP Records.
ID Namespace XSD File Name Schema Location*
Ae1

/xsd/apip/apipv1p0/imsafa_pnpv2p0

apipv1p0_afapnpv2p0_v1p0.xsd /profile/apip/apipv1p0/entry/apipv1p0_afapnpv2p0_v1p0.xsd
Ae2

/xsd/apip/apipv1p0/imsapip_pnpv1p0

apipv1p0_afapnpextv1p0_v1p0.xsd /profile/apip/apipv1p0/entry/apipv1p0_afapnpextv1p0_v1p0.xsd
Ae3

/xsd/apip/apipv1p0/imsapip_pnprecordsv1p0

apipv1p0_afapnpv2p0records_v1p0.xsd /profile/apip/apipv1p0/entry/apipv1p0_afapnpv2p0records_v1p0.xsd

 

top


B.   APIP Core Profile

The set of XSDs to be used for instances to be validated against the APIP Core Profile.

B1.   APIP Packaging XSDs

The set of XSDs to be used for APIP Package instances to be validated against the APIP Core Profile. The following set of XSDs are used for the validation of:

  • Pc1 - used to validate the "imsmanifest.xml" file that must be present in the zipped package;
  • Pc2 - used to validate the resource variants used within the "imsmanifest.xml" file (the "M1" metadata validation is used with variants);
  • Qc1 - used to validate a QTI Item (uses "Q2" to validate the accessibility content);
  • Qc2 - used to validate the alternative accessibility content for the QTI object;
  • Qc3 - used to validate a QTI Section (uses "Q2" to validate the accessibility content);
  • Qc4 - used to validate a QTI Test (uses "Q2" to validate the accessibility content);
  • Qc5 - used to validate a QTI Response Processing (uses "Q2" to validate the accessibility content);
  • Qc6 - used to validate a QTI Outcomes (uses "Q2" to validate the accessibility content);
  • Qc7 - used to validate a QTI Shared Stimulus (uses "Q2" to validate the accessibility content);
  • Mc1 - used to validate the Access for All Digital Resource Description (AfA DRD) metadata that is used with variant resources;
  • Mc2 - used to validate the learning standards annotations, at the manifest and resource level, defined using the Curriculum Standards Metadata (CSM);
  • Mc3 - used to validate the manifest-level metadata, in the "imsmanifest.xml" file, defined using IEEE LOM;
  • Mc4 - used to validate the resource-level metadata, in the "imsmanifest.xml" file, defined using IEEE LOM;
  • Mc5 - used to validate the QTI metadata that is associated with a QTI-based resource;
  • Lc1 - used to validate the LTI block that is inserted inside the APIP Package;
  • Lc2 - used to validate the Basic LTI link description;
  • Lc3 - used to validate the common message features used in LTI;
  • Lc4 - used to validate the common profile features usied in LTI;
  • Lc5 - used to validate the the POX messaing used for the outcomes reporting;
  • Xc1 - used to validate the xml-specific attributes;
  • Xc2 - used to validate the XInclude features;
  • Xc3 - used to validate the Xlink features;
  • Xc4 - used to validate the MathML 2 features;
  • Xc5 - used to validate the SSML features (in Q2).

B1.1   Packaging-Related XSDs

ID Namespace XSD File Name Schema Location**
Pc1

/xsd/apip/apipv1p0/imscp_v1p1

apipv1p0_imscpv1p2_v1p0.xsd /profile/apip/apipv1p0/apipv1p0_imscpv1p2_v1p0.xsd
Pc2

/xsd/apip/apipv1p0/imscp_extensionv1p2

apipv1p0_cpextv1p2_v1p0.xsd /profile/apip/apipv1p0/apipv1p0_cpextv1p2_v1p0.xsd

 

top


B1.2   Accessible QTI-Related XSDs

ID Namespace XSD File Name Schema Location**
Qc1

/xsd/apip/apipv1p0/qtiitem/imsqti_v2p2

apipv1p0_qtiitemv2p2_v1p0.xsd /profile/apip/apipv1p0/apipv1p0_qtiitemv2p2_v1p0.xsd
Qc2

/xsd/apip/apipv1p0/imsapip_qtiv1p0

apipv1p0_qtiextv2p2_v1p0.xsd /profile/apip/apipv1p0/apipv1p0_qtiextv2p2_v1p0.xsd
Qc3

/xsd/apip/apipv1p0/qtisection/imsqti_v2p2

apipv1p0_qtisectionv2p2_v1p0.xsd /profile/apip/apipv1p0/apipv1p0_qtisectionv2p2_v1p0.xsd
Qc4

/xsd/apip/apipv1p0/qtitest/imsqti_v2p2

apipv1p0_qtiitemv2p2_v1p0.xsd /profile/apip/apipv1p0/apipv1p0_qtitestv2p2_v1p0.xsd
Qc5

/xsd/apip/apipv1p0/qtiresproc/imsqti_v2p2

apipv1p0_qtiresprocessingv2p2_v1p0.xsd /profile/apip/apipv1p0/apipv1p0_qtiresprocessingv2p2_v1p0.xsd
Qc6

/xsd/apip/apipv1p0/qtioutcomes/imsqti_v2p2

apipv1p0_qtioutcomesv2p2_v1p0.xsd /profile/apip/apipv1p0/apipv1p0_qtioutcomesv2p2_v1p0.xsd
Qc7

/xsd/apip/apipv1p0/qtistimulus/imsqti_v2p2

apipv1p0_qtistimulusv2p2_v1p0.xsd /profile/apip/apipv1p0/apipv1p0_qtistimulusv2p2_v1p0.xsd

 

top


B1.3   Metadata-Related XSDs

ID Namespace XSD File Name Schema Location**
Mc1

/xsd/apip/apipv1p0/imsafa_drdv2p0

apipv1p0_afadrdv2p0_v1p0.xsd /profile/apip/apipv1p0/apipv1p0_afadrdv2p0_v1p0.xsd
Mc2

/xsd/apip/apipv1p0/imscsmd_v1p0

apipv1p0_imscsmd_v1p0.xsd /profile/apip/apipv1p0/apipv1p0_imscsmdv1p0_v1p0.xsd
Mc3

http://ltsc.ieee.org/xsd/apipv1p0/LOM/manifest

apipv1p0_lommanifestv1p0_v1p0.xsd /profile/apip/apipv1p0/apipv1p0_lommanifestv1p0_v1p0.xsd
Mc4

http://ltsc.ieee.org/xsd/apipv1p0/LOM/resource

apipv1p0_lomresourcev1p0_v1p0.xsd /profile/apip/apipv1p0/apipv1p0_lomresourcev1p0_v1p0.xsd
Mc5

/xsd/apip/apipv1p0/qtimetadata/imsqti_v2p2

apipv1p0_qtimetadatav2p2_v1p0.xsd /profile/apip/apipv1p0/apipv1p0_qtimetadatav2p2_v1p0.xsd

 

top


B1.4   LTI-Related XSDs

ID Namespace XSD File Name Schema Location
Lc1

/xsd/imslticc_v1p0

imslticc_v1p0p1.xsd /xsd/lti/ltiv1p0/imslticc_v1p0p1.xsd
Lc2

/xsd/imsbasiclti_v1p0

imsbasiclti_v1p0p1.xsd /xsd/lti/ltiv1p0/imsbasiclti_v1p0p1.xsd
Lc3

/xsd/imslticp_v1p0

imslticp_v1p0.xsd /xsd/lti/ltiv1p0/imslticp_v1p0.xsd
Lc4

/xsd/imslticm_v1p0

imslticm_v1p0.xsd /xsd/lti/ltiv1p0/imslticm_v1p0.xsd
Lc5

/services/ltiv1p1/xsd/imsoms_v1p0

OMSv1p0_LTIv1p1Profile_SyncXSD_v1p0.xsd /xsd/lti/ltiv1p1/OMSv1p0_LTIv1p1Profile_SyncXSD_v1p0.xsd

 

top


B1.5   Other-Related XSDs

ID Namespace XSD File Name Schema Location
Xc1

http://www.w3.org/XML/1998/namespace

xml.xsd /xsd/w3/2001/xml.xsd
Xc2

http://www.w3.org/2001/XInclude

XInclude.xsd /xsd/w3/2001/XInclude.xsd
Xc3

http://www.w3.org/1999/xlink

Xlink.xsd /xsd/w3/1999/xlink.xsd
Xc4

http://www.w3.org/1998/Math/MathML

mathml2.xsd http://www.w3.org/Math/XMLSchema/mathml2/mathml2.xsd
Xc5

http://www.w3.org/2001/10/synthesis

ssmlv1p0.xsd /xsd/w3/2001/ssmlv1p0.xsd

 

top


B2.   APIP Personal Needs and Preferences (PNP) XSDs

The set of XSDs to be used for APIP PNP instances to be validated against the APIP Core Profile. The following set of XSDs are used for the validation of:

  • Ac1 - used to validate an APIP AFA PNP instance (uses "A2" to validate the APIP extensions to the AfA DRDv2.0);
  • Ac2 - used to validate the APIP accessibility extensions;
  • Ac3 - used to validate the instance that contains a set of API AFA PNP Records.
ID Namespace XSD File Name Schema Location**
Ac1

/xsd/apip/apipv1p0/imsafa_pnpv2p0

apipv1p0_afapnpv2p0_v1p0.xsd /profile/apip/apipv1p0/apipv1p0_afapnpv2p0_v1p0.xsd
Ac2

/xsd/apip/apipv1p0/imsapip_pnpv1p0

apipv1p0_afapnpextv1p0_v1p0.xsd /profile/apip/apipv1p0/apipv1p0_afapnpextv1p0_v1p0.xsd
Ac3

/xsd/apip/apipv1p0/imsapip_pnprecordsv1p0

apipv1p0_afapnpv2p0records_v1p0.xsd /profile/apip/apipv1p0/apipv1p0_afapnpv2p0records_v1p0.xsd
Help us improve the accessibility of this site by emailing recommendations to web@imsglobal.org