You can use the CFF API to access resources from another client, such as an app.
Make sure you include the Authorization
header to all requests. The Authorization
header needs a valid JWT for authenticated routes; for unauthenticated routes, the header can have any arbitrary value (but it needs to have some value).
The list of examples on this page are not exhaustive; for a full list of available API routes, see lambda/chalicelib/main.py.
API endpoints¶
The regular API endpoint for production is https://xpqeqfjgwd.execute-api.us-east-1.amazonaws.com.
The regular API endpoint for beta is https://5fd3dqj2dc.execute-api.us-east-1.amazonaws.com.
If you are frequently doing a resource-intensive response fetching / aggregation query, we would encourage that you use the CloudFront endpoint instead of the regular API endpoint for production. This endpoint automatically has a caching layer that will make it faster to use our API and reduce load on our servers: https://drcfbob84gx1k.cloudfront.net.
Creating a new response¶
Request:
let body = {
data: {
name: "New Name",
email: "New Email",
date: "1995-01-03"
}
}
fetch("https://xpqeqfjgwd.execute-api.us-east-1.amazonaws.com/v2/forms/5d368b0692a26900015e6391", {
method: 'post',
body: JSON.stringify(body),
mode: 'cors',
headers: {"Authorization": "anonymous", "Content-Type": "application/json"}
}).then(e => console.log(e));
Getting response data¶
Request:
fetch("https://xpqeqfjgwd.execute-api.us-east-1.amazonaws.com/v2/responses/5d368bf392a26900015e6392", {
method: 'get',
mode: 'cors',
headers: {"Authorization": "anonymous"}
}).then(e => console.log(e));
Response – note that the data you need is in the value
key:
{
"success": true,
"res": {
"_id": {
"$oid": "5d368bf392a26900015e6392"
},
"form": {
"$oid": "5d368b0692a26900015e6391"
},
"paymentInfo": {
"items": [],
"currency": "USD",
"total": 0
},
"paid": true,
"amount_paid": "0",
"value": {
"name": "Ashwin",
"email": "a@b.com",
"date": "2019-07-10"
},
"date_created": {
"$date": "2019-07-23T04:24:19.777Z"
},
"date_modified": {
"$date": "2019-07-23T04:24:19.777Z"
},
"modify_link": "https://forms.chinmayamission.com/v2/forms/5d368b0692a26900015e6391/?responseId=5d368bf392a26900015e6392",
"counter": null
}
}
Editing response data¶
Request:
let body = {
data: {
name: "New Name",
email: "New Email",
date: "1995-01-03"
},
responseId: "5d368bf392a26900015e6392"
}
fetch("https://xpqeqfjgwd.execute-api.us-east-1.amazonaws.com/v2/forms/5d368b0692a26900015e6391", {
method: 'post',
body: JSON.stringify(body),
mode: 'cors',
headers: {"Authorization": "anonymous", "Content-Type": "application/json"}
}).then(e => console.log(e));