Contra Public API
Read-only REST API for discovering Contra programs, their filter definitions, and the expert profiles within a program. Authenticated with an X-API-Key header; endpoints live under https://contra.com/public-api/.
Read-only REST API for discovering Contra programs, their filter definitions, and the expert profiles within a program. Authenticated with an X-API-Key header; endpoints live under https://contra.com/public-api/.
{"openapi":"3.0.3","info":{"description":"API for accessing Contra program and expert data. All endpoints require authentication using an API key.","title":"Contra Public API","version":"1.0.0"},"components":{"schemas":{"Error":{"type":"object","properties":{"code":{"type":"string","description":"Error code"},"message":{"type":"string","description":"Error message"}},"required":["code","message"]},"ExpertProfile":{"type":"object","properties":{"available":{"type":"boolean","description":"Availability status"},"avatarUrl":{"type":"string","format":"uri","description":"URL to avatar image"},"averageReviewScore":{"type":"number","description":"Average review score"},"earningsUSD":{"type":"number","description":"Total earnings on Contra (USD)"},"emailAddress":{"type":"string","nullable":true,"format":"email","description":"Normalized email address (if permitted)"},"followersCount":{"type":"integer","description":"Followers count"},"hourlyRateUSD":{"type":"number","nullable":true,"description":"Rate per hour in USD"},"id":{"type":"string","description":"Expert identifier"},"inquiryUrl":{"type":"string","format":"uri","description":"Inquiry modal URL"},"location":{"type":"string","description":"Country or region"},"name":{"type":"string","description":"Full name"},"oneLiner":{"type":"string","description":"Short bio tagline"},"profileUrl":{"type":"string","format":"uri","description":"Contra profile URL"},"projects":{"type":"array","items":{"type":"object","properties":{"coverUrl":{"type":"string","format":"uri","description":"Cover image URL"},"projectUrl":{"type":"string","format":"uri","description":"Project page URL"},"title":{"type":"string","description":"Project title"}},"required":["coverUrl","projectUrl","title"]},"description":"Project samples"},"projectsCompletedCount":{"type":"integer","description":"Completed projects count"},"reviews":{"type":"array","items":{"$ref":"#/components/schemas/Review"},"description":"Reviews"},"reviewsCount":{"type":"integer","description":"Total reviews"},"skillTags":{"type":"array","items":{"type":"string"},"description":"Skills or technologies"},"socialLinks":{"type":"array","items":{"type":"object","properties":{"label":{"type":"string","nullable":true,"description":"Social platform"},"url":{"type":"string","format":"uri","description":"Social URL"}},"required":["label","url"]},"description":"Map of social platform to URL"}},"required":["available","avatarUrl","averageReviewScore","earningsUSD","emailAddress","followersCount","hourlyRateUSD","id","inquiryUrl","location","name","oneLiner","profileUrl","projects","projectsCompletedCount","reviews","reviewsCount","skillTags","socialLinks"]},"ExpertProfileList":{"type":"object","properties":{"data":{"type":"array","items":{"$ref":"#/components/schemas/ExpertProfile"},"description":"Array of expert profiles"},"totalCount":{"type":"integer","description":"Total number of expert profiles"}},"required":["data","totalCount"]},"Filter":{"type":"object","properties":{"description":{"type":"string","description":"Human-readable description of the filter"},"maximum":{"type":"number","description":"Maximum allowable value (for range filters)"},"minimum":{"type":"number","description":"Minimum allowable value (for range filters)"},"name":{"type":"string","description":"Field name to filter by"},"options":{"type":"array","items":{"type":"string"},"description":"Allowed values (for enum filters)"},"type":{"type":"string","enum":["string","number","boolean"],"description":"Data type of the filter"}},"required":["description","name","type"],"examples":[{"description":"Filter experts by location","name":"location","options":["San Francisco CA, USA (ChIJIQBpAG2ahYAR_6128GcTUEo)","New York NY, USA (ChIJIQBpAG2ahYAR_6128GcTUEo)"],"type":"string"},{"description":"Filter experts by spoken languages","name":"languages","options":["English","Spanish","French"],"type":"string"},{"description":"Filter experts by availability","name":"available","options":["true","false"],"type":"boolean"},{"description":"Sort order options","name":"sortBy","options":["relevance","oldest","newest"],"type":"string"},{"description":"Minimum hourly rate in USD","maximum":1000,"minimum":0,"name":"minRate","type":"number"},{"description":"Maximum hourly rate in USD","maximum":1000,"minimum":0,"name":"maxRate","type":"number"},{"description":"Number of results per page","maximum":100,"minimum":1,"name":"limit","type":"number"},{"description":"Number of results to skip","minimum":0,"name":"offset","type":"number"}]},"ProgramSummary":{"type":"object","nullable":true,"properties":{"applyUrl":{"type":"string","format":"uri","description":"URL for experts to apply"},"expertsCount":{"type":"integer","description":"Number of experts in the program"},"hireUrl":{"type":"string","format":"uri","description":"URL where clients can hire experts"},"id":{"type":"string","description":"Expert program identifier"},"logoUrl":{"type":"string","format":"uri","description":"URL to program logo image"},"subheader":{"type":"string","description":"Short description or tagline"},"title":{"type":"string","description":"Program title"},"totalHires":{"type":"integer","description":"Total number of hires"},"totalHireValue":{"type":"number","description":"Cumulative value of all hires (USD)"},"totalReviews":{"type":"integer","description":"Total reviews received by program experts"}},"required":["applyUrl","expertsCount","hireUrl","id","logoUrl","subheader","title","totalHires","totalHireValue","totalReviews"]},"Project":{"type":"object","properties":{"coverUrl":{"type":"string","format":"uri","description":"Cover image URL"},"projectUrl":{"type":"string","format":"uri","description":"Project page URL"},"title":{"type":"string","description":"Project title"}},"required":["coverUrl","projectUrl","title"]},"Review":{"type":"object","properties":{"author":{"type":"object","properties":{"authorFullName":{"type":"string","description":"Author name"},"authorProfileUrl":{"type":"string","format":"uri","description":"Author profile URL"},"companyName":{"type":"string","nullable":true,"description":"Author company name"},"companyProfileUrl":{"type":"string","nullable":true,"format":"uri","description":"Author company profile URL"}},"required":["authorFullName","authorProfileUrl","companyName","companyProfileUrl"]},"createdAt":{"type":"string","description":"Review creation date"},"rating":{"type":"number","description":"Review rating"},"review":{"type":"string","nullable":true,"description":"Review text"},"reviewUrl":{"type":"string","format":"uri","description":"Review URL"}},"required":["author","createdAt","rating","review","reviewUrl"]},"FilterListResponse":{"type":"object","properties":{"data":{"type":"array","items":{"$ref":"#/components/schemas/Filter"}}},"required":["data"]},"ProgramSummaryResponse":{"type":"object","properties":{"data":{"$ref":"#/components/schemas/ProgramSummary"}},"required":["data"]}},"responses":{"BadRequest":{"description":"Invalid request parameters","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"Forbidden":{"description":"Invalid API key","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"NotFound":{"description":"Resource not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"ServerError":{"description":"Internal server error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"Unauthorized":{"description":"Missing or invalid API key","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}},"paths":{"/public-api/programs/{programNid}/filters":{"get":{"parameters":[{"schema":{"type":"string"},"in":"path","name":"programNid","required":true}],"responses":{"200":{"description":"A list of filter definitions for the specified program","content":{"application/json":{"examples":{"availableFilter":{"summary":"Availability of the expert","value":{"data":[{"description":"Whether the expert is available at this time","name":"available","options":["true","false"],"type":"boolean"}]}},"languagesFilter":{"summary":"Available languages","value":{"data":[{"description":"Filter experts by spoken languages","name":"languages","options":["English","American Sign Language"],"type":"string"}]}},"locationsFilter":{"summary":"Available locations","value":{"data":[{"description":"Filter experts by geographic location (with place ID)","name":"locations","options":["San Francisco CA, USA (ChIJIQBpAG2ahYAR_6128GcTUEo)","New York NY, USA (ChIJIQBpAG2ahYAR_6128GcTUEo)","Los Angeles CA, USA (ChIJIQBpAG2ahYAR_6128GcTUEo)","Chicago IL, USA (ChIJIQBpAG2ahYAR_6128GcTUEo)","Austin TX, USA (ChIJIQBpAG2ahYAR_6128GcTUEo)","Seattle WA, USA (ChIJIQBpAG2ahYAR_6128GcTUEo)"],"type":"string"}]}},"maxRateFilter":{"summary":"Maximum hourly rate filter","value":{"data":[{"description":"Filter experts by maximum hourly rate (USD)","maximum":1000,"minimum":0,"name":"maxRate","type":"number"}]}},"minRateFilter":{"summary":"Minimum hourly rate filter","value":{"data":[{"description":"Filter experts by minimum hourly rate (USD)","maximum":1000,"minimum":0,"name":"minRate","type":"number"}]}},"sortByFilter":{"summary":"Sort order options","value":{"data":[{"description":"Sort order for results","name":"sortBy","options":["relevance","oldest","newest"],"type":"string"}]}}},"schema":{"$ref":"#/components/schemas/FilterListResponse"}}}}}}},"/public-api/programs/{programNid}":{"get":{"parameters":[{"schema":{"type":"string"},"in":"path","name":"programNid","required":true}],"responses":{"200":{"description":"Program details","content":{"application/json":{"examples":{"programSummaryExample":{"summary":"Framer program summary","value":{"data":{"applyUrl":"https://www.framer.com/dashboard/templates/?profile=expert","expertsCount":42,"hireUrl":"https://contra.com/framer?showCreateJobModal=true","id":"abc_123","logoUrl":"https://media.contra.com/image/upload/r_max,w_200,h_200/framer.png","subheader":"Build your next project with a Framer expert","title":"Framer Experts","totalHires":100,"totalHireValue":123456.78,"totalReviews":250}}}},"schema":{"$ref":"#/components/schemas/ProgramSummaryResponse"}}}}}}},"/public-api/programs/{programNid}/experts":{"get":{"parameters":[{"schema":{"type":"string","enum":["true","false"]},"examples":{"true":{"value":"true"},"false":{"value":"false"}},"in":"query","name":"available","description":"Filter by availability status"},{"schema":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}]},"examples":{"English":{"value":"English"},"English,French":{"value":"English,French"},"Mandarin":{"value":"Mandarin"}},"in":"query","name":"languages","description":"Filter by languages. Can be a single language or multiple languages separated by commas: ?languages=English,French"},{"schema":{"type":"string"},"examples":{"10":{"value":"10"},"20":{"value":"20"},"50":{"value":"50"}},"in":"query","name":"limit","description":"Number of results to return per page"},{"schema":{"type":"string"},"examples":{"San Francisco CA, USA (ChIJIQBpAG2ahYAR_6128GcTUEo)":{"value":"San Francisco CA, USA (ChIJIQBpAG2ahYAR_6128GcTUEo)"},"New York NY, USA (ChIJIQBpAG2ahYAR_6128GcTUEo)":{"value":"New York NY, USA (ChIJIQBpAG2ahYAR_6128GcTUEo)"}},"in":"query","name":"location","description":"Filter by location (with Google Place ID)"},{"schema":{"type":"string"},"examples":{"100":{"value":"100"},"150":{"value":"150"},"200":{"value":"200"}},"in":"query","name":"maxRate","description":"Maximum hourly rate in USD"},{"schema":{"type":"string"},"examples":{"50":{"value":"50"},"75":{"value":"75"},"100":{"value":"100"}},"in":"query","name":"minRate","description":"Minimum hourly rate in USD"},{"schema":{"type":"string"},"examples":{"0":{"value":"0"},"10":{"value":"10"},"20":{"value":"20"}},"in":"query","name":"offset","description":"Number of results to skip (for pagination)"},{"schema":{"type":"string","enum":["relevance","oldest","newest"]},"examples":{"relevance":{"value":"relevance"},"oldest":{"value":"oldest"},"newest":{"value":"newest"}},"in":"query","name":"sortBy","description":"Sort order for results"},{"schema":{"type":"string"},"in":"path","name":"programNid","required":true}],"responses":{"200":{"description":"List of expert profiles","content":{"application/json":{"examples":{"pagedExpertsExample":{"summary":"First page of experts","value":{"data":[{"available":true,"avatarUrl":"https://media.contra.com/image/upload/r_max,w_200,h_200/jane-doe.jpg","earningsUSD":75000.5,"followersCount":200,"hourlyRateUSD":120,"id":"exp_12345","inquiryUrl":"https://contra.com/inquiry/janedoe","location":"San Francisco CA, USA (ChIJIQBpAG2ahYAR_6128GcTUEo)","name":"Jane Doe","oneLiner":"Full-stack developer specializing in React and Node.js","profileUrl":"https://contra.com/janedoe","projects":[{"coverUrl":"https://media.contra.com/image/upload/r_max,w_200,h_200/ecommerce-cover.jpg","projectUrl":"https://contra.com/p/YLZWOR7m-ecommerce-platform","title":"E-commerce Platform"},{"coverUrl":"https://media.contra.com/image/upload/r_max,w_200,h_200/marketing-cover.jpg","projectUrl":"https://contra.com/p/eMOoOeFO/marketing-website","title":"Marketing Website"}],"projectsCompletedCount":15,"reviews":[{"author":{"authorFullName":"John Doe","authorProfileUrl":"https://contra.com/janedoe","companyName":"Acme Inc","companyProfileUrl":"https://contra.com/acme"},"createdAt":"2021-01-01","id":123,"rating":5,"review":"This is a positive review","reviewUrl":"https://contra.com/janedoe/reviews/?highlightedReviewId=abc123"}],"reviewsCount":30,"skillTags":["React","Node.js","TypeScript"],"socialLinks":[{"label":"twitter","url":"https://twitter.com/janedoe"},{"label":"linkedin","url":"https://linkedin.com/in/janedoe"}]}],"totalCount":200}}},"schema":{"$ref":"#/components/schemas/ExpertProfileList"}}}}}}}},"tags":[{"description":"Endpoints for accessing program details, filters, and experts","name":"Programs"}]}