A flexible API enabling any design on any device

prismic.io offers a rich API allowing you to display the content the way you want, on any device

Test it out

Use your favorite technology or templating language

Boost your productivity with lightweight SDKs

We do the plumbing for you!
80% of calling the API is just plumbing repetitive code. We take care of that so that you can focus on delivering exceptional experiences.
Lightweight SDKs with few dependencies
Our SDKs are conceived to be thin layers of helpers that improve your productivity without bloating or impacting your development and build cycles.
            
            var Prismic = require('prismic-javascript');

Prismic.getApi("https://your-repository-name.prismic.io/api/v2",  { req: req }).then(function(api) {
  return api.query(
    Prismic.Predicates.at('document.type', 'blog-post'),
    { orderings : '[my.blog-post.date desc]' }
  );
}).then(function(response) {
  // response is the response object, response.results holds the documents
});
          
            
            <?php
$api = Api::get("https://your-repo-name.prismic.io/api");
$response = $api->query(
    Predicates::at('document.type', 'blog_post'),
    [ 'orderings' => '[my.blog_post.date desc]' ]
); 
// $response contains the response object, $response->getResults() holds the documents
          
            
            var Prismic = require('prismic-javascript');

initApi(req).then(function(api){
    api.query(
        Prismic.Predicates.at('document.type', 'blog_post'),
        { orderings : '[my.blog_post.date desc]' }
    ).then(function(response) {
        // response is the response object, response.results holds the documents
    });
});
          
            
            api = Prismic.api('https://your-repo-name.prismic.io/api')
response = api.query(
    Prismic::Predicates.at("document.type", "blog_post"),
    { "orderings" => "[my.blog_post.date desc]" }
)
# response is the response object, response.results holds the documents
          
            
            Response response = api.query(Predicates.at("document.type", "blog_post"))
    .orderings("my.blog_post.date desc")
    .submit();
List<Document> documents = response.getResults();
          
            
            Response response = api.query(Predicates.at("document.type", "blog_post"))
   .Orderings("my.blog_post.date desc")
   .Submit();
IList<Document> documents = response.Results;
          

An advanced API to enable better experience

Every user gets a preview session

When working in the writing room editor, authors can have different preview sessions to see their changes in their website or app without having to publish it.

Automatic cache refresh on updates

The query API introduces an efficient caching mechanism that refreshes automatically and simultaneously when changes are pushed.

Multi-variant for A/B testing

prismic.io Experiments permits you to ditch guesswork for empirical measurement via A/B test. The SKD helps you manage cookies and the variants' distribution.

Unlimited API calls, a globally scalable and redundant infrastructure

Our API takes care of scalability and availability. No hidden costs, we take care of the heavy lifting.

35,000+user

2 Billion+API calls last month

100s TBdelivered globally