Get a project presentation
GET /v1/projects/{project_guid}
Alternate project request:
GET /v1/projects/{project_permalink} with parameter 'by_permalink=true'
Parameters
- photo_size (default = size_g)
- thumbnail_size (default = thumbnail_d)
Photo Size options:
- thumbnail_d 300 by 300
- size_g 300 wide
- size_q 1600 wide
Sample JSON response
/v1/projects/6UCfX77EijB9.json?api_key=yaxfnLpEDlSwyaxfnLpEDlSw
or/v1/projects/action-packaging.json?by_permalink=true&api_key=yaxfnLpEDlSwyaxfnLpEDlSw
[
{
id: 1234,
guid: "hnZvHJn2bR6t",
title: "Action Packaging",
subtitle: "2016 Renovation",
address_format_1: "Grand Rapids, Michigan",
address_format_2: "3950 Fake Dr, Grand Rapids, Michigan",
address_format_3: "3950 Fake Dr, Grand Rapids, Michigan US",
postal_code: "49503",
country: "France",
permalink: "action-packaging",
kind_list: ["Industrial"],
tile_size: "small", // can be 'small', 'large' or null. Meant to convey project's relative size.
selected_facts: [
{
selected_fact: {
fact: "title",
value: "Action Packaging"
}
},
{
selected_fact: {
fact: "subtitle",
value: null
}
},
{
selected_fact: {
fact: "postal_code",
value: "49316"
}
},
{
selected_fact: {
fact: "size",
value: "109,000 SF"
}
}
]
all_custom_fields: [
["Keys", "six"],
["WebId", null],
["Presentation Style", 99]
]
displaying_description_with_html: Big long description here.,
displaying_description_without_html: "Big long description here",
photos: [
{
photo: {
filename: "100_0322.jpg",
type: null,
caption: "Johnson Photography",
caption_href: "http://google.com",
source: "//presenter-development.s3.amazonaws.com/photos/2/size_g/2.jpg"
source_thumb: "//presenter-development.s3.amazonaws.com/photos/2/thumbnail_d/2.jpg"
}
},
{
photo: {
filename: "100_0326.jpg",
type: null,
caption: "",
caption_href: "",
source: "//presenter-development.s3.amazonaws.com/photos/6/size_g/6.jpg"
source_thumb: "//presenter-development.s3.amazonaws.com/photos/6/thumbnail_d/6.jpg"
}
}
],
displaying_contributions: [
{
displaying_contribution: {
contribution: {
role: "Did a whole bunch a stuff",
size: "medium",
my_role_list: ["hammered"],
contributor: {
contributor_type: "individual",
identity: "Sadel Sider",
locality: "Grandville",
region: "MI",
street: null,
street2: null,
postal_code: "49418",
country: "US",
url: "http://www.projectpresenter.com/sadel-sider"
}
}
}
},
{
displaying_contribution: {
contribution": {
role: "asdff",
size: "medium",
my_role_list: ["asdff"],
contributor: {
contributor_type: "individual",
identity: "Randy Sider",
locality: "Grandville",
region: "MI",
street: null,
street2: null,
postal_code: "49418",
country: "US",
url: "http://www.projectpresenter.com/randy-sider"
}
}
}
}
],
displaying_award_entries: [
{
displaying_award_entry: {
award_entry: {
award_category: {
permalink: "green-award",
name: "Green Award",
award_event: {
permalink: "2015-aia-awards",
handout_at: "2015-11-14T05:00:00Z",
title: "2015 AIA Awards",
awarder: "AIA of Michigan"
}
}
}
}
}
],
displaying_accolades: [
displaying_accolade: {
accolade: {
statement: "We were amazed at the craftsmanship",
statement_maker: "John Bobersmith, Kobobo Contractors, Inc."
}
}
]
project_groups: [ // the project groups that this presentation is in
{
"project_group": {
"id": 4,
"title": "Industrial",
"permalink": "industrial",
"description": null
}
}
]
}
Get a list of project presentations
GET /v1/projects
Parameters
- per_page (default = 20)
- page (page number, default = 1)
- group (default = 'all', use permalink ex: 'green-churches' for group "Green Churches")
- with_kind_tag // returns projects matching any Project Type Tags (kind_tags) that are passed. Separate multiple tags by a pipe "|"
- not_with_kind_tag // returns projects that do not have these Project Type Tags. Separate multiple tags by a pipe "|" (Do not use with 'with_kind_tags')
- photo_size (default = size_g)
- updated_within (presentations that have been updated with the last X days)
- created_within (presentations that have been created with the last X days)
The order of the presentation are controlled by the user by dragging and dropping the projects in the desired order. If you pass updated_within or created_within the project will be in date order.
Sample JSON response
/v1/projects.json?api_key=yaxfnLpEDlSwyaxfnLpEDlSw&group=school&with_kind_tag=new|recent
[
Same data as a single project listed above.
],
_links: {
first: {
href: "/v1/projects?page=1"
},
previous: null,
self: {
href: "/v1/projects?page=1"
},
next: [
{
href: "/v1/projects?page=2"
},
{
href: "/v1/projects?page=3"
}
],
last: {
href: "/v1/projects?page=4"
}
}
Search: Get a list of projects based on search query
GET /v1/projects/search
Parameters
- per_page (default = 20)
- page (page number, default = 1)
- photo_size (default = size_g)
- --query parameters--
- q[project_group]
- q[budget]
- q[budget_gte] (greater than or equal too)
- q[budget_lte] (less than or equal too)
- q[size]
- q[size_gte]
- q[size_lte]
- q[cf_#{field_name_underscored_and_downcased}] (For custom fields, ex: custom field "Large Bedrooms", would be "cf_large_bedrooms")
- q[near] (the more detail the better "123 fake street Grand Rapids MI 49503"
- q[near_mi] (miles radius from 'near', ex: "30")
Sample JSON response
/v1/projects/search.json?api_key=yaxfnLpEDlSwyaxfnLpEDlSw&q[size_gte]=120&q[cf_lemmon]=66&q[near]=49503&q[near_mi]=20&q[project_group]=windy_ridge
[
Same data as a single project listed above.
],
_links: {
first: {
href: "/v1/projects/search?page=1"
},
previous: null,
self: {
href: "/v1/projects/search?page=1"
},
next: [
{
href: "/v1/projects/search?page=2"
},
{
href: "/v1/projects/search?page=3"
}
],
last: {
href: "/v1/projects/search?page=4"
}
}
Get an employee's project presentations
GET /v1/projects/employee
Parameters
- employee contributor permalink ex: john-smith-jr
- updated_within (presentations that have been updated with the last X days)
- created_within (presentations that have been created with the last X days)
- project_limit (Number of presentations, default = 8)
- thumbnail_size (default = thumbnail_d)
Sample JSON response
/v1/projects/employee.json?api_key=yaxfnLpEDlSwyaxfnLpEDlSw&employee=john-smith-jr
[
Same data as a single project listed above.
],
{
employee: {name: "John Smith Jr."}
}
Get all project groups
GET /v1/project_groups
Parameters
- containing_projects // pass 'true' if you only want the groups that have projects in them, otherwise it will simply get all groups
Sample JSON response
/v1/project_groups.json?api_key=yaxfnLpEDlSwyaxfnLpEDlSw
[
{
id: 52,
title: "Education",
permalink: "education, // unique string within the portfolio to identify the group
description: "This is the description of the group.", // user created description of the group
}
{
id: 523,
title: "Food Processing Facilities",
permalink: "food-processing-facilities,
description: null, // returns null if no description was written
}
]
Get a Social Project Post
GET /v1/posts/{post-permalink}
Parameters
- photo_size (default = size_g)
- thumbnail_size (default = thumbnail_d)
Photo Size options:
- thumbnail_d 300 by 300
- size_g 300 wide
- size_q 1600 wide
Sample JSON response
/v1/posts/started-new-website.json?api_key=yaxfnLpEDlSwyaxfnLpEDlSw
{
primary_attributes: {
id: 42285,
guid: "T3pFhSjzdkJx",
news_title: "Automation adds quality and efficiency through robotic assembly cell",
news_description: "Automation adds quality and efficiency through robotic assembly cell
",
permalink: "automation-adds-quality-and-efficiency-through-robotic-assembly-cell",
project_title: "Robotic O-Ring Assembly Machine",
address_format_1: "",
address_format_2: "",
address_format_3: "",
postal_code: "49423",
country: null,
primary_contributor: "HighPoint Electric",
primary_avatar: "https://presenter-production.s3.amazonaws.com/avatars/4215/size_e/my-image.png",
primary_contrib_url: "http://HighPointelectric.us",
portfolio_permalink: "highpoint-electric",
lat_lon: "42.765541,-86.116153",
outbound_on_click_url: "http://www.projectpresenter.com/highpoint-electric/projects/robotic-o-ring-assembly-machine/54611/show",
no_link: false,
showcase_external_posts_url: null,
showcase_permalink: "highpoint-electric"
nested_shared_page: "https//some_external_site.com/news/post"
},
},
displaying_description_with_html: "Automation adds quality and efficiency through robotic assembly cell
",
displaying_description_without_html: "Automation adds quality and efficiency through robotic assembly cell",
photo: null,
presentation_groups: [
{
presentation_group: {
id: 71015,
title: "Automation",
permalink: "automation",
description: "Industrial Automation"
}
},
{
presentation_group {
id: 71014,
title: "Industrial",
permalink: "industrial",
description: ""
}
}
],
presentation: {
selected_facts: [
{
selected_fact: {
pretty_label: "Title",
fact: "title",
value: "Robotic O-Ring Assembly Machine"
}
},
{
selected_fact: {
pretty_label: "Postal code",
fact: "postal_code",
value: "49423"
}
}
]
}
}
Get a list of Social Project Posts
GET /v1/posts
Parameters
- per_page (default = 20)
- page (page number, default = 1)
- group (default = 'all', use permalink ex: 'green-churches' for group "Green Churches". Is based on whatever group the Project the Post is associated with.)
- photo_size (default = size_g)
The order of the post are in chronological order.
Sample JSON response
/v1/posts.json?api_key=yaxfnLpEDlSwyaxfnLpEDlSw&group=school
[
Same data as a single post listed above.
],
_links: {
first: {
href: "/v1/posts?page=1"
},
previous: null,
self: {
href: "/v1/posts?page=1"
},
next: [
{
href: "/v1/posts?page=2"
},
{
href: "/v1/posts?page=3"
}
],
last: {
href: "/v1/posts?page=4"
}
}
Update a presentation's custom field value
POST /v1/projects/{project_guid}/update_custom_field.json
Parameters
- api_key (required)
- id (required, project_guid)
- custom_field_name (required, Case Sensitive)
- custom_field_value (required)
Example
curl https://www.projectpresenter.com/v1/projects/gPICytQ39ep1/update_custom_field \ -d "api_key=KUjKncUoCyaB_9tvxHdPcA==&id=gPICytQ39ep1&custom_field_name=Some Name&custom_field_value=some value"Get all uniq values for a field
GET /v1/projects/values_for_field
Parameters
- api_key (required)
- field_name (required, one of ["address_format_1", "postal_code", "phase", "completion_date_format_1", "green", "delivery_method", "budget", "size", "title", "subtitle", "client", "address_format_2", "address_format_3", "street", "street2", "locality", "region", "postal_code"] or a custom field title)
- custom (boolean)
Sample JSON response
/v1/projects/values_for_field.json?api_key=yaxfnLpEDlSwyaxfnLpEDlSw&field_name=Sales%20Price&custom=true
["$111,900","$345,900","$40,000"]