기원은 멀리 신라시대의 전사서(典祀署)까지 올라갈 수 있으나, 보다 직접적인 것은 고려 목종 때 설치된 태상(太常)이다. 문종 때는 태상부(太常府)로 개정되었는데 이것은 기록에 따라 대상(大常) 또는 대상부(大常府)로 나타나기도 한다.
태상부는 1298년( 충렬왕 24)에 ‘봉상시’로 개칭되고, 직제도 경(卿) 2인, 소경(少卿) 1인, 승(丞) 1인, 박사(博士) 1인, 대축(大祝) 1인, 봉례랑(奉禮郎) 1인으로 확대 개편되었다. 그로부터 10년 뒤에 다시 전의시(典儀寺)로 개칭되었다가 공민왕 때인 1356년에 다시 태상시, 1362년에는 전의시, 1369년에는 태상시, 1372년에는 전의시의 순으로 명칭이 자주 반복되어 변경되었으며, 그와 함께 직제도 자주 반복, 변경되었다.
조선시대에도 건국 직후 고려시대의 제도를 답습해 종묘제향(宗廟祭享) 등의 일을 관장하는 봉상시를 설치하였다. 그리고 관원으로 판사(判事) 2인, 경 2인, 소경 2인, 승 1인, 박사 2인, 협률랑(協律郎) 2인, 대축 2인, 녹사(錄事) 2인을 두었다.
그 뒤 1401년( 태종 1)에 경이 영(令), 소경이 부령(副令), 승이 판관(判官), 박사가 주부(主簿)로 바뀌었다. 1409년에는 봉상시가 전농시(典農寺)로 개칭되었으며, 1414년에는 영이 윤(尹), 부령이 소윤(少尹)으로 개칭되었다. 1423년( 세종 2) 다시 봉상시로 환원되고, 판사 이하 모든 관원은 문관으로 임명하도록 되었다. 그 뒤 1466년( 세조 12) 직제가 크게 개정되었는데, 그것이 ≪ 경국대전≫에 수록되었다.
당시의 직제는 도제조(都提調) 1인(의정이 겸임), 제조 1인, 정(正) 1인, 부정(副正) 1인, 첨정(僉正) 2인, 판관 2인, 주부 2인, 직장(直長) 1인, 봉사(奉事) 1인, 부봉사 1인, 참봉 1인의 관원이 있었다. 정 이하의 관원은 모두 문신으로 임용하도록 규정하고, 주부 이상의 관원 중 6인은 장기복무인 구임(久任)으로 하였다.
연산군 때 직장 · 봉사 각 2인이 더 증원되었으나 중종 즉위 직후에 복구되었다. 직장은 승문원 참외(參外), 봉사 · 부봉사는 성균관 참외, 참봉은 교서관(校書館) 참외가 각각 겸임하게 되었다. 뒤에 부정이 혁파되고, 첨정 · 판관 각 1인이 감축되었다.
아전으로 서리 15인이 소속되어 있었는데, 뒤에 서원(書員)으로 대체되었으며, 고종 때 21인으로 증가되었다. 한편, 왕릉이 위치한 곳에 분봉상시(分奉常寺)를 설치하여 제물(祭物)의 봉진(封進)을 담당하게 하하였다. 1894년(고종 31) 봉상사(奉常司)로 개칭되었다.