Ett Service Provider Interface ( SPI ) är ett API avsett att implementeras eller utökas av en tredje part. Den kan användas för att möjliggöra ramförlängning och utbytbara komponenter.
Från Java-dokumentationen:
En tjänst är en välkänd uppsättning gränssnitt och (oftast abstrakta) klasser. En tjänsteleverantör är en konkret implementering av en tjänst. Klasser i en leverantör implementerar vanligtvis gränssnitt och underklasser av klasser definierade i själva tjänsten. Tjänsteleverantörer kan installeras i Java-plattformsimplementeringen som tillägg, det vill säga JAR-filer placerade i någon av de normala tilläggskatalogerna. Leverantörer kan också göras tillgängliga genom att lägga till dem i applikationens klassväg eller genom att använda andra plattformsspecifika metoder.