Oops!
×

Sorry, authentication failed

Relational Datastore to build Modern Apps

Store and query relational data on the cloud. Make it accessible over GrahpQL and REST with a scalable, open-source backend, based on the Parse platform.

Easy to integrate on your mobile and web app!

Store and query relational data through GraphQL, REST, or Parse SDKs. Add business logic using cloud functions.

mutation {
  createCharacter(input: {
    fields: {
      name: "Luke Skywalker"
      birthYear: "19BBY"
      homeworld: {
        createAndLink: {
          name: "Tatooine"
          population: 200000
        }
      }
    }
  }) {
    character {
      id
      homeworld {
        id
      }
    }
  }
}
# Create Tatooine

curl -X POST \
-H "X-Parse-Application-Id: YOUR_APPLICATION_ID" \
-H "X-Parse-REST-API-Key: YOUR_REST_API_KEY" \
-H "Content-Type: application/json" \
-d '{
  "name": "Tatooine",
  "population": 200000
}' \
https://parseapi.back4app.com/classes/Planet

# Create Luke Skywalker

curl -X POST \
-H "X-Parse-Application-Id: YOUR_APPLICATION_ID" \
-H "X-Parse-REST-API-Key: YOUR_REST_API_KEY" \
-H "Content-Type: application/json" \
-d '{
  "name": "Luke Skywalker",
  "birthYear": "19BBY",
  "homeworld": {
    "__type": "Pointer",
    "className": "Planet",
    "objectId": "TATOOINE_OBJECT_ID"
  }
}' \
https://parseapi.back4app.com/classes/Character
// Create Tatooine

const Planet = Parse.Object.extend('Planet');
const tatooine = new Planet();
tatooine.set('name', 'Tatooine');
tatooine.set('population', 200000);
await tatooine.save();

// Create Luke Skywalker

const Character = Parse.Object.extend('Character');
const lukeSkywalker = new Character();
lukeSkywalker.set('name', 'Luke Skywalker');
lukeSkywalker.set('birthYear', "19BBY");
lukeSkywalker.set('homeworld', tatooine);
await lukeSkywalker.save();
// Create Tatooine

let tatooine = PFObject(className: "Planet")
tatooine["name"] = "Tatooine"
tatooine["population"] = 200000
try! tatooine.save()

// Create Luke Skywalker

let lukeSkywalker = PFObject(className: "Character")
lukeSkywalker["name"] = "Luke Skywalker"
lukeSkywalker["birthYear"] = "19BBY"
lukeSkywalker["homeworld"] = tatooine
lukeSkywalker.saveInBackground()
PFObject *gameScore = [PFObject objectWithClassName:@"GameScore"];
gameScore[@"score"] = @1337;
gameScore[@"playerName"] = @"Sean Plott";
gameScore[@"cheatMode"] = @NO;
[gameScore saveInBackgroundWithBlock:^(BOOL succeeded, NSError *error) {
  if (succeeded) {
    // The object has been saved.
  } else {
    // There was a problem, check error.description
  }
}];
// Create Tatooine

ParseObject tatooine = new ParseObject("Planet");
tatooine.put("name", "Tatooine");
tatooine.put("population", 200000);
tatooine.save();

// Create Luke Skywalker

ParseObject lukeSkywalker = new ParseObject("Character");
lukeSkywalker.put("name", "Luke Skywalker");
lukeSkywalker.put("birthYear", "19BBY");
lukeSkywalker.put("homeworld", tatooine);
lukeSkywalker.saveInBackground();
// Create Tatooine

final tatooine = ParseObject('Planet')
  ..set('name', 'Tatooine')
  ..set('population', 200000);
await tatooine.save();

// Create Luke Skywalker

final lukeSkywalker = ParseObject('Character')
  ..set('name', 'Luke Skywalker')
  ..set('birthYear', '19BBY')
  ..set('homeworld', tatooine);
await lukeSkywalker.save();
// Create Tatooine

ParseObject tatooine = new ParseObject("Planet");
tatooine["name"] = "Tatooine";
tatooine["population"] = 200000;
await tatooine.SaveAsync();

// Create Luke Skywalker

ParseObject lukeSkywalker = new ParseObject("Character");
lukeSkywalker["name"] = "Luke Skywalker";
lukeSkywalker["birthYear"] = "19BBY";
lukeSkywalker["homeworld"] = tatooine;
await lukeSkywalker.SaveAsync();

Powering development efficiency for thousands of companies worldwide

Game Development
+55 Million
users worldwide
READ MORE
Startup
+$350K
saved anually
READ MORE
SaaS
+80%
development efficiency gain
READ MORE
Software Development Company
up to 4 times
faster go-to market
READ MORE

Create apps at a global scale

Make apps faster without managing infrastructure. Build relational data models in minutes, and perform complex relational queries in a truly serverless platform.


Back4App features
  • REST

  • Cloud Code Functions

  • Push Notification

  • Command Line Interface

  • Backup Routine

  • GraphQL

  • Cross Platform SDKs

  • Automatic emails

  • Auto-scaling

  • Multi-app Tenancy

  • Real Time Database

  • GeoQueries

  • Social login

  • Replica set

  • WebHosting

Bring your Parse App to Back4App

Our engineer team is ready to guide you on each step of the process. From database to cloud functions we help you to migrate in the smoothest way.

Learn more

Predictable Pricing

Leave complex pricing structures behind. Always know what you’ll pay per month using shared or dedicated servers. Enjoy a flat pricing structure across global cloud providers regions.

Predictable Pricing

Leave complex pricing structures behind. Always know what you’ll pay per month using shared or dedicated servers. Enjoy a flat pricing structure across global cloud providers regions.

Check it out

Custom Plans

Regardless the size of your business and the stage of your growth, Back4App is able to provide suitable scalable solutions with outstanding developers and software agencies who we trust. If you are a non-tech app owner who’s currently scaling or bootstrapping your ideas quickly, or if you are a full-stack developer who’s looking for a counterpart to complete the project, we might just have the right people to connect you with. Tell us your projects and we will find the right fits for you.

CHAT WITH US

Focus on creating engaging apps, and let everything else with us!

Sign up! It's FREE